@@ -1654,7 +1654,9 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
16541654 si .hStdError = winansi_get_osfhandle (fherr );
16551655
16561656 /* executables and the current directory don't support long paths */
1657- if (xutftowcs_path (wcmd , cmd ) < 0 )
1657+ if (* argv && !strcmp (cmd , * argv ))
1658+ wcmd [0 ] = L'\0' ;
1659+ else if (xutftowcs_path (wcmd , cmd ) < 0 )
16581660 return -1 ;
16591661 if (dir && xutftowcs_path (wdir , dir ) < 0 )
16601662 return -1 ;
@@ -1708,8 +1710,8 @@ static pid_t mingw_spawnve_fd(const char *cmd, const char **argv, char **deltaen
17081710 wenvblk = make_environment_block (deltaenv );
17091711
17101712 memset (& pi , 0 , sizeof (pi ));
1711- ret = CreateProcessW (wcmd , wargs , NULL , NULL , TRUE, flags ,
1712- wenvblk , dir ? wdir : NULL , & si , & pi );
1713+ ret = CreateProcessW (* wcmd ? wcmd : NULL , wargs , NULL , NULL , TRUE,
1714+ flags , wenvblk , dir ? wdir : NULL , & si , & pi );
17131715
17141716 free (wenvblk );
17151717 free (wargs );
0 commit comments