X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/ae62eaeb01088430162fa96e8cca35f721ff376d..fc9b052a2fc832ea8bc3efa9c79eba0f961830b2:/windows/winstore.c diff --git a/windows/winstore.c b/windows/winstore.c index c1656762..66c7c759 100644 --- a/windows/winstore.c +++ b/windows/winstore.c @@ -230,21 +230,20 @@ void write_setting_fontspec(void *handle, const char *name, FontSpec *font) sfree(settingname); } -int read_setting_filename(void *handle, const char *name, Filename *result) +Filename *read_setting_filename(void *handle, const char *name) { char *tmp = read_setting_s(handle, name); if (tmp) { - strncpy(result->path, tmp, sizeof(result->path)-1); - result->path[sizeof(result->path)-1] = '\0'; + Filename *ret = filename_from_str(tmp); sfree(tmp); - return TRUE; + return ret; } else - return FALSE; + return NULL; } -void write_setting_filename(void *handle, const char *name, Filename result) +void write_setting_filename(void *handle, const char *name, Filename *result) { - write_setting_s(handle, name, result.path); + write_setting_s(handle, name, result->path); } void close_settings_r(void *handle) @@ -457,7 +456,10 @@ enum { DEL, OPEN_R, OPEN_W }; static int try_random_seed(char const *path, int action, HANDLE *ret) { if (action == DEL) { - remove(path); + if (!DeleteFile(path) && GetLastError() != ERROR_FILE_NOT_FOUND) { + nonfatal("Unable to delete '%s': %s", path, + win_strerror(GetLastError())); + } *ret = INVALID_HANDLE_VALUE; return FALSE; /* so we'll do the next ones too */ }