From 8e3256a5b91305302edc2281a413257ebb455286 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Sat, 11 Jan 2025 19:55:14 -0600 Subject: [PATCH] use UTF-8 for string preferences --- src/tools/prefs.mac.mm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/tools/prefs.mac.mm b/src/tools/prefs.mac.mm index c1ab4a51..4b749bc4 100644 --- a/src/tools/prefs.mac.mm +++ b/src/tools/prefs.mac.mm @@ -48,7 +48,12 @@ static NSString* convertKey(std::string keypath) { } static std::string convertValue(NSString* value) { - return std::string([value cStringUsingEncoding : NSASCIIStringEncoding]); + return std::string([value cStringUsingEncoding : NSUTF8StringEncoding]); +} + +static NSString* convertValue(std::string value) { + NSString* key = [NSString stringWithCString: value.c_str() encoding: NSUTF8StringEncoding]; + return key; } static NSUserDefaults* getCurrentDefaults() { @@ -109,8 +114,7 @@ std::vector get_iarray_pref(std::string keypath) { void set_pref(std::string keypath, std::string val) { NSString* key = convertKey(keypath); - // Not a key, but convertKey() still works, don't it? - NSString* value = convertKey(val); + NSString* value = convertValue(val); [getCurrentDefaults() setObject: value forKey: key]; }