diff options
Diffstat (limited to 'tests-clar/clar_libgit2.c')
-rw-r--r-- | tests-clar/clar_libgit2.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/tests-clar/clar_libgit2.c b/tests-clar/clar_libgit2.c index 63efd5954..698aa90f0 100644 --- a/tests-clar/clar_libgit2.c +++ b/tests-clar/clar_libgit2.c @@ -86,14 +86,18 @@ int cl_setenv(const char *name, const char *value) git__utf8_to_16(name_utf16, GIT_WIN_PATH, name); - if (value != NULL) + if (value) { git__utf8_to_16(value_utf16, GIT_WIN_PATH, value); + cl_assert(SetEnvironmentVariableW(name_utf16, value_utf16)); + } else { + /* Windows XP returns 0 (failed) when passing NULL for lpValue when + * lpName does not exist in the environment block. This behavior + * seems to have changed in later versions. Don't check return value + * of SetEnvironmentVariable when passing NULL for lpValue. + */ + SetEnvironmentVariableW(name_utf16, NULL); + } - /* Windows XP returns 0 (failed) when passing NULL for lpValue when lpName - * does not exist in the environment block. This behavior seems to have changed - * in later versions. Don't fail when SetEnvironmentVariable fails, if we passed - * NULL for lpValue. */ - cl_assert(SetEnvironmentVariableW(name_utf16, value ? value_utf16 : NULL) || !value); return 0; } |