diff options
author | Hans Hagen <pragma@wxs.nl> | 2002-01-11 00:00:00 +0100 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 2002-01-11 00:00:00 +0100 |
commit | 736de6a312c37fbb8cea65cf0a86eda7dbbe0575 (patch) | |
tree | ad6691db97ee31450f9ca5b30a90a22df067331b /context/perltk/mptopdf.pl | |
parent | 398264e8338d79fc389c76f0a1f0b30e4442f4e3 (diff) | |
download | context-736de6a312c37fbb8cea65cf0a86eda7dbbe0575.tar.gz |
stable 2002.01.11
Diffstat (limited to 'context/perltk/mptopdf.pl')
-rw-r--r-- | context/perltk/mptopdf.pl | 52 |
1 files changed, 39 insertions, 13 deletions
diff --git a/context/perltk/mptopdf.pl b/context/perltk/mptopdf.pl index 1ff0c56c0..e55fb74b2 100644 --- a/context/perltk/mptopdf.pl +++ b/context/perltk/mptopdf.pl @@ -20,15 +20,32 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $ # use File::Copy ; # not in every perl use Config ; +use Getopt::Long ; +use strict ; -$program = "MPtoPDF 1.1" ; -$pattern = $ARGV[0] ; -$done = 0 ; -$report = '' ; +$Getopt::Long::passthrough = 1 ; # no error message +$Getopt::Long::autoabbrev = 1 ; # partial switch accepted + +my $Help = my $Latex = 0 ; + +&GetOptions + ( "help" => \$Help , + "latex" => \$Latex ) ; + +my $program = "MPtoPDF 1.2" ; +my $pattern = $ARGV[0] ; +my $done = 0 ; +my $report = '' ; +my $latexswitch = " --tex=latex --format=latex " ; + +## $dosish = ($Config{'osname'} =~ /dos|mswin/i) ; +my $dosish = ($Config{'osname'} =~ /^(ms)?dos|^os\/2|^(ms|cyg)win/i) ; -my $dosish = ($Config{'osname'} =~ /dos|mswin/io) ; my $miktex = ($ENV{"TEXSYSTEM"} =~ /miktex/io); +my @files ; +my $command = "" ; + sub CopyFile # agressive copy, works for open files like in gs { my ($From,$To) = @_ ; return unless open(INP,"<$From") ; binmode INP ; @@ -37,13 +54,21 @@ sub CopyFile # agressive copy, works for open files like in gs close (INP) ; close (OUT) } -if (($pattern eq '')||($pattern =~ /^\-+(h|help)$/io)) - { print "\n$program: provide MP output file (or pattern)\n" ; +if (($pattern eq '')||($Help)) + { print "\n$program : provide MP output file (or pattern)\n" ; exit } elsif ($pattern =~ /\.mp$/io) - { $error = system ("texexec --mptex $pattern") ; + { shift @ARGV ; my $rest = join(" ", @ARGV) ; + if (open(INP,$pattern)) + { while (<INP>) + { if (/(documentstyle|documentclass|begin\{document\})/io) + { $Latex = 1 ; last } } + close (INP) } + if ($Latex) + { $rest .= " $latexswitch" } + my $error = system ("texexec --mptex $rest $pattern") ; if ($error) - { print "\n$program: error while processing mp file\n" ; exit } + { print "\n$program : error while processing mp file\n" ; exit } else { $pattern =~ s/\.mp$//io ; @files = glob "$pattern.*" } } @@ -55,7 +80,7 @@ else { $pattern .= '.*' ; @files = glob "$pattern" } -foreach $file (@files) +foreach my $file (@files) { $_ = $file ; if (s/\.(\d+|mps)$// && -e $file) { if ($miktex) @@ -64,7 +89,8 @@ foreach $file (@files) else { $command = "pdfetex \\&mptopdf" } } else - { $command = "pdfetex -progname=pdfetex -efmt=mptopdf" } +# { $command = "pdfetex -progname=pdfetex -efmt=mptopdf" } + { $command = "pdfetex -progname=context -efmt=mptopdf" } if ($dosish) { system ("$command \\relax $file") } else @@ -76,6 +102,6 @@ foreach $file (@files) ++$done } } if ($done) - { print "\n$program: $pattern is converted to$report\n" } + { print "\n$program : $pattern is converted to$report\n" } else - { print "\n$program: no filename matches $pattern\n" } + { print "\n$program : no filename matches $pattern\n" } |