mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 19:07:45 +00:00
6e9e7f2b94
Since no extra shortcuts are defined, this is essentially a noop ATM.
128 lines
2.7 KiB
Perl
Executable File
128 lines
2.7 KiB
Perl
Executable File
#! /usr/bin/env perl
|
|
# -*- mode: perl; -*-
|
|
|
|
use strict;
|
|
|
|
# Syntax: ReplaceValuesprefTest.pl [<var1>=<Subst1> [<var2>=<Subst> ...]] [[ctest parameters]]
|
|
|
|
my $bindir = "@CMAKE_BINARY_DIR@";
|
|
|
|
my $userdir = "$bindir/Testing/.lyx";
|
|
|
|
my %allowedKeys = (
|
|
"use_converter_needauth_forbidden" => ["true", "false"],
|
|
"use_converter_needauth" => ["true", "false"],
|
|
);
|
|
|
|
# Bindings used by some tests
|
|
# used file is "$userdir/bind/user.bind"
|
|
my %bindings = (
|
|
# Empty for now, example below
|
|
# "A-h" => ["dialog-hide", "findreplaceadv"],
|
|
);
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
|
|
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 = <FI>) {
|
|
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 (open(FO, '>', "$userdir/userbind.tmp")) {
|
|
my %used = ();
|
|
if (open(FI, "$userdir/bind/user.bind")) {
|
|
while (my $l = <FI>) {
|
|
my $found = 0;
|
|
for my $k (keys %bindings) {
|
|
if ($l =~ /^\s*\\bind\s+\"$k\"/) {
|
|
$found = 1;
|
|
if (! defined($used{$k})) {
|
|
$used{$k} = 1;
|
|
$l = "\\bind \"$k\" \"" . join(' ', @{$bindings{$k}}) . "\"\n";
|
|
print FO $l;
|
|
last;
|
|
}
|
|
}
|
|
print FO $l if (! $found);
|
|
}
|
|
}
|
|
close(FI);
|
|
}
|
|
else {
|
|
print FO "## This file is automatically generated by lyx\n";
|
|
print FO "## All modifications will be lost\n";
|
|
print FO "\n\n";
|
|
print FO "Format 4\n\n";
|
|
}
|
|
for my $k (keys %bindings) {
|
|
if (! defined($used{$k})) {
|
|
$used{$k} = 1;
|
|
my $l = "\\bind \"$k\" \"" . join(' ', @{$bindings{$k}}) . "\"\n";
|
|
print FO $l;
|
|
}
|
|
}
|
|
close(FO);
|
|
rename("$userdir/userbind.tmp", "$userdir/bind/user.bind");
|
|
}
|
|
|
|
my $res = 0;
|
|
if (@ctestpars) {
|
|
$res = system("ctest", @ctestpars);
|
|
}
|
|
|
|
exit($res);
|