Yikes - saving of Default Settings must have been broken for some
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 22 Mar 2003 09:49:20 +0000 (09:49 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sat, 22 Mar 2003 09:49:20 +0000 (09:49 +0000)
time! The load code in settings.c was translating an empty string
into "Default Settings" to pass to {win,ux}store, whereas the save
code was passing the empty string straight down and expecting it to
be dealt with. So, a policy decision: the precise name of the
"Default Settings" special session _at the storage level_ is up to
the individual platform storage code to decide, and all platforms
MUST assume Default Settings is meant if they receive NULL or the
empty string as a session name.

git-svn-id: svn://svn.tartarus.org/sgt/putty@2974 cda61777-01e9-0310-a592-d414129be87e

settings.c
winstore.c

index c3f8c88..2d6a1fb 100644 (file)
@@ -631,10 +631,7 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg)
 
 void do_defaults(char *session, Config * cfg)
 {
-    if (session)
-       load_settings(session, TRUE, cfg);
-    else
-       load_settings("Default Settings", FALSE, cfg);
+    load_settings(session, (session != NULL && *session), cfg);
 }
 
 static int sessioncmp(const void *av, const void *bv)
index a69d58d..e0d9a78 100644 (file)
@@ -67,6 +67,9 @@ void *open_settings_w(const char *sessionname)
     int ret;
     char *p;
 
+    if (!sessionname || !*sessionname)
+       sessionname = "Default Settings";
+
     p = smalloc(3 * strlen(sessionname) + 1);
     mungestr(sessionname, p);
 
@@ -107,6 +110,9 @@ void *open_settings_r(const char *sessionname)
     HKEY subkey1, sesskey;
     char *p;
 
+    if (!sessionname || !*sessionname)
+       sessionname = "Default Settings";
+
     p = smalloc(3 * strlen(sessionname) + 1);
     mungestr(sessionname, p);