diff --git a/win32/win32.c b/win32/win32.c index c4678b1593..a02ac5d9fb 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -482,8 +482,8 @@ init_env(void) BOOL f; #define env wk.val #define set_env_val(vname) do { \ - typedef char namesizecheck[numberof(wk.name) < numberof(vname) - 1 ? -1 : 1]; \ - WCHAR *const buf = wk.name + numberof(wk.name) - numberof(vname) + 1; \ + typedef char wk_name_offset[(numberof(wk.name) - numberof(vname) + 1) * 2 + 1]; \ + WCHAR *const buf = wk.name + sizeof(wk_name_offset) / 2; \ MEMCPY(buf, vname, WCHAR, numberof(vname) - 1); \ _wputenv(buf); \ } while (0)