chomp($l);
my ($from, $to, $cmd, $par);
($l, $from) = getNext($l);
- return undef if ($from !~ /tex$/);
+ return undef if ($from !~ /(ps|tex|dvi)$/);
($l, $to) = getNext($l);
return undef if ($to !~ /^((dvi3?|pdf[23456]?)(log)?)$/);
+ my ($checkfor, $substitute, $extrapar);
+ if ($from =~ /tex/) {
+ $checkfor = qr/\s+\-shell\-(escape|restricted)/;
+ $substitute = "-shell-escape";
+ $extrapar = qr/^latex/;
+ }
+ elsif ($from =~ /ps$/) {
+ $checkfor = qr/\s+\-dALLOWPSTRANSPARENCY/;
+ $substitute = "-dALLOWPSTRANSPARENCY";
+ $extrapar = qr/hyperref-driver=dvips/;
+ }
+ else {
+ $checkfor = qr/\s+-i\s+dvipdfmx-unsafe.cfg/;
+ $substitute = "-i dvipdfmx-unsafe.cfg";
+ $extrapar = qr/^hyperref-driver=dvipdfm/;
+ }
($l, $cmd) = getNext($l);
if ($add) {
- if ($cmd !~ /\-shell-(escape|restricted)/) {
+ if ($cmd !~ $checkfor) {
if ($cmd =~ /^(\S+)\s*(.*)$/) {
- $cmd = "$1 -shell-escape $2";
+ $cmd = "$1 $substitute $2";
$cmd =~ s/\s+$//;
}
}
}
else {
- $cmd =~ s/\s+\-shell\-(escape|restricted)//;
+ $cmd =~ s/$checkfor//;
}
($l, $par) = getNext($l);
- return undef if ($par !~ /^latex/);
+ return undef if ($par !~ $extrapar);
my $key = "\"$from\" \"$to\"";
if ($add) {
return([$key, [$cmd, $par]]);