[PATCH 0/7] Series short description
eric.pouech at orange.fr
Sat Dec 29 09:21:10 CST 2012
The following series implements a new scheme for managing 'bare' consoles.
We now force every program started without a wine parent to be run under
wineconsole (transparently for the user).
This is done using a new backend in wineconsole called 'line'. This backend
only takes care of input; output is kept as a client side operation.
All terminal related code is moved from dlls/kernel32 to programs/wineconsole.
This basically ensures that:
- Only wineconsole reads from standard input (and writes into input queue).
This fixes bug reported by Jason when $CONIN is opened with read access only.
- It also enforces that wineconsole always has control of the unix terminal,
hence ensuring that we properly reset the terminal settings upon exit.
Code looks way cleaner now.
Try #3 (changes from previous patch / #2)
- ensure that control flow sent out of line.c really go to the tty (and not
into a redirected file)
- improve line edit under a bare console so that when appending a new
character, it doesn't erase the whole line
- better protection against missing terminfo from running system
- added tests for bare console (subset of kernel32/tests/console.c, but
triggered from WINETEST_DIRECTCONSOLE env variable)
Try #2 (changes from previous patch)
- fix changelog of first patch (was WineHelp...)
- fix date in header for new file
- remove setting title code (will be fixed in later patch)
Eric Pouech (7):
[WineConsole]: added basic infrastructure for a new wineconsole mode: line
[WineConsole]: in line mode, save (resp restore) terminal settings upon startup (resp exit)
[WineConsole]: in line mode, now support extended characters
Force using wineconsole as input manager for the bare consoles
Remove lots now unneeded code related to bare console management
[Kernel32]: in console edition mode, speed up update of edited line when appending characters
[Kernel32/tests]: added a dedicated env variable (WINETEST_DIRECTCONSOLE) so that bare consoles can be (partially) tested
dlls/kernel32/Makefile.in | 1
dlls/kernel32/console.c | 309 +-------------
dlls/kernel32/console_private.h | 9
dlls/kernel32/editline.c | 43 +-
dlls/kernel32/kernel_main.c | 1
dlls/kernel32/kernel_private.h | 2
dlls/kernel32/process.c | 26 +
dlls/kernel32/term.c | 472 ---------------------
dlls/kernel32/tests/console.c | 58 ++-
dlls/ntdll/thread.c | 11 -
include/wine/server_protocol.h | 4
programs/wineconsole/Makefile.in | 1
programs/wineconsole/curses.c | 61 ++-
programs/wineconsole/line.c | 704 ++++++++++++++++++++++++++++++++
programs/wineconsole/registry.c | 8
programs/wineconsole/user.c | 24 +
programs/wineconsole/winecon_private.h | 23 +
programs/wineconsole/wineconsole.c | 52 ++
server/console.c | 83 +---
server/protocol.def | 1
server/request.h | 3
server/trace.c | 1
22 files changed, 943 insertions(+), 954 deletions(-)
delete mode 100644 dlls/kernel32/term.c
create mode 100644 programs/wineconsole/line.c
More information about the wine-patches