diff options
Diffstat (limited to 'src/base/Osx.cpp')
-rw-r--r-- | src/base/Osx.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/base/Osx.cpp b/src/base/Osx.cpp index 46b923fe..d979f542 100644 --- a/src/base/Osx.cpp +++ b/src/base/Osx.cpp @@ -1,19 +1,22 @@ #include "cru/base/Osx.h" +#include "cru/base/StringUtil.h" namespace cru { -CFWrapper<CFStringRef> ToCFString(StringView string) { +CFWrapper<CFStringRef> ToCFString(std::string_view string) { return CFWrapper<CFStringRef>(CFStringCreateWithBytes( nullptr, reinterpret_cast<const UInt8*>(string.data()), - string.size() * sizeof(std::uint16_t), kCFStringEncodingUTF16, false)); + string.size() * sizeof(char), kCFStringEncodingUTF8, false)); } -String FromCFStringRef(CFStringRef string) { +std::string FromCFStringRef(CFStringRef string) { auto length = CFStringGetLength(string); - String result; + std::string result; for (int i = 0; i < length; i++) { - result.AppendCodePoint(CFStringGetCharacterAtIndex(string, i)); + cru::string::Utf8EncodeCodePointAppend( + CFStringGetCharacterAtIndex(string, i), + [&result](char c) { result += c; }); } return result; |