X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=i18n-diff-auditor;h=a92db5e1172ed3822210351bfdf3d9863fa86b7c;hp=a32b554d90c53ca70d3dbffd513362e94bdc6e2d;hb=21600a2e332fd1074540b6529ea9e1a53f34a6df;hpb=082759594b008c128c7f66791d9b0845bcb0da33 diff --git a/i18n-diff-auditor b/i18n-diff-auditor index a32b554d..a92db5e1 100755 --- a/i18n-diff-auditor +++ b/i18n-diff-auditor @@ -132,7 +132,7 @@ sub semiparse ($) { ( .* \n ) ( (?: (?! $d) .* \n )* ) $d \n - }{ $1 }x or die "missing end of here doc $d\n"; + }{ $1 }xe or die "missing end of here doc $d\n"; $o[$#o]{V} = $2; } elsif (s{^ (["'])( (?: [^\\'"] | \\ [^"'] @@ -177,6 +177,7 @@ sub semiparse ($) { $i--; # counteracts $i++ } debug $ichunkstart, "semiparsed: ".join ' ', map { $_->{P} } @o; + # debug $ichunkstart, "semiparsed V: ".join ' ', map { defined $_->{V} ? ">$_->{V}<" : '-' } @o; return @o; } @@ -264,8 +265,10 @@ sub analyse_chunk_core () { my ($lit, $what) = @_; my $xl = substr($xs, 0, length($lit)); if ($xl ne $lit) { - debug $ichunkstart, "not exactly x: \"..$xs\""; - debug $ichunkstart, "not exactly y: $lit"; + my $xsp = $xs; $xsp =~ s/\n/\\n/g; + my $litp = $lit; $litp =~ s/\n/\\n/g; + debug $ichunkstart, "not exactly x: ..\"$xsp\""; + debug $ichunkstart, "not exactly y: '$litp'"; my $next = @ys ? $ys[0]{P} : '(end)'; die "string contents mismatch near $what before $next\n"; } @@ -275,6 +278,7 @@ sub analyse_chunk_core () { if ($fmt !~ m{\%[^\%]}) { $exactly->($fmt, '(tail)'); $fmt = ''; + die "text deleted from end of string\n" if length $xs; last; } $exactly->($`, '(literal)');