summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrtplay30
1 files changed, 12 insertions, 18 deletions
diff --git a/srtplay b/srtplay
index c2cd87d..a82df48 100755
--- a/srtplay
+++ b/srtplay
@@ -23,30 +23,24 @@ my $underline = 0;
my $parsed = '';
my $xml_parser = XML::Parser->new(Handlers => {
Start => sub ($expat, $element, @attrs) {
- if ($element eq 'b') {
- $parsed .= "\x1b[1m" if $bold == 0;
- $bold += 1;
- } elsif ($element eq 'i') {
- $parsed .= "\x1b[3m" if $italic == 0;
- $italic += 1;
- } elsif ($element eq 'u') {
- $parsed .= "\x1b[4m" if $underline == 0;
- $underline += 1;
+ if ($element eq 'b' && $bold++ == 0) {
+ $parsed .= "\x1b[1m";
+ } elsif ($element eq 'i' && $italic++ == 0) {
+ $parsed .= "\x1b[3m";
+ } elsif ($element eq 'u' && $underline++ == 0) {
+ $parsed .= "\x1b[4m";
}
},
Char => sub ($expat, $string) {
$parsed .= $string;
},
End => sub ($expat, $element) {
- if ($element eq 'b') {
- $parsed .= "\x1b[22m" if $bold == 1;
- $bold -= 1;
- } elsif ($element eq 'i') {
- $parsed .= "\x1b[23m" if $italic == 1;
- $italic -= 1;
- } elsif ($element eq 'u') {
- $parsed .= "\x1b[24m" if $underline == 1;
- $underline -= 1;
+ if ($element eq 'b' && --$bold == 0) {
+ $parsed .= "\x1b[22m";
+ } elsif ($element eq 'i' && --$italic == 0) {
+ $parsed .= "\x1b[23m";
+ } elsif ($element eq 'u' && --$underline == 0) {
+ $parsed .= "\x1b[24m";
}
},
});