[PATCH 0/5] Moving bare consoles to wineconsole (try #2)

Eric Pouech eric.pouech at orange.fr
Sat Dec 15 02:22:17 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 #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)

A+
---

Eric Pouech (5):
      [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


 dlls/kernel32/Makefile.in              |    1 
 dlls/kernel32/console.c                |  306 +-------------
 dlls/kernel32/console_private.h        |    9 
 dlls/kernel32/editline.c               |    4 
 dlls/kernel32/kernel_main.c            |    1 
 dlls/kernel32/kernel_private.h         |    2 
 dlls/kernel32/process.c                |   26 +
 dlls/kernel32/term.c                   |  472 ----------------------
 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            |  697 ++++++++++++++++++++++++++++++++
 programs/wineconsole/registry.c        |    8 
 programs/wineconsole/user.c            |   24 +
 programs/wineconsole/winecon_private.h |   21 +
 programs/wineconsole/wineconsole.c     |   57 ++-
 server/console.c                       |   83 +---
 server/protocol.def                    |    1 
 server/request.h                       |    3 
 server/trace.c                         |    1 
 21 files changed, 878 insertions(+), 915 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