@@ -1285,7 +1285,9 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
1285
1285
si .hStdError = winansi_get_osfhandle (fherr );
1286
1286
1287
1287
/* executables and the current directory don't support long paths */
1288
- if (xutftowcs_path (wcmd , cmd ) < 0 )
1288
+ if (* argv && !strcmp (cmd , * argv ))
1289
+ wcmd [0 ] = L'\0' ;
1290
+ else if (xutftowcs_path (wcmd , cmd ) < 0 )
1289
1291
return -1 ;
1290
1292
if (dir && xutftowcs_path (wdir , dir ) < 0 )
1291
1293
return -1 ;
@@ -1324,8 +1326,8 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
1324
1326
wenvblk = make_environment_block (deltaenv );
1325
1327
1326
1328
memset (& pi , 0 , sizeof (pi ));
1327
- ret = CreateProcessW (wcmd , wargs , NULL , NULL , TRUE, flags ,
1328
- wenvblk , dir ? wdir : NULL , & si , & pi );
1329
+ ret = CreateProcessW (* wcmd ? wcmd : NULL , wargs , NULL , NULL , TRUE,
1330
+ flags , wenvblk , dir ? wdir : NULL , & si , & pi );
1329
1331
1330
1332
free (wenvblk );
1331
1333
free (wargs );
0 commit comments