From e6c6296247c733e4d129ca3f0231a83b8edf87e0 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 30 Sep 2018 14:01:53 +0100 Subject: [PATCH] auditor wip semiparse here doc --- i18n-diff-auditor | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/i18n-diff-auditor b/i18n-diff-auditor index d1ae6f1..654c323 100755 --- a/i18n-diff-auditor +++ b/i18n-diff-auditor @@ -127,7 +127,7 @@ sub semiparse ($) { return @o; } -sub analyse_chunk () { +sub analyse_chunk_core () { die "plain deletion\n" unless defined $after; die "plain insertion\n" unless defined $before; my @before = semiparse $before; @@ -136,6 +136,21 @@ sub analyse_chunk () { flush STDOUT; } +sub analyse_chunk () { + for (;;) { + eval { analyse_chunk_core(); }; + return unless length $@; + if ($@ =~ m{^missing end of here doc (\S+)\n}) { + # fudge this + $before .= "\n$1\n"; + $after .= "\n$1\n"; + analyse_chunk_core(); + } else { + die $@; + } + } +} + for ($ifilehead = 0; l_ok $ifilehead; $ifilehead++) { m{^diff} or next; while (l_ok $ifilehead and m{^diff|^index|^---|^\Q+++\E}) { $ifilehead++ } -- 2.30.2