[PATCH 0/7] Series short description

Eric Pouech eric.pouech at orange.fr
Mon Dec 31 02:52:24 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 #4 (changes from previous patch / #3)
- fix bug in line edition speedup when special characters are used
- gracefully handle ctrl-c

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
      [Kernel32, Server, WineConsole]: Force using wineconsole as input manager for the bare consoles
      [Ntdll,Kernel32]: 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               |   45 +-
 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            |  709 ++++++++++++++++++++++++++++++++
 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, 950 insertions(+), 954 deletions(-)
 delete mode 100644 dlls/kernel32/term.c
 create mode 100644 programs/wineconsole/line.c

Eric Pouech

More information about the wine-patches mailing list