X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/be5c5fed6ddb65f5e0443bc893ec83c858f87558..0b89e7b2ddbde72ef39bf1ef041655a8f5cd291b:/settings.c diff --git a/settings.c b/settings.c index c3f8c883..1de8e51a 100644 --- a/settings.c +++ b/settings.c @@ -141,15 +141,17 @@ static void wprefs(void *sesskey, char *name, write_setting_s(sesskey, name, buf); } -void save_settings(char *section, int do_host, Config * cfg) +char *save_settings(char *section, int do_host, Config * cfg) { void *sesskey; + char *errmsg; - sesskey = open_settings_w(section); + sesskey = open_settings_w(section, &errmsg); if (!sesskey) - return; + return errmsg; save_open_settings(sesskey, do_host, cfg); close_settings_w(sesskey); + return NULL; } void save_open_settings(void *sesskey, int do_host, Config *cfg) @@ -631,10 +633,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) @@ -675,7 +674,7 @@ void get_sesslist(struct sesslist *list, int allocate) int len = strlen(otherbuf) + 1; if (bufsize < buflen + len) { bufsize = buflen + len + 2048; - list->buffer = srealloc(list->buffer, bufsize); + list->buffer = sresize(list->buffer, bufsize, char); } strcpy(list->buffer + buflen, otherbuf); buflen += strlen(list->buffer + buflen) + 1; @@ -683,7 +682,7 @@ void get_sesslist(struct sesslist *list, int allocate) } while (ret); enum_settings_finish(handle); } - list->buffer = srealloc(list->buffer, buflen + 1); + list->buffer = sresize(list->buffer, buflen + 1, char); list->buffer[buflen] = '\0'; /* @@ -702,7 +701,7 @@ void get_sesslist(struct sesslist *list, int allocate) p++; } - list->sessions = smalloc((list->nsessions + 1) * sizeof(char *)); + list->sessions = snewn(list->nsessions + 1, char *); list->sessions[0] = "Default Settings"; p = list->buffer; i = 1;