From a33919b0582c2602a83795ef080c4cbf40e34f58 Mon Sep 17 00:00:00 2001 From: Bert Frees Date: Wed, 4 May 2016 14:49:15 +0200 Subject: [PATCH] substrings.pl: support comments (lines starting with %) --- substrings.pl | 88 +++++++++++++++++++++++++++++---------------------- 1 file changed, 51 insertions(+), 37 deletions(-) diff --git a/substrings.pl b/substrings.pl index 4a73686..679d0c1 100755 --- a/substrings.pl +++ b/substrings.pl @@ -21,47 +21,61 @@ if (defined $encoding) { print OUT "$encoding\n"; } if (defined $lhmin) { print OUT "LEFTHYPHENMIN $lhmin\n"; } if (defined $rhmin) { print OUT "RIGHTHYPHENMIN $rhmin\n"; } +# keep header while () { - $pat =~ s/%.*$//g; - if (/^\%/) { + if (/^%/) { + print OUT "$_"; + } else { + last; + } +} + +while () +{ + if (/^%/) { #comment, ignore - } elsif (/^(.+)\/([^,]+),([0-9]+),([0-9]+)$/) { - $origpat = $1; - $pat = $1; - $repl = $2; - $beg = $3; - $len = $4; - $pat =~ s/\d//g; - if ($origpat eq $pat) { - print "error - missing hyphenation point: $_"; - exit 1; + } else { + $_ =~ s/%.*$//g; + for (split ' ', $_) { + if (/^(.+)\/([^,]+),([0-9]+),([0-9]+)$/) { + $origpat = $1; + $pat = $1; + $repl = $2; + $beg = $3; + $len = $4; + $pat =~ s/\d//g; + if ($origpat eq $pat) { + print "error - missing hyphenation point: $_"; + exit 1; + } + push @patlist, $pat; + $pattab{$pat} = $origpat; + $repltab{$pat} = $repl; + $replbeg{$pat} = $beg - 1; + $repllen{$pat} = $len; + } elsif (/^(.+)\/(.+)$/) { + $origpat = $1; + $pat = $1; + $repl = $2; + $pat =~ s/\d//g; + if ($origpat eq $pat) { + print "error - missing hyphenation point: $_"; + exit 1; + } + push @patlist, $pat; + $pattab{$pat} = $origpat; + $repltab{$pat} = $repl; + $replbeg{$pat} = 0; + $repllen{$pat} = enclen($pat); + } elsif (/^(.+)$/) { + $origpat = $1; + $pat = $1; + $pat =~ s/\d//g; + push @patlist, $pat; + $pattab{$pat} = $origpat; + } } - push @patlist, $pat; - $pattab{$pat} = $origpat; - $repltab{$pat} = $repl; - $replbeg{$pat} = $beg - 1; - $repllen{$pat} = $len; - } elsif (/^(.+)\/(.+)$/) { - $origpat = $1; - $pat = $1; - $repl = $2; - $pat =~ s/\d//g; - if ($origpat eq $pat) { - print "error - missing hyphenation point: $_"; - exit 1; - } - push @patlist, $pat; - $pattab{$pat} = $origpat; - $repltab{$pat} = $repl; - $replbeg{$pat} = 0; - $repllen{$pat} = enclen($pat); - } elsif (/^(.+)$/) { - $origpat = $1; - $pat = $1; - $pat =~ s/\d//g; - push @patlist, $pat; - $pattab{$pat} = $origpat; } }