Mercurial > hg > xemacs-beta
diff src/events.c @ 263:727739f917cb r20-5b30
Import from CVS: tag r20-5b30
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:24:41 +0200 |
parents | 405dd6d1825b |
children | 966663fcf606 |
line wrap: on
line diff
--- a/src/events.c Mon Aug 13 10:23:52 2007 +0200 +++ b/src/events.c Mon Aug 13 10:24:41 2007 +0200 @@ -963,7 +963,7 @@ void character_to_event (Emchar c, struct Lisp_Event *event, struct console *con, - int use_console_meta_flag) + int use_console_meta_flag, int do_backspace_mapping) { Lisp_Object k = Qnil; unsigned int m = 0; @@ -1000,23 +1000,25 @@ case 'J': k = QKlinefeed; m &= ~MOD_CONTROL; break; case 'M': k = QKreturn; m &= ~MOD_CONTROL; break; case '[': k = QKescape; m &= ~MOD_CONTROL; break; -#ifdef HAVE_TTY default: - if (CHARP (con->tty_erase_char) && - c - '@' == XCHAR (con->tty_erase_char)) { - k = QKbackspace; - m &= ~MOD_CONTROL; - } +#if defined(HAVE_TTY) && !defined(__CYGWIN32__) + if (do_backspace_mapping && + CHARP (con->tty_erase_char) && + c - '@' == XCHAR (con->tty_erase_char)) + { + k = QKbackspace; + m &= ~MOD_CONTROL; + } +#endif /* defined(HAVE_TTY) && !defined(__CYGWIN32__) */ break; -#endif } if (c >= 'A' && c <= 'Z') c -= 'A'-'a'; } -#ifdef HAVE_TTY - else if (CHARP (con->tty_erase_char) && - c == XCHAR(con->tty_erase_char)) +#if defined(HAVE_TTY) && !defined(__CYGWIN32__) + else if (do_backspace_mapping && + CHARP (con->tty_erase_char) && c == XCHAR (con->tty_erase_char)) k = QKbackspace; -#endif +#endif /* defined(HAVE_TTY) && !defined(__CYGWIN32__) */ else if (c == 127) k = QKdelete; else if (c == ' ') @@ -1172,7 +1174,7 @@ { CHECK_CHAR_COERCE_INT (ch); character_to_event (XCHAR (ch), XEVENT (event), con, - !NILP (use_console_meta_flag)); + !NILP (use_console_meta_flag), 1); } return event; }