63 lines
1.8 KiB
Perl
63 lines
1.8 KiB
Perl
|
#!/usr/bin/perl -s
|
||
|
#
|
||
|
# __________ __ ___.
|
||
|
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
||
|
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
||
|
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
||
|
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
||
|
# \/ \/ \/ \/ \/
|
||
|
#
|
||
|
|
||
|
my $verbose = $v;
|
||
|
my $reflowed = "";
|
||
|
my $last = "";
|
||
|
my $currentfile;
|
||
|
while(<STDIN>) {
|
||
|
chomp $_;
|
||
|
$reflowed .= $_;
|
||
|
if(/^.{79,}$/) {
|
||
|
# collapse all "full" lines
|
||
|
}
|
||
|
elsif(/^!/) {
|
||
|
# collapse lines indicating an error with next one and append a space.
|
||
|
$reflowed .= " ";
|
||
|
}
|
||
|
else {
|
||
|
# skip empty lines
|
||
|
if(length($reflowed) > 0) {
|
||
|
# collapse with previous line if it continues some "area".
|
||
|
if($reflowed =~ /^\s*(\]|\[|\\|\)|<)/) {
|
||
|
$last .= $reflowed;
|
||
|
}
|
||
|
else {
|
||
|
# find current input file
|
||
|
my @inputfile = $last =~ /\(([a-zA-Z_\-\/\.]+\.tex)/g;
|
||
|
foreach(@inputfile) {
|
||
|
if($verbose) {
|
||
|
print "\n";
|
||
|
}
|
||
|
print "LaTeX processing $_\n";
|
||
|
$currentfile = $_;
|
||
|
}
|
||
|
if($verbose) {
|
||
|
print $last;
|
||
|
}
|
||
|
# check for error
|
||
|
if($reflowed =~ /^!\s*(.*)/) {
|
||
|
my $l = $reflowed;
|
||
|
$l =~ s/^!\s*(.*)l.(\d+) /$2: $1/;
|
||
|
print "$currentfile:$l\n";
|
||
|
}
|
||
|
# restart for next reflowed line
|
||
|
$last = $reflowed;
|
||
|
}
|
||
|
}
|
||
|
# restart reflowing.
|
||
|
$reflowed = "";
|
||
|
}
|
||
|
}
|
||
|
if($verbose) {
|
||
|
print $last;
|
||
|
}
|
||
|
|