This article is intended to document some of the current limitations of WinPipe V1.0.2.
-
WinPipe V1.0.2 may not behave correctly if the child application calls SetConsoleMode to change the console input mode.
This is because when the WinPipe Shell initializes, it calls SetConsoleMode to disable input echoing. If the child process enables input echoing by calling SetConsoleMode, input will be echoed to standard output every time the child process reads from standard input. Subsequent calls to functions that read from the output buffer will then return the echoed input.
During the development of WinPipe V1.0.1 an attempt to solve this problem was made. The attempt involved checking the console input mode before writing to the child standard input. What was discovered is that if a console application blocks for input, for example by calling the gets or fgets functions, and the console mode is changed while the application is blocking, the input will still be echoed. To support applications that call SetConsoleMode for standard input, future versions of WinPipe will have to hook the windows API functions involved in reading console input, namely ReadFile and ReadConsole.
- WinPipe V1.0 does not currently include a method of changing the shell console before the execution of the child process begins. Future versions will implement a fix for this limitation.
