diff options
Diffstat (limited to 'Master/texmf-dist/scripts/latexmk/latexmk.pl')
-rwxr-xr-x | Master/texmf-dist/scripts/latexmk/latexmk.pl | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/Master/texmf-dist/scripts/latexmk/latexmk.pl b/Master/texmf-dist/scripts/latexmk/latexmk.pl index 7f98a337b6b..7372174cc9f 100755 --- a/Master/texmf-dist/scripts/latexmk/latexmk.pl +++ b/Master/texmf-dist/scripts/latexmk/latexmk.pl @@ -108,8 +108,8 @@ use warnings; $my_name = 'latexmk'; $My_name = 'Latexmk'; -$version_num = '4.15c'; -$version_details = "$My_name, John Collins, 18 April 2010"; +$version_num = '4.16'; +$version_details = "$My_name, John Collins, 10 May 2010"; use Config; @@ -178,6 +178,9 @@ else { ## ## Modification log from 22 Jan 2010 onwards in detail ## +## 10 May 2010, John Collins Deal with filenames in log file that are +## messed up by pdfTeX warnings not preceeded +## by a new line ## 18 Apr 2010, John Collins Clean up comment from previous mod. ## 16 Apr 2010, John Collins V. 4.15c. Correct line wrapping issue. ## 12 Apr 2010, John Collins V. 4.15b. Change @@ -2891,10 +2894,32 @@ sub parse_logB { my $delegated_output = ""; # and output file. (Don't put in # data structure until block is ended.) my %new_conversions = (); + my @retries = (); LINE: - while( $line <= $#lines ) { - $_ = $lines[$line]; - $line ++; + while( ($line <= $#lines) || ($#retries > -1) ) { + if ($#retries > -1) { + $_ = pop @retries; + } + else { + $_ = $lines[$line]; + $line ++; + } + if ( /^! pdfTeX warning/ || /^pdfTeX warning/ ) { + # This kind of warning is produced by some versions of pdftex + # or produced by my reparse of warnings from other + # versions. + next; + } + elsif ( /^(.+)(pdfTeX warning.*)$/ ) { + # Line contains a pdfTeX warnings that may have been + # inserted directly after other material without an + # intervening new line. I think pdfTeX always inserts a + # newline after the warning. (From examination of source + # code.) + push @retries, $1; + # But continue parsing the original line, in case it was a + # misparse, e.g., of a filename ending in 'pdfTeX'; + } if ( $line == 1 ){ if ( /^This is / ) { # First line OK |