diff options
| author | Simon Tatham <anakin@pobox.com> | 2012-04-10 19:51:57 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2012-04-10 19:51:57 +0000 |
| commit | 8b96f9b99642908697a60a6b57e931cf5bce9c9c (patch) | |
| tree | 2840730ca539ae976de55db38ef5b4195ac6f9c4 | |
| parent | ec732a4f4e3944071c8a0119f351464c702c48a1 (diff) | |
| download | puzzles-8b96f9b99642908697a60a6b57e931cf5bce9c9c.zip puzzles-8b96f9b99642908697a60a6b57e931cf5bce9c9c.tar.gz puzzles-8b96f9b99642908697a60a6b57e931cf5bce9c9c.tar.bz2 puzzles-8b96f9b99642908697a60a6b57e931cf5bce9c9c.tar.xz | |
Permit users to reconfigure the default setting for each puzzle using
another of those hacky environment variables.
[originally from svn r9455]
| -rw-r--r-- | midend.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -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; |