@@ -4159,7 +4159,11 @@ wait4pid(pid_t child, waitstatus *status)
41594159 * Set the environment for a child process.
41604160 */
41614161 static void
4162- set_child_environment (long rows , long columns , char * term )
4162+ set_child_environment (
4163+ long rows ,
4164+ long columns ,
4165+ char * term ,
4166+ int is_terminal UNUSED )
41634167{
41644168# ifdef HAVE_SETENV
41654169 char envbuf [50 ];
@@ -4169,7 +4173,9 @@ set_child_environment(long rows, long columns, char *term)
41694173 static char envbuf_Lines [20 ];
41704174 static char envbuf_Columns [20 ];
41714175 static char envbuf_Colors [20 ];
4176+ # ifdef FEAT_TERMINAL
41724177 static char envbuf_Version [20 ];
4178+ # endif
41734179# ifdef FEAT_CLIENTSERVER
41744180 static char envbuf_Servername [60 ];
41754181# endif
@@ -4190,8 +4196,13 @@ set_child_environment(long rows, long columns, char *term)
41904196 setenv ("COLUMNS" , (char * )envbuf , 1 );
41914197 sprintf ((char * )envbuf , "%ld" , colors );
41924198 setenv ("COLORS" , (char * )envbuf , 1 );
4193- sprintf ((char * )envbuf , "%ld" , get_vim_var_nr (VV_VERSION ));
4194- setenv ("VIM_TERMINAL" , (char * )envbuf , 1 );
4199+ # ifdef FEAT_TERMINAL
4200+ if (is_terminal )
4201+ {
4202+ sprintf ((char * )envbuf , "%ld" , get_vim_var_nr (VV_VERSION ));
4203+ setenv ("VIM_TERMINAL" , (char * )envbuf , 1 );
4204+ }
4205+ # endif
41954206# ifdef FEAT_CLIENTSERVER
41964207 setenv ("VIM_SERVERNAME" , serverName == NULL ? "" : (char * )serverName , 1 );
41974208# endif
@@ -4212,9 +4223,14 @@ set_child_environment(long rows, long columns, char *term)
42124223 putenv (envbuf_Columns );
42134224 vim_snprintf (envbuf_Colors , sizeof (envbuf_Colors ), "COLORS=%ld" , colors );
42144225 putenv (envbuf_Colors );
4215- vim_snprintf (envbuf_Version , sizeof (envbuf_Version ), "VIM_TERMINAL=%ld" ,
4216- get_vim_var_nr (VV_VERSION ));
4217- putenv (envbuf_Version );
4226+ # ifdef FEAT_TERMINAL
4227+ if (is_terminal )
4228+ {
4229+ vim_snprintf (envbuf_Version , sizeof (envbuf_Version ),
4230+ "VIM_TERMINAL=%ld" , get_vim_var_nr (VV_VERSION ));
4231+ putenv (envbuf_Version );
4232+ }
4233+ # endif
42184234# ifdef FEAT_CLIENTSERVER
42194235 vim_snprintf (envbuf_Servername , sizeof (envbuf_Servername ),
42204236 "VIM_SERVERNAME=%s" , serverName == NULL ? "" : (char * )serverName );
@@ -4224,9 +4240,9 @@ set_child_environment(long rows, long columns, char *term)
42244240}
42254241
42264242 static void
4227- set_default_child_environment (void )
4243+ set_default_child_environment (int is_terminal )
42284244{
4229- set_child_environment (Rows , Columns , "dumb" );
4245+ set_child_environment (Rows , Columns , "dumb" , is_terminal );
42304246}
42314247#endif
42324248
@@ -4689,7 +4705,7 @@ mch_call_shell_fork(
46894705# endif
46904706 }
46914707# endif
4692- set_default_child_environment ();
4708+ set_default_child_environment (FALSE );
46934709
46944710 /*
46954711 * stderr is only redirected when using the GUI, so that a
@@ -5367,7 +5383,7 @@ mch_call_shell(
53675383
53685384#if defined(FEAT_JOB_CHANNEL ) || defined(PROTO )
53695385 void
5370- mch_job_start (char * * argv , job_T * job , jobopt_T * options )
5386+ mch_job_start (char * * argv , job_T * job , jobopt_T * options , int is_terminal )
53715387{
53725388 pid_t pid ;
53735389 int fd_in [2 ] = {-1 , -1 }; /* for stdin */
@@ -5515,11 +5531,12 @@ mch_job_start(char **argv, job_T *job, jobopt_T *options)
55155531 set_child_environment (
55165532 (long )options -> jo_term_rows ,
55175533 (long )options -> jo_term_cols ,
5518- term );
5534+ term ,
5535+ is_terminal );
55195536 }
55205537 else
55215538# endif
5522- set_default_child_environment ();
5539+ set_default_child_environment (is_terminal );
55235540
55245541 if (options -> jo_env != NULL )
55255542 {
0 commit comments