--- loncom/interface/printout.pl 2006/12/07 22:12:19 1.116 +++ loncom/interface/printout.pl 2006/12/19 10:39:28 1.119 @@ -527,7 +527,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 +559,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); } @@ -606,6 +605,8 @@ foreach $texfile (@texfile) { # unlink @garb; unlink $duefile; print "Your PDF document"; + unlink $missfonts_file; + } if ($advanced_role) { print "

"; @@ -627,6 +628,7 @@ foreach $texfile (@texfile) { print "Your original LaTeX file "; print "\n"; } + } else { #LaTeX successfully parsed tex file $name_file =~ s/\.tex/\.dvi/; @@ -668,8 +670,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); } @@ -759,6 +760,8 @@ foreach $texfile (@texfile) { print "$link_text - click here to download pdf"; print "\n"; } + unlink $missfonts_file; + } } else { print "LaTeX file $texfile was not created successfully"; @@ -962,16 +965,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 +994,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);