summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/latexmk/latexmk.pl
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/scripts/latexmk/latexmk.pl')
-rwxr-xr-xMaster/texmf-dist/scripts/latexmk/latexmk.pl35
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