--- loncom/interface/printout.pl 2006/12/06 12:10:16 1.115
+++ 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);
#
@@ -555,12 +556,11 @@ foreach $texfile (@texfile) {
#
my $print_directory = dirname($name_file);
my $missfonts_file = $print_directory."/missfont.log";
- print "
Missing fonts file is: $missfonts_file";
+ #print("
Missing fonts file is: $missfonts_file");
if (-e $missfonts_file) {
- print "
Missing fonts file exists\n";
+ #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/;
@@ -664,12 +667,11 @@ foreach $texfile (@texfile) {
#
my $print_directory = dirname($name_file);
my $missfonts_file = $print_directory."/missfont.log";
- print "
Missing fonts file is: $missfonts_file";
+ #print("
Missing fonts file is: $missfonts_file");
if (-e $missfonts_file) {
- print "
Missing fonts file exists\n";
+ #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,21 +966,24 @@ 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";
+ #print("
Raw command: $command");
$command =~ s/ 8000/ 600/g; # dpi directives.
$command =~ s/\/8000/\/600/g; # mag directives.
- print "
After dpi replacements: $command";
+ #print("
After dpi replacements: $command");
my @cmdarray = split(/ /,$command);
for (my $i =0; $i < scalar(@cmdarray); $i++) {
@@ -984,11 +991,11 @@ sub create_missing_fonts {
$cmdarray[$i+1] = "ljfour";
}
}
- print "
before reassembly : (@cmdarray)";
+ #print("
before reassembly : (@cmdarray)");
$command = join(" ", (@cmdarray));
- print "
Creating fonts via command: $command";
- &busy_wait_command("$command 1>dev/null 2>/dev/null",
+ #print("
Creating fonts via command: $command");
+ &busy_wait_command("$command 1>/dev/null 2>/dev/null",
"Creating missing font",
$state, $command);