shithub: puzzles

Download patch

ref: 20d424bf1bef4c1ed249ec3c72a859deb926e207
parent: 43db4aa38e83595dc6df245cb952795f9f306ed0
author: Simon Tatham <anakin@pobox.com>
date: Mon Apr 24 10:24:19 EDT 2023

Emscripten: change the localStorage key used for preferences.

I picked pathname + "#preferences" because Ben suggested either that
or pathname + "/preferences", and I thought the former sounded neater.
But Ben now suggests that it might be better to avoid using # in the
key, just in case anyone should later want to use the whole URL
_including_ the fragment ID as the key for some other localStorage
usage - for example, autosaved progress per puzzle _instance_, keying
off the puzzle URL with a fragment ID in the game description.

So, per Ben's replacement suggestion, change the "#" to a space.

--- a/emcclib.js
+++ b/emcclib.js
@@ -801,7 +801,7 @@
      */
     js_save_prefs: function(buf) {
         var prefsdata = UTF8ToString(buf);
-        localStorage.setItem(location.pathname + "#preferences", prefsdata);
+        localStorage.setItem(location.pathname + " preferences", prefsdata);
     },
 
     /*
@@ -811,7 +811,7 @@
      * pass it back in as a string, via prefs_load_callback.
      */
     js_load_prefs: function(me) {
-        var prefsdata = localStorage.getItem(location.pathname+"#preferences");
+        var prefsdata = localStorage.getItem(location.pathname+" preferences");
         if (prefsdata !== undefined && prefsdata !== null) {
             prefs_load_callback(me, prefsdata);
         }