@@ -1271,7 +1271,9 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
12711271 si .hStdError = winansi_get_osfhandle (fherr );
12721272
12731273 /* executables and the current directory don't support long paths */
1274- if (xutftowcs_path (wcmd , cmd ) < 0 )
1274+ if (* argv && !strcmp (cmd , * argv ))
1275+ wcmd [0 ] = L'\0' ;
1276+ else if (xutftowcs_path (wcmd , cmd ) < 0 )
12751277 return -1 ;
12761278 if (dir && xutftowcs_path (wdir , dir ) < 0 )
12771279 return -1 ;
@@ -1310,8 +1312,8 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
13101312 wenvblk = make_environment_block (deltaenv );
13111313
13121314 memset (& pi , 0 , sizeof (pi ));
1313- ret = CreateProcessW (wcmd , wargs , NULL , NULL , TRUE, flags ,
1314- wenvblk , dir ? wdir : NULL , & si , & pi );
1315+ ret = CreateProcessW (* wcmd ? wcmd : NULL , wargs , NULL , NULL , TRUE,
1316+ flags , wenvblk , dir ? wdir : NULL , & si , & pi );
13151317
13161318 free (wenvblk );
13171319 free (wargs );
0 commit comments