* autoload.c (cygwin_premain0): Add missing parameter.
* binmode.c (cygwin_premain0): Ditto. * textmode.c (cygwin_premain0): Ditto. Patch contributed by Jason Tiller <jtiller@sjm.com> : * auto_load.cc: Add "GetKeyboardLayout" entry in the list of Win32 User32.DLL exports to provide. * fhandler.h (class fhandler_console): Add meta_mask private member to remember which keystroke modifiers should generate META. * fhandler_console.cc (fhandler_console::read): Modify code that tests a keystroke for a META-escaped key to use the 'meta_mask' variable. (fhandler_console::fhandler_console): Add definition for variable "meta_mask" used to determine if a keystroke should be preceded by META in the client console stream. Set meta_mask based on whether or not user's keyboard language is English - non-English keyboards pass AltGr (right <ALT>) unmolested, whereas English keyboards now interpret left- and right-<ALT> as META.
This commit is contained in:
parent
cfc05d9675
commit
7cdc9feea1
|
@ -1,3 +1,27 @@
|
|||
Tue Mar 6 13:02:00 2001 Jason Tiller <jtiller@sjm.com>
|
||||
|
||||
* autoload.c (cygwin_premain0): Add missing parameter.
|
||||
* binmode.c (cygwin_premain0): Ditto.
|
||||
* textmode.c (cygwin_premain0): Ditto.
|
||||
|
||||
Tue Mar 6 12:04:00 2001 Jason Tiller <jtiller@sjm.com>
|
||||
|
||||
* auto_load.cc: Add "GetKeyboardLayout" entry in the list of
|
||||
Win32 User32.DLL exports to provide.
|
||||
* fhandler.h (class fhandler_console): Add meta_mask private
|
||||
member to remember which keystroke modifiers should generate
|
||||
META.
|
||||
* fhandler_console.cc (fhandler_console::read): Modify code that
|
||||
tests a keystroke for a META-escaped key to use the 'meta_mask'
|
||||
variable.
|
||||
(fhandler_console::fhandler_console): Add definition for
|
||||
variable "meta_mask" used to determine if a keystroke should be
|
||||
preceded by META in the client console stream. Set meta_mask
|
||||
based on whether or not user's keyboard language is English -
|
||||
non-English keyboards pass AltGr (right <ALT>) unmolested,
|
||||
whereas English keyboards now interpret left- and right-<ALT>
|
||||
as META.
|
||||
|
||||
Mon Mar 5 20:15:00 2001 Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* include/a.out.h: Add copyright hint.
|
||||
|
|
|
@ -306,6 +306,7 @@ LoadDLLfunc (DefWindowProcA, 16, user32)
|
|||
LoadDLLfunc (DispatchMessageA, 4, user32)
|
||||
LoadDLLfunc (FindWindowA, 8, user32)
|
||||
LoadDLLfunc (GetClipboardData, 4, user32)
|
||||
LoadDLLfunc (GetKeyboardLayout, 4, user32)
|
||||
LoadDLLfunc (GetMessageA, 16, user32)
|
||||
LoadDLLfunc (GetProcessWindowStation, 0, user32)
|
||||
LoadDLLfunc (GetThreadDesktop, 4, user32)
|
||||
|
|
|
@ -14,7 +14,7 @@ details. */
|
|||
|
||||
extern int _fmode;
|
||||
void
|
||||
cygwin_premain0 (int argc, char **argv)
|
||||
cygwin_premain0 (int argc, char **argv, struct per_process *myself)
|
||||
{
|
||||
static struct __cygwin_perfile pf[] =
|
||||
{
|
||||
|
|
|
@ -8,11 +8,13 @@ This software is a copyrighted work licensed under the terms of the
|
|||
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
||||
details. */
|
||||
|
||||
#include <windows.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <sys/cygwin.h>
|
||||
|
||||
extern int _fmode;
|
||||
void
|
||||
cygwin_premain0 (int argc, char **argv)
|
||||
cygwin_premain0 (int argc, char **argv, struct per_process *myself)
|
||||
{
|
||||
_fmode &= ~_O_TEXT;
|
||||
_fmode |= _O_BINARY;
|
||||
|
|
|
@ -608,6 +608,9 @@ private:
|
|||
|
||||
WORD default_color, underline_color, dim_color;
|
||||
|
||||
/* Used to determine if an input keystroke should be modified with META. */
|
||||
int meta_mask;
|
||||
|
||||
/* Output state */
|
||||
int state_;
|
||||
int args_[MAXARGS];
|
||||
|
|
|
@ -250,7 +250,8 @@ fhandler_console::read (void *pv, size_t buflen)
|
|||
converting a CTRL-U. */
|
||||
if ((unsigned char)ich > 0x7f && current_codepage == ansi_cp)
|
||||
OemToCharBuff (tmp + 1, tmp + 1, 1);
|
||||
if (!(input_rec.Event.KeyEvent.dwControlKeyState & LEFT_ALT_PRESSED))
|
||||
/* Determine if the keystroke is modified by META. */
|
||||
if (!(input_rec.Event.KeyEvent.dwControlKeyState & meta_mask))
|
||||
toadd = tmp + 1;
|
||||
else
|
||||
{
|
||||
|
@ -790,6 +791,19 @@ fhandler_console::fhandler_console (const char *name) :
|
|||
dwLastButtonState = 0;
|
||||
nModifiers = 0;
|
||||
use_mouse = raw_win32_keyboard_mode = FALSE;
|
||||
/* Set the mask that determines if an input keystroke is modified by
|
||||
META. We set this based on the keyboard layout language loaded
|
||||
for the current thread. The left <ALT> key always generates
|
||||
META, but the right <ALT> key only generates META if we are using
|
||||
an English keyboard because many "international" keyboards
|
||||
replace common shell symbols ('[', '{', etc.) with accented
|
||||
language-specific characters (umlaut, accent grave, etc.). On
|
||||
these keyboards right <ALT> (called AltGr) is used to produce the
|
||||
shell symbols and should not be interpreted as META. */
|
||||
meta_mask = LEFT_ALT_PRESSED;
|
||||
if (PRIMARYLANGID (LOWORD (GetKeyboardLayout (0))) == LANG_ENGLISH)
|
||||
meta_mask |= RIGHT_ALT_PRESSED;
|
||||
|
||||
set_need_fork_fixup ();
|
||||
}
|
||||
|
||||
|
|
|
@ -8,11 +8,13 @@ This software is a copyrighted work licensed under the terms of the
|
|||
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
||||
details. */
|
||||
|
||||
#include <windows.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <sys/cygwin.h>
|
||||
|
||||
extern int _fmode;
|
||||
void
|
||||
cygwin_premain0 (int argc, char **argv)
|
||||
cygwin_premain0 (int argc, char **argv, struct per_process *myself)
|
||||
{
|
||||
_fmode &= ~_O_BINARY;
|
||||
_fmode |= _O_TEXT;
|
||||
|
|
Loading…
Reference in New Issue