X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fscripts%2FprefTest.pl.in;h=4e0aab739f05fecd4cc5a7c3da6057676c91731c;hb=4268a9e8121b08f06706d733e8488e163286eab8;hp=3a4829c55caeadddf3f5d1819b2106c61bbb6f13;hpb=3b05cf285145d7ced6b4d9014bb42f5a1e196746;p=lyx.git diff --git a/lib/scripts/prefTest.pl.in b/lib/scripts/prefTest.pl.in index 3a4829c55c..4e0aab739f 100755 --- a/lib/scripts/prefTest.pl.in +++ b/lib/scripts/prefTest.pl.in @@ -4,7 +4,23 @@ use strict; use warnings; -# Syntax: prefTest.pl [= [= ...]] [[ctest parameters]] +# Syntax: prefTest.pl [test|default] [= [= ...]] [[ctest parameters]] +# If the first parameter is "test" +# allow use of -shell-escape in converters and +# allow use of external programs +# If the first parameter is "default" +# remove "-shell-escape" from converters and +# forbid use of external programs +# Else +# allow use of -shell-escape in converters and +# do not change handling the use of external programs +############################################################ + +BEGIN { + unshift(@INC, "@CMAKE_CURRENT_SOURCE_DIR@"); +} + +use prefTest; my $bindir = "@CMAKE_BINARY_DIR@"; @@ -16,66 +32,44 @@ my %allowedKeys = ( "allow_geometry_session" => ["false"], ); +my %Converter = (); + chdir($bindir); # Parse Arguments for strings to substitute my %Subst = (); -my $ctestparams = 0; my @ctestpars = (); -for my $arg ("allow_geometry_session=false", @ARGV) { - if ($ctestparams) { - push(@ctestpars, $arg); - } - else { - if ($arg =~ /^([^=]+)=(.*)$/) { - my $key = $1; - my $value = $2; - my $valid = 0; - if (defined($allowedKeys{$key})) { - for my $val (@{$allowedKeys{$key}}) { - if ($val eq $value) { - $valid = 1; - last; - } - } - } - if ($valid) { - $Subst{$key} = [$value, 0]; - } - else { - die("invalid key or value specified in \"$arg\""); - } - } - else { - $ctestparams = 1; - push(@ctestpars, $arg); - } - } + +my $shell_escapes = 1; +my $handle_argv = ""; +if (defined($ARGV[0]) && ($ARGV[0] =~ /^(test|default)$/)) { + $handle_argv = $1; + shift(@ARGV); } -if (%Subst) { # Try to do something only if a substitute is requested - if (open(FO, '>', "$userdir/preferences.tmp")) { - if (open(FI, "$userdir/preferences")) { - while (my $l = ) { - for my $k (keys %Subst) { - if ($l =~ /^\\$k\b/) { - $l = "\\$k $Subst{$k}->[0]\n"; - $Subst{$k}->[1] = 1; - } - } - print FO $l; - } - } - for my $k (keys %Subst) { - if ($Subst{$k}->[1] == 0) { - print FO "\\$k $Subst{$k}->[0]\n"; - } - } - rename("$userdir/preferences.tmp", "$userdir/preferences"); - } +if ($handle_argv eq "test") { + @ctestpars = &getSubstitutes(\%allowedKeys, \%Subst, + "allow_geometry_session=false", + "use_converter_needauth_forbidden=false", + "use_converter_needauth=false", @ARGV); } +elsif ($handle_argv eq "default") { + $shell_escapes = 0; + @ctestpars = &getSubstitutes(\%allowedKeys, \%Subst, + "allow_geometry_session=false", + "use_converter_needauth_forbidden=true", + "use_converter_needauth=true", @ARGV); +} +else { + @ctestpars = &getSubstitutes(\%allowedKeys, \%Subst, + "allow_geometry_session=false", @ARGV); +} + +&getConverters($userdir, \%Converter, $shell_escapes); + +&applyChanges($userdir, \%Subst, \%Converter, $shell_escapes); my $res = 0; if (@ctestpars) { @@ -83,3 +77,4 @@ if (@ctestpars) { } exit($res); +