Mercurial > vim
diff src/os_win32.c @ 14065:e271ca6f32f9 v8.1.0050
patch 8.1.0050: $VIM_TERMINAL is also set when not in a terminal window
commit https://github.com/vim/vim/commit/493359eb3b10377d5c3524e91d911809b8ac7a76
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jun 12 20:25:52 2018 +0200
patch 8.1.0050: $VIM_TERMINAL is also set when not in a terminal window
Problem: $VIM_TERMINAL is also set when not in a terminal window.
Solution: Pass a flag to indicate whether the job runs in a terminal.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 12 Jun 2018 20:30:06 +0200 |
parents | f39150ec146e |
children | 39ec4b90e4a7 |
line wrap: on
line diff
--- a/src/os_win32.c +++ b/src/os_win32.c @@ -5275,26 +5275,31 @@ win32_build_env(dict_T *env, garray_T *g } } - if (is_terminal) - { -# ifdef FEAT_CLIENTSERVER +# if defined(FEAT_CLIENTSERVER) || defined(FEAT_TERMINAL) + { +# ifdef FEAT_CLIENTSERVER char_u *servername = get_vim_var_str(VV_SEND_SERVER); size_t servername_len = STRLEN(servername); -# endif +# endif +# ifdef FEAT_TERMINAL char_u *version = get_vim_var_str(VV_VERSION); size_t version_len = STRLEN(version); +# endif // size of "VIM_SERVERNAME=" and value, // plus "VIM_TERMINAL=" and value, // plus two terminating NULs size_t n = 0 -# ifdef FEAT_CLIENTSERVER +# ifdef FEAT_CLIENTSERVER + 15 + servername_len -# endif - + 13 + version_len + 2; +# endif +# ifdef FEAT_TERMINAL + + 13 + version_len + 2 +# endif + ; if (ga_grow(gap, (int)n) == OK) { -# ifdef FEAT_CLIENTSERVER +# ifdef FEAT_CLIENTSERVER for (n = 0; n < 15; n++) *((WCHAR*)gap->ga_data + gap->ga_len++) = (WCHAR)"VIM_SERVERNAME="[n]; @@ -5302,14 +5307,19 @@ win32_build_env(dict_T *env, garray_T *g *((WCHAR*)gap->ga_data + gap->ga_len++) = (WCHAR)servername[n]; *((WCHAR*)gap->ga_data + gap->ga_len++) = L'\0'; -# endif - for (n = 0; n < 13; n++) - *((WCHAR*)gap->ga_data + gap->ga_len++) = - (WCHAR)"VIM_TERMINAL="[n]; - for (n = 0; n < version_len; n++) - *((WCHAR*)gap->ga_data + gap->ga_len++) = - (WCHAR)version[n]; - *((WCHAR*)gap->ga_data + gap->ga_len++) = L'\0'; +# endif +# ifdef FEAT_TERMINAL + if (is_terminal) + { + for (n = 0; n < 13; n++) + *((WCHAR*)gap->ga_data + gap->ga_len++) = + (WCHAR)"VIM_TERMINAL="[n]; + for (n = 0; n < version_len; n++) + *((WCHAR*)gap->ga_data + gap->ga_len++) = + (WCHAR)version[n]; + *((WCHAR*)gap->ga_data + gap->ga_len++) = L'\0'; + } +# endif } } }