@@ -1479,7 +1479,9 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
1479
1479
si .hStdError = winansi_get_osfhandle (fherr );
1480
1480
1481
1481
/* executables and the current directory don't support long paths */
1482
- if (xutftowcs_path (wcmd , cmd ) < 0 )
1482
+ if (* argv && !strcmp (cmd , * argv ))
1483
+ wcmd [0 ] = L'\0' ;
1484
+ else if (xutftowcs_path (wcmd , cmd ) < 0 )
1483
1485
return -1 ;
1484
1486
if (dir && xutftowcs_path (wdir , dir ) < 0 )
1485
1487
return -1 ;
@@ -1533,8 +1535,8 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
1533
1535
wenvblk = make_environment_block (deltaenv );
1534
1536
1535
1537
memset (& pi , 0 , sizeof (pi ));
1536
- ret = CreateProcessW (wcmd , wargs , NULL , NULL , TRUE, flags ,
1537
- wenvblk , dir ? wdir : NULL , & si , & pi );
1538
+ ret = CreateProcessW (* wcmd ? wcmd : NULL , wargs , NULL , NULL , TRUE,
1539
+ flags , wenvblk , dir ? wdir : NULL , & si , & pi );
1538
1540
1539
1541
free (wenvblk );
1540
1542
free (wargs );
0 commit comments