--- portaputty.orig\WINDOWS\WINSTORE.C 2005-11-21 12:40:34.000000000 -0500 +++ portaputty\WINDOWS\WINSTORE.C 2006-01-31 21:03:22.000000000 -0500 @@ -311,16 +311,45 @@ int read_setting_fontspec(void *handle, const char *name, FontSpec *result) { - return !!read_setting_s(handle, name, result->name, sizeof(result->name)); + char *settingname; + FontSpec ret; + + if (!read_setting_s(handle, name, ret.name, sizeof(ret.name))) + return 0; + settingname = dupcat(name, "IsBold", NULL); + ret.isbold = read_setting_i(handle, settingname, -1); + sfree(settingname); + if (ret.isbold == -1) return 0; + settingname = dupcat(name, "CharSet", NULL); + ret.charset = read_setting_i(handle, settingname, -1); + sfree(settingname); + if (ret.charset == -1) return 0; + settingname = dupcat(name, "Height", NULL); + ret.height = read_setting_i(handle, settingname, -42); + sfree(settingname); + if (ret.height == -42) return 0; + *result = ret; + return 1; } int read_setting_filename(void *handle, const char *name, Filename *result) { return !!read_setting_s(handle, name, result->path, sizeof(result->path)); } -void write_setting_fontspec(void *handle, const char *name, FontSpec result) +void write_setting_fontspec(void *handle, const char *name, FontSpec font) { - write_setting_s(handle, name, result.name); + char *settingname; + + write_setting_s(handle, name, font.name); + settingname = dupcat(name, "IsBold", NULL); + write_setting_i(handle, settingname, font.isbold); + sfree(settingname); + settingname = dupcat(name, "CharSet", NULL); + write_setting_i(handle, settingname, font.charset); + sfree(settingname); + settingname = dupcat(name, "Height", NULL); + write_setting_i(handle, settingname, font.height); + sfree(settingname); } void write_setting_filename(void *handle, const char *name, Filename result) {