Attachment "diff.txt" to
ticket [484023ffff]
added by
davygrvy
2001-11-21 10:09:04.
Index: tclWinChan.c
===================================================================
RCS file: /cvsroot/tcl/tcl/win/tclWinChan.c,v
retrieving revision 1.16
diff -c -r1.16 tclWinChan.c
*** tclWinChan.c 2001/10/15 17:34:53 1.16
--- tclWinChan.c 2001/11/21 03:03:17
***************
*** 934,945 ****
channel = TclWinOpenConsoleChannel(handle, channelName, mode);
break;
case FILE_TYPE_PIPE:
! if (mode & TCL_READABLE)
! {
readFile = TclWinMakeFile(handle);
! }
! if (mode & TCL_WRITABLE)
! {
writeFile = TclWinMakeFile(handle);
}
channel = TclpCreateCommandChannel(readFile, writeFile, NULL, 0, NULL);
--- 934,954 ----
channel = TclWinOpenConsoleChannel(handle, channelName, mode);
break;
case FILE_TYPE_PIPE:
! if ((mode & TCL_READABLE) && (mode & TCL_WRITABLE)) {
! HANDLE dupe;
!
! /*
! * We need to make a duplicate, because the handles are closed
! * seperately by the core in the close2proc.
! */
! DuplicateHandle(GetCurrentProcess(), handle, GetCurrentProcess(),
! &dupe, 0, FALSE, DUPLICATE_SAME_ACCESS);
!
! readFile = TclWinMakeFile(handle);
! writeFile = TclWinMakeFile(dupe);
! } else if (mode & TCL_READABLE) {
readFile = TclWinMakeFile(handle);
! } else if (mode & TCL_WRITABLE) {
writeFile = TclWinMakeFile(handle);
}
channel = TclpCreateCommandChannel(readFile, writeFile, NULL, 0, NULL);