diff options
Diffstat (limited to 'scripts/context/perl/mptopdf.pl')
-rw-r--r-- | scripts/context/perl/mptopdf.pl | 153 |
1 files changed, 90 insertions, 63 deletions
diff --git a/scripts/context/perl/mptopdf.pl b/scripts/context/perl/mptopdf.pl index 767d2d260..b5d4bc15d 100644 --- a/scripts/context/perl/mptopdf.pl +++ b/scripts/context/perl/mptopdf.pl @@ -37,91 +37,118 @@ my $PassOn = '' ; "passon" => \$PassOn, "latex" => \$Latex ) ; -my $program = "MPtoPDF 1.3" ; +my $program = "MPtoPDF 1.3.2" ; my $pattern = "@ARGV" ; # was $ARGV[0] +my $miktex = 0 ; my $done = 0 ; my $report = '' ; my $texlatexswitch = " --tex=latex --format=latex " ; my $mplatexswitch = " --tex=latex " ; my $dosish = ($Config{'osname'} =~/^(ms)?dos|^os\/2|^mswin/i) ; -my $miktex = ($ENV{"TEXSYSTEM"} =~ /miktex/io); -my $escapeshell = ( ($ENV{'SHELL'}) && ($ENV{'SHELL'} =~ m/sh/i )); +my $escapeshell = (($ENV{'SHELL'}) && ($ENV{'SHELL'} =~ m/sh/i )); + +if ($ENV{"TEXSYSTEM"}) { + $miktex = ($ENV{"TEXSYSTEM"} =~ /miktex/io) ; +} my @files ; my $command = my $mpbin = '' ; -sub CopyFile # agressive copy, works for open files like in gs - { my ($From,$To) = @_ ; - return unless open(INP,"<$From") ; binmode INP ; - return unless open(OUT,">$To") ; binmode OUT ; - while (<INP>) { print OUT $_ } +# agressive copy, works for open files like in gs + +sub CopyFile { + my ($From,$To) = @_ ; + return unless open(INP,"<$From") ; + return unless open(OUT,">$To") ; + binmode INP ; + binmode OUT ; + while (<INP>) { + print OUT $_ ; + } close (INP) ; - close (OUT) } - -if (($pattern eq '')||($Help)) - { print "\n$program : provide MP output file (or pattern)\n" ; - exit } -elsif ($pattern =~ /\.mp$/io) - { shift @ARGV ; my $rest = join(" ", @ARGV) ; - if (open(INP,$pattern)) - { while (<INP>) - { if (/(documentstyle|documentclass|begin\{document\})/io) - { $Latex = 1 ; last } } - close (INP) } - if ($RawMP) - { if ($Latex) - { $rest .= " $mplatexswitch" } + close (OUT) ; +} + +if (($pattern eq '')||($Help)) { + print "\n$program : provide MP output file (or pattern)\n" ; + exit ; +} elsif ($pattern =~ /\.mp$/io) { + shift @ARGV ; my $rest = join(" ", @ARGV) ; + if (open(INP,$pattern)) { + while (<INP>) { + if (/(documentstyle|documentclass|begin\{document\})/io) { + $Latex = 1 ; last ; + } + } + close (INP) ; + } + if ($RawMP) { + if ($Latex) { + $rest .= " $mplatexswitch" ; + } if ($MetaFun) { $mpbin = 'mpost --progname=mpost --mem=metafun' ; } else { $mpbin = 'mpost --mem=mpost' ; } + } else { + if ($Latex) { + $rest .= " $texlatexswitch" ; + } + $mpbin = 'texexec --mptex $PassOn' ; } - else - { if ($Latex) - { $rest .= " $texlatexswitch" } - $mpbin = 'texexec --mptex $PassOn' } + print "\n$program : running '$command'" ; my $error = system ("$mpbin $rest $pattern") ; - if ($error) - { print "\n$program : error while processing mp file\n" ; exit } - else - { $pattern =~ s/\.mp$//io ; - @files = glob "$pattern.*" } } -elsif (-e $pattern) - { @files = ($pattern) } -elsif ($pattern =~ /.\../o) - { @files = glob "$pattern" } -else - { $pattern .= '.*' ; - @files = glob "$pattern" } - -foreach my $file (@files) - { $_ = $file ; - if (s/\.(\d+|mps)$// && -e $file) - { if ($miktex) - { $command = "pdfetex -undump=mptopdf" } - else - { $command = "pdfetex -fmt=mptopdf -progname=context" } - if ($dosish) - { $command = "$command \\relax $file" } - else - { $command = "$command \\\\relax $file" } + if ($error) { + print "\n$program : error while processing mp file\n" ; + exit ; + } else { + $pattern =~ s/\.mp$//io ; + @files = glob "$pattern.*" ; + } +} elsif (-e $pattern) { + @files = ($pattern) ; +} elsif ($pattern =~ /.\../o) { + @files = glob "$pattern" ; +} else { + $pattern .= '.*' ; + @files = glob "$pattern" ; +} + +foreach my $file (@files) { + $_ = $file ; + if (s/\.(\d+|mps)$// && -e $file) { + if ($miktex) { + $command = "pdfetex -undump=mptopdf" ; + } else { + $command = "pdfetex -fmt=mptopdf -progname=context" ; + } + if ($dosish) { + $command = "$command \\relax $file" ; + } else { + $command = "$command \\\\relax $file" ; + } system($command) ; - # rename ("$_.pdf", "$_-$1.pdf") ; - # if (-e "$_.pdf") { CopyFile ("$_.pdf", "$_-$1.pdf") } my $pdfsrc = basename($_).".pdf"; rename ($pdfsrc, "$_-$1.pdf") ; - if (-e $pdfsrc) { CopyFile ($pdfsrc, "$_-$1.pdf") } - # end of patch - if ($done) { $report .= " +" } + if (-e $pdfsrc) { + CopyFile ($pdfsrc, "$_-$1.pdf") ; + } + if ($done) { + $report .= " +" ; + } $report .= " $_-$1.pdf" ; - ++$done } } + ++$done ; + } +} -if ($report eq '') - { $report = '*' } +if ($report eq '') { + $report = '*' ; +} -if ($done) - { print "\n$program : $pattern is converted to$report\n" } -else - { print "\n$program : no filename matches $pattern\n" } +if ($done) { + print "\n$program : $pattern is converted to$report\n" ; +} else { + print "\n$program : no filename matches $pattern\n" ; +} |