Add -installTheme option
authorH.G.Muller <hgm@hgm-xboard.(none)>
Mon, 29 Feb 2016 11:53:57 +0000 (12:53 +0100)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Mon, 29 Feb 2016 11:53:57 +0000 (12:53 +0100)
A new option of type ArgInstall is added, which will add its argument
to the -themeNames list (under the usual restriction it is not already
in there, and that it was not seen before). By appending such a (time-
stamped) option to the master settings file with -addMasterOption,
newly installed themes can be made to trickle their way into the user's
private settings file. All the theme package has to is call XBoard with
the applicable -addMasterOption "-installTheme ...." arguments in its
install script, and copy any associated files to XBoard's datadir.

args.h

diff --git a/args.h b/args.h
index 6d7bbd8..5485a71 100644 (file)
--- a/args.h
+++ b/args.h
@@ -517,6 +517,7 @@ ArgDescriptor argDescriptors[] = {
   { "themeNames", ArgString, (void *) &appData.themeNames, TRUE, (ArgIniType) "native -upf false -ub false -ubt false -pid \"\"\n" },
   { "addMasterOption", ArgMaster, NULL, FALSE, INVALID },
   { "installEngine", ArgInstall, (void *) &firstChessProgramNames, FALSE, (ArgIniType) "" },
+  { "installTheme", ArgInstall, (void *) &appDatathemeNames, FALSE, (ArgIniType) "" },
   { "initialMode", ArgString, (void *) &appData.initialMode, FALSE, (ArgIniType) "" },
   { "mode", ArgString, (void *) &appData.initialMode, FALSE, INVALID },
   { "variant", ArgString, (void *) &appData.variant, FALSE, (ArgIniType) "normal" },