rockbox/manual/latexfilter.pl

63 lines
1.8 KiB
Perl
Executable File

#!/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;
}