Jason Edmeades : cmd.exe: Fix stdio redirects.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Mar 5 06:23:42 CST 2007
Module: wine
Branch: master
Commit: 9e518dc79d914062628791b623a1691256374ff5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9e518dc79d914062628791b623a1691256374ff5
Author: Jason Edmeades <us at edmeades.me.uk>
Date: Sun Mar 4 22:39:22 2007 +0000
cmd.exe: Fix stdio redirects.
---
programs/cmd/wcmdmain.c | 8 +++-----
1 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index bb805e6..1bea185 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -47,7 +47,6 @@ const char version_string[] = "CMD Version " PACKAGE_VERSION "\n\n";
const char anykey[] = "Press Return key to continue: ";
char quals[MAX_PATH], param1[MAX_PATH], param2[MAX_PATH];
BATCH_CONTEXT *context = NULL;
-static HANDLE old_stdin = INVALID_HANDLE_VALUE, old_stdout = INVALID_HANDLE_VALUE;
extern struct env_stack *pushd_directories;
static char *WCMD_expand_envvar(char *start);
@@ -314,6 +313,8 @@ void WCMD_process_command (char *command)
char *whichcmd;
SECURITY_ATTRIBUTES sa;
char *new_cmd;
+ HANDLE old_stdin = INVALID_HANDLE_VALUE;
+ HANDLE old_stdout = INVALID_HANDLE_VALUE;
/* Move copy of the command onto the heap so it can be expanded */
new_cmd = HeapAlloc( GetProcessHeap(), 0, MAXSTRING );
@@ -587,12 +588,10 @@ void WCMD_process_command (char *command)
if (old_stdin != INVALID_HANDLE_VALUE) {
CloseHandle (GetStdHandle (STD_INPUT_HANDLE));
SetStdHandle (STD_INPUT_HANDLE, old_stdin);
- old_stdin = INVALID_HANDLE_VALUE;
}
if (old_stdout != INVALID_HANDLE_VALUE) {
CloseHandle (GetStdHandle (STD_OUTPUT_HANDLE));
SetStdHandle (STD_OUTPUT_HANDLE, old_stdout);
- old_stdout = INVALID_HANDLE_VALUE;
}
}
@@ -606,8 +605,7 @@ static void init_msvcrt_io_block(STARTUPINFO* st)
GetStartupInfo(&st_p);
st->cbReserved2 = st_p.cbReserved2;
st->lpReserved2 = st_p.lpReserved2;
- if (st_p.cbReserved2 && st_p.lpReserved2 &&
- (old_stdin != INVALID_HANDLE_VALUE || old_stdout != INVALID_HANDLE_VALUE))
+ if (st_p.cbReserved2 && st_p.lpReserved2)
{
/* Override the entries for fd 0,1,2 if we happened
* to change those std handles (this depends on the way wcmd sets
More information about the wine-cvs
mailing list