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;
 }