util: rename unicode helper function names

This commit is contained in:
李通洲
2022-11-26 12:52:04 +08:00
parent 4316ba988b
commit 4cf1d5bf94
8 changed files with 32 additions and 24 deletions
+2 -2
View File
@@ -86,7 +86,7 @@ const char* ffDetectBatteryImpl(FFinstance* instance, FFlist* results)
bqi.InformationLevel = BatteryDeviceName;
wchar_t name[64];
if(DeviceIoControl(hBattery, IOCTL_BATTERY_QUERY_INFORMATION, &bqi, sizeof(bqi), name, sizeof(name), &dwOut, NULL))
ffWcharToUtf8(name, &battery->modelName);
ffStrbufSetWS(&battery->modelName, name);
}
{
@@ -94,7 +94,7 @@ const char* ffDetectBatteryImpl(FFinstance* instance, FFlist* results)
bqi.InformationLevel = BatteryManufactureName;
wchar_t name[64];
if(DeviceIoControl(hBattery, IOCTL_BATTERY_QUERY_INFORMATION, &bqi, sizeof(bqi), name, sizeof(name), &dwOut, NULL))
ffWcharToUtf8(name, &battery->manufacturer);
ffStrbufSetWS(&battery->manufacturer, name);
}
battery->temperature = 0.0/0.0;
+1 -1
View File
@@ -15,7 +15,7 @@ void ffDetectFontImpl(const FFinstance* instance, FFFontResult* result)
for(uint32_t i = 0; i < sizeof(fonts) / sizeof(fonts[0]); ++i)
{
ffWcharToUtf8(fonts[i]->lfFaceName, &result->fonts[i]);
ffStrbufSetWS(&result->fonts[i], fonts[i]->lfFaceName);
if(fonts[i]->lfHeight < 0)
ffStrbufAppendF(&result->fonts[i], " (%dpt)", (int)-fonts[i]->lfHeight);
}
+1 -1
View File
@@ -36,7 +36,7 @@ static const char* detectWithDxgi(FFlist* gpus)
ffStrbufInit(&gpu->vendor);
ffStrbufInit(&gpu->name);
ffWcharToUtf8(desc.Description, &gpu->name);
ffStrbufSetWS(&gpu->name, desc.Description);
ffStrbufInit(&gpu->driver);
+1 -1
View File
@@ -36,7 +36,7 @@ static const char* getOsNameByWinbrand(FFstrbuf* osName)
return "GetProcAddress(BrandingFormatString) failed";
const wchar_t* rawName = BrandingFormatString(L"%WINDOWS_LONG%");
ffWcharToUtf8(rawName, osName);
ffStrbufSetWS(osName, rawName);
GlobalFree((HGLOBAL)rawName);
return NULL;
}
+2 -2
View File
@@ -42,8 +42,8 @@ void ffDetectUsers(FFlist* users, FFstrbuf* error)
if(session->State != WTSActive)
continue;
FF_STRBUF_AUTO_DESTROY domainName = ffStrbufFromWchar(session->pDomainName);
FF_STRBUF_AUTO_DESTROY userName = ffStrbufFromWchar(session->pUserName);
FF_STRBUF_AUTO_DESTROY domainName = ffStrbufCreateWS(session->pDomainName);
FF_STRBUF_AUTO_DESTROY userName = ffStrbufCreateWS(session->pUserName);
ffStrbufInitF((FFstrbuf*)ffListAdd(users), "%s\\%s", domainName.chars, userName.chars);
}
+5 -5
View File
@@ -26,7 +26,7 @@ bool ffRegOpenKeyForRead(HKEY hKey, const wchar_t* subKeyW, HKEY* result, FFstrb
{
if(error)
{
FF_STRBUF_AUTO_DESTROY subKeyA = ffStrbufFromWchar(subKeyW);
FF_STRBUF_AUTO_DESTROY subKeyA = ffStrbufCreateWS(subKeyW);
ffStrbufAppendF(error, "RegOpenKeyExW(%s\\%s) failed", hKey2Str(hKey), subKeyA.chars);
}
return false;
@@ -43,7 +43,7 @@ bool ffRegReadStrbuf(HKEY hKey, const wchar_t* valueNameW, FFstrbuf* result, FFs
{
if(!valueNameW)
valueNameW = L"(default)";
FF_STRBUF_AUTO_DESTROY valueNameA = ffStrbufFromWchar(valueNameW);
FF_STRBUF_AUTO_DESTROY valueNameA = ffStrbufCreateWS(valueNameW);
ffStrbufAppendF(error, "RegGetValueA(%s, NULL, RRF_RT_REG_SZ) failed", valueNameA.chars);
}
return false;
@@ -55,12 +55,12 @@ bool ffRegReadStrbuf(HKEY hKey, const wchar_t* valueNameW, FFstrbuf* result, FFs
{
if(!valueNameW)
valueNameW = L"(default)";
FF_STRBUF_AUTO_DESTROY valueNameA = ffStrbufFromWchar(valueNameW);
FF_STRBUF_AUTO_DESTROY valueNameA = ffStrbufCreateWS(valueNameW);
ffStrbufAppendF(error, "RegGetValueA(%s, result, RRF_RT_REG_SZ) failed", valueNameA.chars);
}
return false;
}
ffWcharToUtf8(resultW, result);
ffStrbufSetWS(result, resultW);
return true;
}
@@ -73,7 +73,7 @@ bool ffRegReadUint(HKEY hKey, const wchar_t* valueNameW, uint32_t* result, FFstr
{
if(!valueNameW)
valueNameW = L"(default)";
FF_STRBUF_AUTO_DESTROY valueNameA = ffStrbufFromWchar(valueNameW);
FF_STRBUF_AUTO_DESTROY valueNameA = ffStrbufCreateWS(valueNameW);
ffStrbufAppendF(error, "RegGetValueA(%s, result, RRF_RT_DWORD) failed", valueNameA.chars);
}
return false;
+8 -10
View File
@@ -1,33 +1,31 @@
#include "unicode.h"
void ffWcharToUtf8(const wchar_t* input, FFstrbuf* result)
void ffStrbufSetNWS(FFstrbuf* result, uint32_t length, const wchar_t* source)
{
int len = (int)wcslen(input);
if(len <= 0)
if(!length)
{
ffStrbufClear(result);
return;
}
int size_needed = WideCharToMultiByte(CP_UTF8, 0, input, len, NULL, 0, NULL, NULL);
int size_needed = WideCharToMultiByte(CP_UTF8, 0, source, (int)length, NULL, 0, NULL, NULL);
ffStrbufEnsureFree(result, (uint32_t)size_needed);
WideCharToMultiByte(CP_UTF8, 0, input, len, result->chars, size_needed, NULL, NULL);
WideCharToMultiByte(CP_UTF8, 0, source, (int)length, result->chars, size_needed, NULL, NULL);
result->length = (uint32_t)size_needed;
result->chars[size_needed] = '\0';
}
FFstrbuf ffStrbufFromWchar(const wchar_t* input)
FFstrbuf ffStrbufCreateNWS(uint32_t length, const wchar_t* source)
{
FFstrbuf result;
int len = input ? (int)wcslen(input) : 0;
if(len <= 0)
if(length == 0)
ffStrbufInit(&result);
else
{
int size_needed = WideCharToMultiByte(CP_UTF8, 0, input, len, NULL, 0, NULL, NULL);
int size_needed = WideCharToMultiByte(CP_UTF8, 0, source, (int)length, NULL, 0, NULL, NULL);
ffStrbufInitA(&result, (uint32_t)size_needed);
WideCharToMultiByte(CP_UTF8, 0, input, len, result.chars, size_needed, NULL, NULL);
WideCharToMultiByte(CP_UTF8, 0, source, (int)length, result.chars, size_needed, NULL, NULL);
result.length = (uint32_t)size_needed;
result.chars[size_needed] = '\0';
}
+12 -2
View File
@@ -4,8 +4,18 @@
#define FASTFETCH_INCLUDED_UNICODE_H
#include "fastfetch.h"
#include <wchar.h>
void ffWcharToUtf8(const wchar_t* input, FFstrbuf* result);
FFstrbuf ffStrbufFromWchar(const wchar_t* input);
void ffStrbufSetNWS(FFstrbuf* result, uint32_t length, const wchar_t* source);
static inline void ffStrbufSetWS(FFstrbuf* result, const wchar_t* source)
{
return ffStrbufSetNWS(result, (uint32_t)wcslen(source), source);
}
FFstrbuf ffStrbufCreateNWS(uint32_t length, const wchar_t* source);
static inline FFstrbuf ffStrbufCreateWS(const wchar_t* source)
{
return ffStrbufCreateNWS((uint32_t)wcslen(source), source);
}
#endif