X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fscripts%2FprefTest.pl.in;h=4e0aab739f05fecd4cc5a7c3da6057676c91731c;hb=4268a9e8121b08f06706d733e8488e163286eab8;hp=08a6c0c2f56f2371156a1432dff052b33774df09;hpb=5dbe57b3d6c146ea938baaa5600b0232ed70b80c;p=lyx.git diff --git a/lib/scripts/prefTest.pl.in b/lib/scripts/prefTest.pl.in index 08a6c0c2f5..4e0aab739f 100755 --- a/lib/scripts/prefTest.pl.in +++ b/lib/scripts/prefTest.pl.in @@ -2,8 +2,25 @@ # -*- mode: perl; -*- use strict; +use warnings; -# Syntax: ReplaceValuesprefTest.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@"; @@ -12,67 +29,47 @@ my $userdir = "$bindir/Testing/.lyx"; my %allowedKeys = ( "use_converter_needauth_forbidden" => ["true", "false"], "use_converter_needauth" => ["true", "false"], + "allow_geometry_session" => ["false"], ); +my %Converter = (); + chdir($bindir); # Parse Arguments for strings to substitute my %Subst = (); -my $ctestparams = 0; my @ctestpars = (); -for my $arg (@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) { @@ -80,3 +77,4 @@ if (@ctestpars) { } exit($res); +