Permit users to reconfigure the default setting for each puzzle using

another of those hacky environment variables.

[originally from svn r9455]
This commit is contained in:
Simon Tatham
2012-04-10 19:51:57 +00:00
parent ec732a4f4e
commit 8b96f9b996

View File

@ -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;