diff -r 000000000000 -r 2483f517c562 ui/winui/util.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/winui/util.cpp Sun Jan 21 16:30:18 2024 +0100 @@ -0,0 +1,46 @@ +#include "pch.h" + +#include "util.h" + +#include + + +wchar_t* str2wstr(const char* str, int* newlen) { + size_t len = strlen(str); + + return str2wstr_len(str, len, newlen); +} + +wchar_t* str2wstr_len(const char* str, size_t len, int* newlen) { + wchar_t* wstr = (wchar_t*)calloc(len + 1, sizeof(wchar_t)); + int wlen = MultiByteToWideChar( + CP_UTF8, + 0, + str, + len, + wstr, + len + 1 + ); + if (newlen) { + *newlen = wlen; + } + wstr[wlen] = 0; + + return wstr; +} + +char* wchar2utf8(const wchar_t* wstr, size_t wlen) { + size_t maxlen = wlen * 4; + char* ret = (char*)malloc(maxlen + 1); + int ret_len = WideCharToMultiByte( + CP_UTF8, + 0, + wstr, + wlen, + ret, + maxlen, + NULL, + NULL); + ret[ret_len] = 0; + return ret; +}