@@ -1268,7 +1268,9 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
1268
1268
si .hStdError = winansi_get_osfhandle (fherr );
1269
1269
1270
1270
/* executables and the current directory don't support long paths */
1271
- if (xutftowcs_path (wcmd , cmd ) < 0 )
1271
+ if (* argv && !strcmp (cmd , * argv ))
1272
+ wcmd [0 ] = L'\0' ;
1273
+ else if (xutftowcs_path (wcmd , cmd ) < 0 )
1272
1274
return -1 ;
1273
1275
if (dir && xutftowcs_path (wdir , dir ) < 0 )
1274
1276
return -1 ;
@@ -1307,8 +1309,8 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
1307
1309
wenvblk = make_environment_block (deltaenv );
1308
1310
1309
1311
memset (& pi , 0 , sizeof (pi ));
1310
- ret = CreateProcessW (wcmd , wargs , NULL , NULL , TRUE, flags ,
1311
- wenvblk , dir ? wdir : NULL , & si , & pi );
1312
+ ret = CreateProcessW (* wcmd ? wcmd : NULL , wargs , NULL , NULL , TRUE,
1313
+ flags , wenvblk , dir ? wdir : NULL , & si , & pi );
1312
1314
1313
1315
free (wenvblk );
1314
1316
free (wargs );
0 commit comments