From 829c02d6b29fa038e9b90b0c438ce8afe3282036 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 10 Apr 2012 19:51:57 +0000 Subject: [PATCH] Permit users to reconfigure the default setting for each puzzle using another of those hacky environment variables. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@9455 cda61777-01e9-0310-a592-d414129be87e --- midend.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/midend.c b/midend.c index c1f3a01..00b187d 100644 --- a/midend.c +++ b/midend.c @@ -106,6 +106,22 @@ midend *midend_new(frontend *fe, const game *ourgame, me->nstates = me->statesize = me->statepos = 0; me->states = NULL; me->params = ourgame->default_params(); + /* + * Allow environment-based changing of the default settings by + * defining a variable along the lines of `NET_DEFAULT=25x25w' + * in which the value is an encoded parameter string. + */ + { + char buf[80], *e; + int j, k; + sprintf(buf, "%s_DEFAULT", me->ourgame->name); + for (j = k = 0; buf[j]; j++) + if (!isspace((unsigned char)buf[j])) + buf[k++] = toupper((unsigned char)buf[j]); + buf[k] = '\0'; + if ((e = getenv(buf)) != NULL) + me->ourgame->decode_params(me->params, e); + } me->curparams = NULL; me->desc = me->privdesc = NULL; me->seedstr = NULL; -- 2.11.0