diff options
Diffstat (limited to 'Master/texmf-dist/doc/metapost/featpost/xcmd/xmpost')
-rwxr-xr-x | Master/texmf-dist/doc/metapost/featpost/xcmd/xmpost | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/metapost/featpost/xcmd/xmpost b/Master/texmf-dist/doc/metapost/featpost/xcmd/xmpost new file mode 100755 index 00000000000..3a45f6a9859 --- /dev/null +++ b/Master/texmf-dist/doc/metapost/featpost/xcmd/xmpost @@ -0,0 +1,70 @@ +#!/usr/bin/perl + +#$Id: xmpost,v 1.1 1999/05/10 17:14:27 pedros Exp $ + +open OFILE, ">$ARGV[0]" or die " can't open $ARGV[0].pl:$!\n"; +open IFILE, "<$ARGV[0].mp" or die " can't open $ARGV[0].mp:$!\n"; +open XCMDFILE, ">$ENV{\"HOME\"}/.xcmd/$ARGV[0]" or die " can't open ~/.xcmd/$ARGV[0]:$!\n"; + +my $tmp_mp_file = "$ARGV[0].$$"; + +my $i=$j=0; + +while(<IFILE>){ +# s/\s*(\w+)\s*\t*\s*:*=\s*([\(0-9,-.\)]*);/\t$1\t:=\$opt_$1;/; + $lines[$j++]=$_; + if($_ =~ /\s*(\w+)\s*\t*\s*:=\s*([\(0-9,-.\)]*);/){ + print XCMDFILE "OPTION_WITH_ARG --$1 DEFAULT \"$2\"\n"; +# print OFILE "\t$1\t\t:=\$opt_$1;\n"; + $arr[$i++]="\$opt_$1"; + } +} +close IFILE; + +print OFILE "#!/usr/bin/perl\n\n"; +print OFILE " use vars qw("; + +foreach $i (0..$#arr-1){ + print OFILE "$arr[$i] "; +} +print OFILE "$arr[$#arr]);\n\n"; + +print OFILE "\n\nuse Getopt::Long;\n\n"; + + +foreach $i (0..$#arr){ + print OFILE "$arr[$i]=\"\";\n"; +} +print OFILE "\n\nGetOptions("; +foreach $i (0..$#arr-1){ + $arr[$i] =~ s/\$opt_//; + print OFILE "\"$arr[$i]=s\","; +} +$arr[$#arr] =~ s/\$opt_//; + +print OFILE "\"$arr[$#arr]=s\") || die \"Aborted\";\n"; +print OFILE "\$file = \"$tmp_mp_file\";\n"; +print OFILE "\nopen TMP, \">/tmp/\$file.mp\" || die \"can't open /tmp/\$file.mp \$!\\n\";\n"; + +foreach $j (0..$#lines){ + $_ = $lines[$j]; + chop; + s/\%/\\\%/g; + s/\\/\\\\/g; + s/\$/\\\$/g; + s/\s*(\w+)\s*\t*\s*:=\s*([\(0-9,-.\)]*);/\t$1\t\t:= \$opt_$1;/; + print OFILE "print TMP \"$_\\n\";\n"; +} +print OFILE "close TMP;\n"; + +print OFILE "\$tmp = `inimpost featpost.mp`;\n"; +print OFILE "\$tmp = `mpost -mem featpost /tmp/\$file.mp`;\n"; +print OFILE "\$tmp = `laproof /tmp/\$file 1`;\n"; + +my $tmp = `chmod +x $ARGV[0]`; +$tmp = `cp $ARGV[0].mp /tmp/$tmp_mp_file.mp`; +$tmp= `inimpost featpost.mp`; +$tmp = `mpost -mem featpost /tmp/$tmp_mp_file.mp`; +$tmp = `laproof /tmp/$tmp_mp_file 1`; +system("gv -watch $tmp_mp_file.1.eps &"); +system("xcmd $ARGV[0] &"); |