From 4dffd78b33dbce7b380a6473362998a100e80914 Mon Sep 17 00:00:00 2001 From: Sam Nystrom Date: Wed, 25 Oct 2023 17:48:35 -0400 Subject: Simplify XML handling --- srtplay | 30 ++++++++++++------------------ 1 file 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"; } }, }); -- cgit v1.2.3