--- loncom/interface/printout.pl 2006/12/07 22:12:19 1.116
+++ loncom/interface/printout.pl 2007/01/19 20:22:33 1.120
@@ -1,6 +1,7 @@
#!/usr/bin/perl
# CGI-script to run LaTeX, dvips, ps2ps, ps2pdf etc.
#
+# $Id: printout.pl,v 1.120 2007/01/19 20:22:33 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -527,7 +528,7 @@ foreach $texfile (@texfile) {
\%prog_state, $dvi_file);
}
- &busy_wait_command("$comma $name_file 1>dev/null 2>/dev/null",
+ &busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null",
"for $status_statement dvips to repaginate",
\%prog_state, $new_name_file);
#
@@ -559,8 +560,7 @@ foreach $texfile (@texfile) {
if (-e $missfonts_file) {
#print("
Missing fonts file exists\n");
&create_missing_fonts($missfonts_file);
- unlink($missfonts_file, \%prog_state);
- &busy_wait_command("$comma $name_file 1>dev/null 2>/dev/null",
+ &busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null",
"for $status_statement dvips generated missing fonts",
\%prog_state, $new_name_file);
}
@@ -604,8 +604,10 @@ foreach $texfile (@texfile) {
$texps =~ s/\.tex/\.ps/;
my @garb = ($texaux,$texdvi,$texps);
# unlink @garb;
- unlink $duefile;
+ unlink($duefile);
print "Your PDF document";
+ unlink($missfonts_file);
+
}
if ($advanced_role) {
print "
";
@@ -627,6 +629,7 @@ foreach $texfile (@texfile) {
print "Your original LaTeX file ";
print "\n";
}
+
} else {
#LaTeX successfully parsed tex file
$name_file =~ s/\.tex/\.dvi/;
@@ -668,8 +671,7 @@ foreach $texfile (@texfile) {
if (-e $missfonts_file) {
#print("
Missing fonts file exists\n");
&create_missing_fonts($missfonts_file);
- unlink($missfonts_file, \%prog_state);
- &busy_wait_command("$comma $name_file 1>dev/null 2>/dev/null",
+ &busy_wait_command("$comma $name_file 1>/dev/null 2>/dev/null",
"for $status_statement dvips generated missing fonts",
\%prog_state, $new_name_file);
}
@@ -755,10 +757,12 @@ foreach $texfile (@texfile) {
$texps =~ s/\.tex/\.ps/;
my @garb = ($texlog,$texaux,$texdvi,$texps);
# unlink @garb;
- unlink $duefile;
+ unlink($duefile);
print "$link_text - click here to download pdf";
print "\n";
}
+ unlink($missfonts_file);
+
}
} else {
print "LaTeX file $texfile was not created successfully";
@@ -862,7 +866,7 @@ sub repaginate {
#
if ($line =~ /^%%Page:/) {
- my @pageinfo = split(/ /, $line);
+ my @pageinfo = split(/\s+/, $line);
if ($page_number < $pageinfo[1]) {
$page_number = $pageinfo[1];
} elsif ($pageinfo[2] ne 1) {
@@ -962,16 +966,19 @@ sub create_missing_fonts {
# Open and read in the font file..we'll read it into the array
# font_commands.
#
- my $font_handle = IO::File->new($fontfile);
+ open(my $font_handle, $fontfile);
my @font_commands = <$font_handle>;
-
+
+ # make the list contain each command only once
+ my %uniq;
+ @font_commands = map { $uniq{$_}++ == 0 ? $_ : () } @font_commands;
# Now process each command replacing the appropriate 8000's with
# 600's ensuring that font names with 8000's in them are not corrupted.
# and if the --mfmode is not ljfour we turn it into ljfour.
# Then we execute the command.
#
-
+
foreach my $command (@font_commands) {
#print("
Raw command: $command");
$command =~ s/ 8000/ 600/g; # dpi directives.
@@ -988,7 +995,7 @@ sub create_missing_fonts {
$command = join(" ", (@cmdarray));
#print("
Creating fonts via command: $command");
- &busy_wait_command("$command 1>dev/null 2>/dev/null",
+ &busy_wait_command("$command 1>/dev/null 2>/dev/null",
"Creating missing font",
$state, $command);