ref: 8b96f9b99642908697a60a6b57e931cf5bce9c9c
parent: ec732a4f4e3944071c8a0119f351464c702c48a1
author: Simon Tatham <anakin@pobox.com>
date: Tue Apr 10 15:51:57 EDT 2012
Permit users to reconfigure the default setting for each puzzle using another of those hacky environment variables. [originally from svn r9455]
--- a/midend.c
+++ b/midend.c
@@ -106,6 +106,22 @@
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;