]> code.delx.au - gnu-emacs/blobdiff - src/keyboard.c
(input_polling_used): New function.
[gnu-emacs] / src / keyboard.c
index e916bc7ee09fe05057928264042a1150ffc0a70b..6534e45e0225c88cc521c2176990f0149740fa70 100644 (file)
@@ -1296,9 +1296,11 @@ int polling_period;
 /* Nonzero means polling for input is temporarily suppressed.  */
 int poll_suppress_count;
 
-#ifdef POLL_FOR_INPUT
+/* Nonzero if polling_for_input is actually being used.  */
 int polling_for_input;
 
+#ifdef POLL_FOR_INPUT
+
 /* Handle an alarm once each second and read pending input
    so as to handle a C-g if it comces in.  */
 
@@ -1333,6 +1335,18 @@ start_polling ()
 #endif
 }
 
+/* Nonzero if we are using polling to handle input asynchronously.  */
+
+int
+input_polling_used ()
+{
+#ifdef POLL_FOR_INPUT
+  return read_socket_hook && !interrupt_input;
+#else
+  return 0;
+#endif
+}
+
 /* Turn off polling.  */
 
 stop_polling ()
@@ -1582,7 +1596,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
     {
       c = read_char_minibuf_menu_prompt (commandflag, nmaps, maps);
       if (! NILP (c))
-       return c;
+       goto non_reread;
     }
 
   /* If in middle of key sequence and minibuffer not active,