]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
Replace grub_checkkey with grub_getkey_noblock.
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 18 Feb 2012 18:59:01 +0000 (19:59 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 18 Feb 2012 18:59:01 +0000 (19:59 +0100)
* grub-core/kern/term.c (grub_checkkey): Replaced with ...
(grub_getkey_noblock): ... this. All users updated.

ChangeLog
grub-core/commands/cat.c
grub-core/commands/i386/pc/play.c
grub-core/commands/sleep.c
grub-core/kern/term.c
grub-core/normal/menu.c
include/grub/term.h

index b7d679cae455b1da661523043072bf5f5d6d8c97..83948c937f4dcb69611b04970c94d467c9ee2db5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-02-18 Vladimir Serbinenko  <phcoder@gmail.com>
+
+       Replace grub_checkkey with grub_getkey_noblock.
+
+       * grub-core/kern/term.c (grub_checkkey): Replaced with ...
+       (grub_getkey_noblock): ... this. All users updated.
+
 2012-02-18 Vladimir Serbinenko  <phcoder@gmail.com>
 
        * grub-core/kern/emu/console.c: Move to ...
index 4f05190a1136d432c7e7f6faba01b66307c4e8c5..7dccce8235b023c75ee7f37c8da0e8839da084b2 100644 (file)
@@ -41,7 +41,7 @@ grub_cmd_cat (grub_extcmd_context_t ctxt, int argc, char **args)
   grub_file_t file;
   char buf[GRUB_DISK_SECTOR_SIZE];
   grub_ssize_t size;
-  int key = 0;
+  int key = GRUB_TERM_NO_KEY;
 
   if (state[0].set)
     dos = 1;
@@ -77,8 +77,7 @@ grub_cmd_cat (grub_extcmd_context_t ctxt, int argc, char **args)
            }
        }
 
-      while (grub_checkkey () >= 0 &&
-            (key = grub_getkey ()) != GRUB_TERM_ESC)
+      while ((key = grub_getkey_noblock ()) != GRUB_TERM_ESC)
        ;
     }
 
index dc22558049ee9c3286b26489cffb0bdd1c799afd..6ca17a181451b2404bbd6d39a6f01208e33b058a 100644 (file)
@@ -151,7 +151,7 @@ play (unsigned tempo, struct note *note)
 {
   unsigned int to;
 
-  if (note->pitch == T_FINE || grub_checkkey () >= 0)
+  if (note->pitch == T_FINE || grub_getkey_noblock () != GRUB_TERM_NO_KEY)
     return 1;
 
   grub_dprintf ("play", "pitch = %d, duration = %d\n", note->pitch,
@@ -169,7 +169,8 @@ play (unsigned tempo, struct note *note)
     }
 
   to = grub_get_rtc () + BASE_TEMPO * note->duration / tempo;
-  while (((unsigned int) grub_get_rtc () <= to) && (grub_checkkey () < 0))
+  while (((unsigned int) grub_get_rtc () <= to)
+        && (grub_getkey_noblock () == GRUB_TERM_NO_KEY))
     ;
 
   return 0;
@@ -261,9 +262,6 @@ grub_cmd_play (grub_command_t cmd __attribute__ ((unused)),
 
   beep_off ();
 
-  while (grub_checkkey () > 0)
-    grub_getkey ();
-
   return 0;
 }
 
index 4498756ac766549a367d1064fe7358810e6ce8a7..5b51d3b21c6e07419bb8fa9e14184736f9733517 100644 (file)
@@ -54,7 +54,7 @@ grub_interruptible_millisleep (grub_uint32_t ms)
   start = grub_get_time_ms ();
 
   while (grub_get_time_ms () - start < ms)
-    if (grub_checkkey () >= 0 && grub_getkey () == GRUB_TERM_ESC)
+    if (grub_getkey_noblock () == GRUB_TERM_ESC)
       return 1;
 
   return 0;
index d7c65dd8242ebda9c5f2ab3cf8cf889fb01ee6e2..767f5c10795aad6d13560d8240f7c5bd3d9c7e62 100644 (file)
@@ -79,16 +79,11 @@ grub_xputs_dumb (const char *str)
 
 void (*grub_xputs) (const char *str) = grub_xputs_dumb;
 
-static int pending_key = GRUB_TERM_NO_KEY;
-
 int
-grub_checkkey (void)
+grub_getkey_noblock (void)
 {
   grub_term_input_t term;
 
-  if (pending_key != GRUB_TERM_NO_KEY)
-    return pending_key;
-
   if (grub_term_poll_usb)
     grub_term_poll_usb ();
 
@@ -97,12 +92,12 @@ grub_checkkey (void)
 
   FOR_ACTIVE_TERM_INPUTS(term)
   {
-    pending_key = term->getkey (term);
-    if (pending_key != GRUB_TERM_NO_KEY)
-      return pending_key;
+    int key = term->getkey (term);
+    if (key != GRUB_TERM_NO_KEY)
+      return key;
   }
 
-  return -1;
+  return GRUB_TERM_NO_KEY;
 }
 
 int
@@ -112,18 +107,15 @@ grub_getkey (void)
 
   grub_refresh ();
 
-  grub_checkkey ();
-  while (pending_key == GRUB_TERM_NO_KEY)
+  while (1)
     {
+      ret = grub_getkey_noblock ();
+      if (ret != GRUB_TERM_NO_KEY)
+       return ret;
       grub_cpu_idle ();
-      grub_checkkey ();
     }
-  ret = pending_key;
-  pending_key = GRUB_TERM_NO_KEY;
-  return ret;
 }
 
-
 void
 grub_refresh (void)
 {
index 0833937e0a8e5ebf11e6e51e37f1d83c5fce5e55..100e8b3f3f674c71514f223ddffb0f5775b2ef89 100644 (file)
@@ -52,12 +52,8 @@ grub_wait_after_message (void)
 
   endtime = grub_get_time_ms () + 10000;
 
-  while (grub_get_time_ms () < endtime)
-    if (grub_checkkey () >= 0)
-      {
-       grub_getkey ();
-       break;
-      }
+  while (grub_get_time_ms () < endtime
+        && grub_getkey_noblock () == GRUB_TERM_NO_KEY);
 
   grub_xputs ("\n");
 }
@@ -560,10 +556,10 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot)
          return default_entry;
        }
 
-      if (grub_checkkey () >= 0 || timeout < 0)
-       {
-         c = grub_getkey ();
+      c = grub_getkey_noblock ();
 
+      if (c != GRUB_TERM_NO_KEY)
+       {
          if (timeout >= 0)
            {
              grub_env_unset ("timeout");
index 8fdf16234398ac75b3c06d090726b75b0def34de..e73f8aa25491ae215cf85ba9f3360743bfeb3abb 100644 (file)
@@ -320,7 +320,7 @@ grub_term_unregister_output (grub_term_output_t term)
 
 void grub_putcode (grub_uint32_t code, struct grub_term_output *term);
 int EXPORT_FUNC(grub_getkey) (void);
-int EXPORT_FUNC(grub_checkkey) (void);
+int EXPORT_FUNC(grub_getkey_noblock) (void);
 void grub_cls (void);
 void EXPORT_FUNC(grub_refresh) (void);
 void grub_puts_terminal (const char *str, struct grub_term_output *term);