comparison src/os_win32.c @ 14063:f39150ec146e v8.1.0049

patch 8.1.0049: shell cannot tell running in a terminal window commit https://github.com/vim/vim/commit/d7a137fb0d980545dd567bee9c24cf7b9c3a2eae Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jun 12 18:05:24 2018 +0200 patch 8.1.0049: shell cannot tell running in a terminal window Problem: Shell cannot tell running in a terminal window. Solution: Add the VIM_TERMINAL environment variable. (Christian Brabandt)
author Christian Brabandt <cb@256bit.org>
date Tue, 12 Jun 2018 18:15:05 +0200
parents 1ea18443d569
children e271ca6f32f9
comparison
equal deleted inserted replaced
14062:bc0f80e06d2f 14063:f39150ec146e
5273 if (wval != NULL) vim_free(wval); 5273 if (wval != NULL) vim_free(wval);
5274 } 5274 }
5275 } 5275 }
5276 } 5276 }
5277 5277
5278 if (is_terminal)
5279 {
5278 # ifdef FEAT_CLIENTSERVER 5280 # ifdef FEAT_CLIENTSERVER
5279 if (is_terminal)
5280 {
5281 char_u *servername = get_vim_var_str(VV_SEND_SERVER); 5281 char_u *servername = get_vim_var_str(VV_SEND_SERVER);
5282 size_t lval = STRLEN(servername); 5282 size_t servername_len = STRLEN(servername);
5283 size_t n; 5283 # endif
5284 5284 char_u *version = get_vim_var_str(VV_VERSION);
5285 if (ga_grow(gap, (int)(14 + lval + 2)) == OK) 5285 size_t version_len = STRLEN(version);
5286 { 5286 // size of "VIM_SERVERNAME=" and value,
5287 // plus "VIM_TERMINAL=" and value,
5288 // plus two terminating NULs
5289 size_t n = 0
5290 # ifdef FEAT_CLIENTSERVER
5291 + 15 + servername_len
5292 # endif
5293 + 13 + version_len + 2;
5294
5295 if (ga_grow(gap, (int)n) == OK)
5296 {
5297 # ifdef FEAT_CLIENTSERVER
5287 for (n = 0; n < 15; n++) 5298 for (n = 0; n < 15; n++)
5288 *((WCHAR*)gap->ga_data + gap->ga_len++) = 5299 *((WCHAR*)gap->ga_data + gap->ga_len++) =
5289 (WCHAR)"VIM_SERVERNAME="[n]; 5300 (WCHAR)"VIM_SERVERNAME="[n];
5290 for (n = 0; n < lval; n++) 5301 for (n = 0; n < servername_len; n++)
5291 *((WCHAR*)gap->ga_data + gap->ga_len++) = 5302 *((WCHAR*)gap->ga_data + gap->ga_len++) =
5292 (WCHAR)servername[n]; 5303 (WCHAR)servername[n];
5293 *((WCHAR*)gap->ga_data + gap->ga_len++) = L'\0'; 5304 *((WCHAR*)gap->ga_data + gap->ga_len++) = L'\0';
5294 }
5295 }
5296 # endif 5305 # endif
5306 for (n = 0; n < 13; n++)
5307 *((WCHAR*)gap->ga_data + gap->ga_len++) =
5308 (WCHAR)"VIM_TERMINAL="[n];
5309 for (n = 0; n < version_len; n++)
5310 *((WCHAR*)gap->ga_data + gap->ga_len++) =
5311 (WCHAR)version[n];
5312 *((WCHAR*)gap->ga_data + gap->ga_len++) = L'\0';
5313 }
5314 }
5297 } 5315 }
5298 5316
5299 void 5317 void
5300 mch_job_start(char *cmd, job_T *job, jobopt_T *options) 5318 mch_job_start(char *cmd, job_T *job, jobopt_T *options)
5301 { 5319 {