sub getConverter($$);
sub getNext($);
sub writeConverters($$);
+sub createConvLine($$);
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];
($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+$//;
}
}
else {
- $cmd =~ s/\s+\-shell\-escape//;
+ $cmd =~ s/\s+\-shell\-(escape|restricted)//;
}
($l, $par) = getNext($l);
return undef if ($par !~ /^latex/);
}
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 {