http://bugs.winehq.org/show_bug.cgi?id=24306
--- Comment #3 from Jörg Höhle hoehle@users.sourceforge.net 2010-12-03 16:24:36 CST --- Eric, I tested your past-1.3.38 commit ead4712606307bf92525e9aad1374a2cc0bc8fc0 It's not entirely satisfactory yet. Using wine wintest.exe mcishell
1. In a UNIX terminal, ^Z conflicts with SIGSTOP Using "stty susp ^y" to map that to ^Y however allows to exit the app via EOF. Good work!
2. Control characters are echoed to the terminal, printing (in Gnome-terminal) weird squares with hex code in it to the screen. Likewise, white squares appear when running wine wineconsole mcishell.exe This must be related to your commit 9c577630d11cd19273b93eeb6295c0b2b75fa42b This is not what the user expects to see, neither on UNIX or MS-Windows. Perhaps running a shell within Emacs on XP would allow to guess whether control characters are echoed and simply not printed visibly in a MS-Windows console.
It's not clear to me why you resort to raw mode. Apps using ReadLine() get the standard cmd.exe aka. DOSEdit line editing, which is equivalent to cooked mode on UNIX IMHO. DOSEdit may provide more useful editing thanks to the command history, but that's a feature of the cooked line editor, not the application. I've read something similar can be achieved in UNIX using the rlwrap or rlfe packages: they enhance the cooked mode with history.
3. Using the arrow keys in a gnome terminal produce weird effects. It looks like two things happen: squares are printed *and* the cursor moves one line!