X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/a1594e4ba90d9853e7dda47f97858269f8aac0f6..2221af18439a29baed19df4467fc8ba7112712b7:/settings.c diff --git a/settings.c b/settings.c index 66128a45..69394f27 100644 --- a/settings.c +++ b/settings.c @@ -338,19 +338,28 @@ void get_sesslist(int allocate) { buffer = srealloc(buffer, buflen+1); buffer[buflen] = '\0'; + /* + * Now set up the list of sessions. Note that "Default + * Settings" must always be claimed to exist, even if it + * doesn't really. + */ + p = buffer; - nsessions = 0; + nsessions = 1; /* "Default Settings" counts as one */ while (*p) { - nsessions++; + if (strcmp(p, "Default Settings")) + nsessions++; while (*p) p++; p++; } - sessions = smalloc(nsessions * sizeof(char *)); + sessions = smalloc((nsessions+1) * sizeof(char *)); + sessions[0] = "Default Settings"; p = buffer; - i = 0; + i = 1; while (*p) { - sessions[i++] = p; + if (strcmp(p, "Default Settings")) + sessions[i++] = p; while (*p) p++; p++; }