@@ -1513,7 +1513,9 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
1513
1513
si .hStdError = winansi_get_osfhandle (fherr );
1514
1514
1515
1515
/* executables and the current directory don't support long paths */
1516
- if (xutftowcs_path (wcmd , cmd ) < 0 )
1516
+ if (* argv && !strcmp (cmd , * argv ))
1517
+ wcmd [0 ] = L'\0' ;
1518
+ else if (xutftowcs_path (wcmd , cmd ) < 0 )
1517
1519
return -1 ;
1518
1520
if (dir && xutftowcs_path (wdir , dir ) < 0 )
1519
1521
return -1 ;
@@ -1567,8 +1569,8 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
1567
1569
wenvblk = make_environment_block (deltaenv );
1568
1570
1569
1571
memset (& pi , 0 , sizeof (pi ));
1570
- ret = CreateProcessW (wcmd , wargs , NULL , NULL , TRUE, flags ,
1571
- wenvblk , dir ? wdir : NULL , & si , & pi );
1572
+ ret = CreateProcessW (* wcmd ? wcmd : NULL , wargs , NULL , NULL , TRUE,
1573
+ flags , wenvblk , dir ? wdir : NULL , & si , & pi );
1572
1574
1573
1575
free (wenvblk );
1574
1576
free (wargs );
0 commit comments