shithub: puzzles

Download patch

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;