X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fscripts%2FprefTest.pm;h=1f1470f5a6c73c1adb07a8e30a7622badfe08baf;hb=98a64be87297a6ea7f6257ff37c70664262ded21;hp=d5b34698c2b457e8d3bd1fac975bff9ae5d6d39e;hpb=c5e53637c2facccc749cbb80c0b6682469d58268;p=lyx.git diff --git a/lib/scripts/prefTest.pm b/lib/scripts/prefTest.pm index d5b34698c2..1f1470f5a6 100644 --- a/lib/scripts/prefTest.pm +++ b/lib/scripts/prefTest.pm @@ -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 {