]> git.lyx.org Git - lyx.git/blobdiff - lib/scripts/prefTest.pm
Remove profiling.py
[lyx.git] / lib / scripts / prefTest.pm
index 814304fa506444bfb9604d6585019192f4053179..8e25b7986baaf51f3858e31610a61470d6f73ca8 100644 (file)
@@ -31,12 +31,22 @@ sub getSubstitutes($$@)
        my $value = $2;
        my $valid = 0;
        if (defined($rAllowedKeys->{$key})) {
-         for my $val (@{$rAllowedKeys->{$key}}) {
-           if ($val eq $value) {
+         if (ref($rAllowedKeys->{$key}) eq "ARRAY") {
+           for my $val (@{$rAllowedKeys->{$key}}) {
+             if ($val eq $value) {
+               $valid = 1;
+               last;
+             }
+           }
+         }
+         elsif ($rAllowedKeys->{$key} eq "integer") {
+           if ($value =~ /^\d+$/) {
              $valid = 1;
-             last;
            }
          }
+         elsif ($rAllowedKeys->{$key} eq "string") {
+           $valid = 1;
+         }
        }
        if ($valid) {
          $rSubst->{$key} = [$value, 0];
@@ -77,23 +87,39 @@ sub getConverter($$)
   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/) {
+    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//;
+    $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]]);