forked from aniani/vim
patch 8.2.0239: MS-Windows: 'env' job option does not override existing vars
Problem: MS-Windows: 'env' job option does not override existing environment variables. (Tim Pope) Solution: Set the environment variables later. (Yasuhiro Matsumoto, closes #5485, closes #5608)
This commit is contained in:
@@ -4948,24 +4948,6 @@ win32_build_env(dict_T *env, garray_T *gap, int is_terminal)
|
||||
if (ga_grow(gap, 1) == FAIL)
|
||||
return;
|
||||
|
||||
if (base)
|
||||
{
|
||||
WCHAR *p = (WCHAR*) base;
|
||||
|
||||
// for last \0
|
||||
if (ga_grow(gap, 1) == FAIL)
|
||||
return;
|
||||
|
||||
while (*p != 0 || *(p + 1) != 0)
|
||||
{
|
||||
if (ga_grow(gap, 1) == OK)
|
||||
*((WCHAR*)gap->ga_data + gap->ga_len++) = *p;
|
||||
p++;
|
||||
}
|
||||
FreeEnvironmentStrings(base);
|
||||
*((WCHAR*)gap->ga_data + gap->ga_len++) = L'\0';
|
||||
}
|
||||
|
||||
if (env != NULL)
|
||||
{
|
||||
for (hi = env->dv_hashtab.ht_array; todo > 0; ++hi)
|
||||
@@ -4997,6 +4979,24 @@ win32_build_env(dict_T *env, garray_T *gap, int is_terminal)
|
||||
}
|
||||
}
|
||||
|
||||
if (base)
|
||||
{
|
||||
WCHAR *p = (WCHAR*) base;
|
||||
|
||||
// for last \0
|
||||
if (ga_grow(gap, 1) == FAIL)
|
||||
return;
|
||||
|
||||
while (*p != 0 || *(p + 1) != 0)
|
||||
{
|
||||
if (ga_grow(gap, 1) == OK)
|
||||
*((WCHAR*)gap->ga_data + gap->ga_len++) = *p;
|
||||
p++;
|
||||
}
|
||||
FreeEnvironmentStrings(base);
|
||||
*((WCHAR*)gap->ga_data + gap->ga_len++) = L'\0';
|
||||
}
|
||||
|
||||
# if defined(FEAT_CLIENTSERVER) || defined(FEAT_TERMINAL)
|
||||
{
|
||||
# ifdef FEAT_CLIENTSERVER
|
||||
|
Reference in New Issue
Block a user