]> git.lyx.org Git - lyx.git/blobdiff - lib/scripts/prefTest.pm
Russian translation of Additional manual by Henry Chern
[lyx.git] / lib / scripts / prefTest.pm
index d5b34698c2b457e8d3bd1fac975bff9ae5d6d39e..1f1470f5a6c73c1adb07a8e30a7622badfe08baf 100644 (file)
@@ -13,6 +13,7 @@ sub getConverters($$$);
 sub getConverter($$);
 sub getNext($);
 sub writeConverters($$);
+sub createConvLine($$);
 
 sub getSubstitutes($$@)
 {
@@ -30,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];
@@ -78,10 +89,10 @@ sub getConverter($$)
   ($l, $from) = getNext($l);
   return undef if ($from !~ /tex$/);
   ($l, $to) = getNext($l);
-  return undef if ($to !~ /^(dvi3?|pdf[23456]?)$/);
+  return undef if ($to !~ /^((dvi3?|pdf[23456]?)(log)?)$/);
   ($l, $cmd) = getNext($l);
   if ($add) {
-    if ($cmd !~ /\-shell-escape/) {
+    if ($cmd !~ /\-shell-(escape|restricted)/) {
       if ($cmd =~ /^(\S+)\s*(.*)$/) {
        $cmd = "$1 -shell-escape $2";
        $cmd =~ s/\s+$//;
@@ -89,7 +100,7 @@ sub getConverter($$)
     }
   }
   else {
-    $cmd =~ s/\s+\-shell\-escape//;
+    $cmd =~ s/\s+\-shell\-(escape|restricted)//;
   }
   ($l, $par) = getNext($l);
   return undef if ($par !~ /^latex/);
@@ -165,9 +176,15 @@ sub applyChanges($$$$)
              }
              else {
                $rConverter->{$key}->[2] = 1;
-               $l = &createConvLine($key);
+               $l = &createConvLine($key, $rConverter);
              }
            }
+           else {
+             # Converter defined only in preferences
+             $rConverter->{$key} = $entry->[1];
+             $rConverter->{$key}->[2] = 1;
+             $l = &createConvLine($key, $rConverter);
+           }
          }
        }
        else {