diff options
| author | Sam Nystrom <sam@samnystrom.dev> | 2023-10-25 17:48:35 -0400 |
|---|---|---|
| committer | Sam Nystrom <sam@samnystrom.dev> | 2023-10-25 17:48:35 -0400 |
| commit | 4dffd78b33dbce7b380a6473362998a100e80914 (patch) | |
| tree | 4e1a4dc9d9ddd2d1b1b41db823e67fd58d768d0f | |
| parent | b68ebb8e338114da3a21991e8423d00fbd83a0b9 (diff) | |
| -rwxr-xr-x | srtplay | 30 |
1 files changed, 12 insertions, 18 deletions
@@ -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"; } }, }); |
