Util (Windows): fix possible errors in Unicode.c

This commit is contained in:
李通洲
2025-04-01 16:37:26 +08:00
parent 45aecae221
commit 663650cb61
2 changed files with 8 additions and 14 deletions
+3 -13
View File
@@ -11,22 +11,12 @@ void ffStrbufSetNWS(FFstrbuf* result, uint32_t length, const wchar_t* source)
}
int size_needed = WideCharToMultiByte(CP_UTF8, 0, source, (int)length, NULL, 0, NULL, NULL);
ffStrbufEnsureFree(result, (uint32_t)size_needed);
WideCharToMultiByte(CP_UTF8, 0, source, (int)length, result->chars, size_needed, NULL, NULL);
result->length = (uint32_t)size_needed;
result->chars[size_needed] = '\0';
}
void ffStrbufInitNWS(FFstrbuf* result, uint32_t length, const wchar_t* source)
{
if(!length)
if (size_needed < 0)
{
ffStrbufInit(result);
ffStrbufSetF(result, "WCTMB failed: %u", (unsigned) GetLastError());
return;
}
int size_needed = WideCharToMultiByte(CP_UTF8, 0, source, (int)length, NULL, 0, NULL, NULL);
ffStrbufInitA(result, (uint32_t)size_needed + 1);
ffStrbufEnsureFixedLengthFree(result, (uint32_t)size_needed);
WideCharToMultiByte(CP_UTF8, 0, source, (int)length, result->chars, size_needed, NULL, NULL);
result->length = (uint32_t)size_needed;
result->chars[size_needed] = '\0';
+5 -1
View File
@@ -11,7 +11,11 @@ static inline void ffStrbufSetWS(FFstrbuf* result, const wchar_t* source)
return ffStrbufSetNWS(result, (uint32_t)wcslen(source), source);
}
void ffStrbufInitNWS(FFstrbuf* result, uint32_t length, const wchar_t* source);
static inline void ffStrbufInitNWS(FFstrbuf* result, uint32_t length, const wchar_t* source)
{
ffStrbufInit(result);
return ffStrbufSetNWS(result, length, source);
}
static inline void ffStrbufInitWS(FFstrbuf* result, const wchar_t* source)
{