@@ -1488,7 +1488,9 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
1488
1488
si .hStdError = winansi_get_osfhandle (fherr );
1489
1489
1490
1490
/* executables and the current directory don't support long paths */
1491
- if (xutftowcs_path (wcmd , cmd ) < 0 )
1491
+ if (* argv && !strcmp (cmd , * argv ))
1492
+ wcmd [0 ] = L'\0' ;
1493
+ else if (xutftowcs_path (wcmd , cmd ) < 0 )
1492
1494
return -1 ;
1493
1495
if (dir && xutftowcs_path (wdir , dir ) < 0 )
1494
1496
return -1 ;
@@ -1542,8 +1544,8 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
1542
1544
wenvblk = make_environment_block (deltaenv );
1543
1545
1544
1546
memset (& pi , 0 , sizeof (pi ));
1545
- ret = CreateProcessW (wcmd , wargs , NULL , NULL , TRUE, flags ,
1546
- wenvblk , dir ? wdir : NULL , & si , & pi );
1547
+ ret = CreateProcessW (* wcmd ? wcmd : NULL , wargs , NULL , NULL , TRUE,
1548
+ flags , wenvblk , dir ? wdir : NULL , & si , & pi );
1547
1549
1548
1550
free (wenvblk );
1549
1551
free (wargs );
0 commit comments