mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-18 11:28:18 +00:00
Use COMSPEC command interpreter to run .bat files.
This commit is contained in:
parent
8e266a6c88
commit
dab0cf3135
|
@ -1255,13 +1255,36 @@ BOOL WINAPI CreateProcessA( LPCSTR app_name, LPSTR cmd_line, LPSECURITY_ATTRIBUT
|
||||||
inherit, flags, startup_info, info, unixdir );
|
inherit, flags, startup_info, info, unixdir );
|
||||||
break;
|
break;
|
||||||
case BINARY_UNKNOWN:
|
case BINARY_UNKNOWN:
|
||||||
/* check for .com extension */
|
/* check for .com or .bat extension */
|
||||||
if ((p = strrchr( name, '.' )) && !FILE_strcasecmp( p, ".com" ))
|
if ((p = strrchr( name, '.' )))
|
||||||
{
|
{
|
||||||
TRACE( "starting %s as DOS binary\n", debugstr_a(name) );
|
if (!FILE_strcasecmp( p, ".com" ))
|
||||||
retv = create_process( hFile, name, tidy_cmdline, env, process_attr, thread_attr,
|
{
|
||||||
inherit, flags, startup_info, info, unixdir );
|
TRACE( "starting %s as DOS binary\n", debugstr_a(name) );
|
||||||
break;
|
retv = create_process( hFile, name, tidy_cmdline, env, process_attr, thread_attr,
|
||||||
|
inherit, flags, startup_info, info, unixdir );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!FILE_strcasecmp( p, ".bat" ))
|
||||||
|
{
|
||||||
|
char comspec[MAX_PATH];
|
||||||
|
if (GetEnvironmentVariableA("COMSPEC", comspec, sizeof(comspec)))
|
||||||
|
{
|
||||||
|
char *newcmdline, *q = strchr(cmd_line, ' ');
|
||||||
|
if (!q) q = "";
|
||||||
|
if ((newcmdline = HeapAlloc( GetProcessHeap(), 0,
|
||||||
|
strlen(comspec) + strlen(name) + strlen(q) + 8)))
|
||||||
|
{
|
||||||
|
sprintf( newcmdline, "%s /c %s%s", comspec, name, q );
|
||||||
|
TRACE( "starting %s as batch binary: %s\n",
|
||||||
|
debugstr_a(name), debugstr_a(newcmdline) );
|
||||||
|
retv = CreateProcessA( comspec, newcmdline, process_attr, thread_attr,
|
||||||
|
inherit, flags, env, cur_dir, startup_info, info );
|
||||||
|
HeapFree( GetProcessHeap(), 0, newcmdline );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* fall through */
|
/* fall through */
|
||||||
case BINARY_UNIX_EXE:
|
case BINARY_UNIX_EXE:
|
||||||
|
|
Loading…
Reference in a new issue