From 4628ff4177adcd5e34da7f1549e4737d59127279 Mon Sep 17 00:00:00 2001
From: Jonathan Wilkes <jon.w.wilkes@gmail.com>
Date: Mon, 5 Dec 2016 17:13:40 -0500
Subject: [PATCH] for reading preferences on Windows, try HKCU first, then fall
 back to HKLM. For writing, only write to HKCU

---
 pd/src/s_file.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/pd/src/s_file.c b/pd/src/s_file.c
index f2b127c35..1c18096f5 100644
--- a/pd/src/s_file.c
+++ b/pd/src/s_file.c
@@ -189,11 +189,16 @@ static int sys_getpreference(const char *key, char *value, int size)
 {
     HKEY hkey;
     DWORD bigsize = size;
-    LONG err = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+    LONG err = RegOpenKeyEx(HKEY_CURRENT_USER,
         "Software\\Purr-Data", 0,  KEY_QUERY_VALUE, &hkey);
     if (err != ERROR_SUCCESS)
     {
-        return (0);
+        err = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+            "Software\\Purr-Data", 0,  KEY_QUERY_VALUE, &hkey);
+        if (err != ERROR_SUCCESS)
+        {
+            return (0);
+	}
     }
     err = RegQueryValueEx(hkey, key, 0, 0, value, &bigsize);
     if (err != ERROR_SUCCESS)
@@ -216,7 +221,7 @@ static void sys_initsavepreferences( void)
 static void sys_putpreference(const char *key, const char *value)
 {
     HKEY hkey;
-    LONG err = RegCreateKeyEx(HKEY_LOCAL_MACHINE,
+    LONG err = RegCreateKeyEx(HKEY_CURRENT_USER,
         "Software\\Purr-Data", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE,
         NULL, &hkey, NULL);
     if (err != ERROR_SUCCESS)
-- 
GitLab