[c-host] not all versions of mingw support wcstombs_s

While the _s functions are for security as they avoid exceeding the
supplied buffer, in our case they are not really required as we are
allocating a buffer large enough to store the entire result.

Fixes #171
This commit is contained in:
Geoffrey McRae 2019-06-12 15:31:18 +10:00
parent e3343cbd01
commit 6d24dd52d6
3 changed files with 4 additions and 7 deletions

View File

@ -1 +1 @@
B1-rc5-5-g113da121e9+1 B1-rc5-8-ge3343cbd01+1

View File

@ -215,9 +215,8 @@ static bool dxgi_init(void * pointerShape, const unsigned int pointerSize)
IDXGIAdapter1_GetDesc1(this->adapter, &adapterDesc); IDXGIAdapter1_GetDesc1(this->adapter, &adapterDesc);
const size_t s = (wcslen(adapterDesc.Description)+1) * 2; const size_t s = (wcslen(adapterDesc.Description)+1) * 2;
size_t unused;
char * desc = malloc(s); char * desc = malloc(s);
wcstombs_s(&unused, desc, s, adapterDesc.Description, _TRUNCATE); wcstombs(desc, adapterDesc.Description, s);
if (strstr(desc, optAdapter) == NULL) if (strstr(desc, optAdapter) == NULL)
{ {
@ -238,9 +237,8 @@ static bool dxgi_init(void * pointerShape, const unsigned int pointerSize)
if (optOutput) if (optOutput)
{ {
const size_t s = (wcslen(outputDesc.DeviceName)+1) * 2; const size_t s = (wcslen(outputDesc.DeviceName)+1) * 2;
size_t unused;
char * desc = malloc(s); char * desc = malloc(s);
wcstombs_s(&unused, desc, s, outputDesc.DeviceName, _TRUNCATE); wcstombs(desc, outputDesc.DeviceName, s);
if (strstr(desc, optOutput) == NULL) if (strstr(desc, optOutput) == NULL)
{ {

View File

@ -194,9 +194,8 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
for(int i = 0; i < app.argc; ++i) for(int i = 0; i < app.argc; ++i)
{ {
const size_t s = (wcslen(wargv[i])+1) * 2; const size_t s = (wcslen(wargv[i])+1) * 2;
size_t unused;
app.argv[i] = malloc(s); app.argv[i] = malloc(s);
wcstombs_s(&unused, app.argv[i], s, wargv[i], _TRUNCATE); wcstombs(app.argv[i], wargv[i], s);
} }
LocalFree(wargv); LocalFree(wargv);