Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com Date: Mon, 5 Mar 2001 11:40:03 -0500 From: Christopher Faylor To: cygwin-developers AT cygwin DOT com Subject: [jtiller AT sjm DOT com: Patch submission for AltGr handling] Message-ID: <20010305114003.B14637@redhat.com> Mail-Followup-To: cygwin-developers AT cygwin DOT com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.11i Any thoughts on this patch? I hate adding YA CYGWIN environment variable option but I don't see any other way to do this. Hmm. Could we just gate this behavior on the loaded code page or something? Could we make it automatic? cgf ----- Forwarded message from Jason Tiller ----- From: Jason Tiller To: Subject: Patch submission for AltGr handling Date: Tue, 27 Feb 2001 14:25:55 -0800 (Pacific Standard Time) Hello, Everyone, :) Per the instructions on http://www.cygwin.com/contrib.html, here is the patch and ChangeLog entry for my minor changes to allow the user to configure the right-side key (AltGr) to generate Meta-prefixed characters as opposed to high-bit characters. This is accomplished by a new CYGWIN environment variable option: 'right_alt_meta'. With this specified, AltGr generates Meta. The default case or with 'noright_alt_meta' specified is to ignore AltGr in the console handler. I chose to submit this here because the page indicated that small patches could be sent to the user list. I would be willing to submit text for the FAQ and/or User Guide if either of those documents had a section on the CYGWIN variable. Here are the diffs: --- environ.cc.orig Mon Jan 29 18:36:10 2001 +++ environ.cc Mon Feb 26 22:44:40 2001 @@ -33,6 +33,7 @@ extern BOOL allow_smbntsec; extern BOOL strip_title_path; extern DWORD chunksize; BOOL reset_com = TRUE; +extern BOOL meta_mask; static BOOL envcache = TRUE; static char **lastenviron = NULL; @@ -451,6 +452,7 @@ struct parse_thing {"ntsec", {&allow_ntsec}, justset, NULL, {{FALSE}, {TRUE}}}, {"smbntsec", {&allow_smbntsec}, justset, NULL, {{FALSE}, {TRUE}}}, {"reset_com", {&reset_com}, justset, NULL, {{FALSE}, {TRUE}}}, + {"right_alt_meta", {&meta_mask}, justset, NULL, {{LEFT_ALT_PRESSED}, {LEFT_ALT_PRESSED|RIGHT_ALT_PRESSED}}}, {"strip_title", {&strip_title_path}, justset, NULL, {{FALSE}, {TRUE}}}, {"title", {&display_title}, justset, NULL, {{FALSE}, {TRUE}}}, {"tty", {NULL}, set_process_state, NULL, {{0}, {PID_USETTY}}}, --- fhandler_console.cc.orig Mon Jan 29 18:36:12 2001 +++ fhandler_console.cc Mon Feb 26 22:44:40 2001 @@ -50,6 +50,11 @@ const char * get_nonascii_key (INPUT_REC static BOOL use_mouse = FALSE; +// This is a constant set by the user via CYGWIN=. It is set to a +// mask which we apply against characters coming from the console to +// determine it they should be prefixed by META (\033). +int meta_mask = LEFT_ALT_PRESSED; + static tty_min NO_COPY *shared_console_info = NULL; /* Allocate and initialize the shared record for the current console. @@ -220,7 +225,7 @@ fhandler_console::read (void *pv, size_t 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)) + if (!(input_rec.Event.KeyEvent.dwControlKeyState & meta_mask)) toadd = tmp + 1; else { Here is the ChangeLog: Tue Feb 27 14:22:10 2001 Jason Tiller * environ.cc: Add extern link to to keyboard meta key mask global variable. Add "right_alt_meta" CYGWIN environment option to 'struct parse_thing known[]' array. User sets "right_alt_meta" to use the right key (AltGr) as Meta, not as a modifier. * fhandler_console.cc: Add global variable 'meta_mask'. (fhandler_console::read): Use new meta_mask variable to test input keystrokes for Meta instead of just LEFT_ALT_PRESSED. Thank you for considering this patch. I hope others can get some use out of it. ---Jason Tiller jdtiller AT best DOT com Sonos -- Want to unsubscribe from this list? Check out: http://cygwin.com/ml/#unsubscribe-simple ----- End forwarded message ----- -- cgf AT cygnus DOT com Red Hat, Inc. http://sources.redhat.com/ http://www.redhat.com/