* src/keyboard.c (read_decoded_char): Don't decode under w32.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 23 May 2013 13:23:45 +0000 (09:23 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 23 May 2013 13:23:45 +0000 (09:23 -0400)
Fixes: debbugs:14403

src/ChangeLog
src/keyboard.c

index ae311d2..8f97659 100644 (file)
@@ -1,3 +1,7 @@
+2013-05-23  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (read_decoded_char): Don't decode under w32 (bug#14403).
+
 2013-05-22  Barry OReilly  <gundaetiapo@gmail.com>  (tiny change)
 
        * casetab.c (init_casetab_once): Fix last change (bug#14424).
index 3959156..7f86326 100644 (file)
@@ -6827,6 +6827,8 @@ tty_read_avail_input (struct terminal *terminal,
   /* XXX I think the following code should be moved to separate hook
      functions in system-dependent files.  */
 #ifdef WINDOWSNT
+  /* FIXME: AFAIK, tty_read_avail_input is not used under w32 since the non-GUI
+     code sets read_socket_hook to w32_console_read_socket instead!  */
   return 0;
 #else /* not WINDOWSNT */
   if (! tty->term_initted)      /* In case we get called during bootstrap.  */
@@ -8700,6 +8702,10 @@ read_decoded_char (int commandflag, Lisp_Object map,
     {
       Lisp_Object nextevt
        = read_char (commandflag, map, prev_event, used_mouse_menu, NULL);
+#ifdef WINDOWSNT
+      /* w32_console already returns decoded events.  */
+      return nextevt;
+#else
       struct frame *frame = XFRAME (selected_frame);
       struct terminal *terminal = frame->terminal;
       if (!((FRAME_TERMCAP_P (frame) || FRAME_MSDOS_P (frame))
@@ -8750,6 +8756,7 @@ read_decoded_char (int commandflag, Lisp_Object map,
              = Fcons (events[--n], Vunread_command_events);
          return events[0];
        }
+#endif
     }
 }