diff src/sysdep.cc @ 4067:e97fb79fc1d5

[project @ 2002-09-26 22:43:25 by jwe]
author jwe
date Thu, 26 Sep 2002 22:43:25 +0000
parents b4fa31442a78
children e5966ddef842
line wrap: on
line diff
--- a/src/sysdep.cc	Thu Sep 26 22:10:09 2002 +0000
+++ b/src/sysdep.cc	Thu Sep 26 22:43:25 2002 +0000
@@ -47,6 +47,10 @@
 #include <termio.h>
 #elif defined (HAVE_SGTTY_H)
 #include <sgtty.h>
+#endif 
+
+#if defined (HAVE_CONIO_H)
+#include <conio.h>
 #endif
 
 #if defined (HAVE_SYS_IOCTL_H)
@@ -312,8 +316,14 @@
 // Read one character from the terminal.
 
 int
-kbhit (bool wait)
+octave_kbhit (bool wait)
 {
+#ifdef HAVE__KBHIT
+  if (! wait && ! _kbhit ())
+    c = 0;
+  else
+    c = std::cin.get ();
+#else
   raw_mode (true, wait);
 
   int c = std::cin.get ();
@@ -322,6 +332,7 @@
     std::cin.clear ();
 
   raw_mode (false, true);
+#endif
 
   return c;
 }
@@ -433,7 +444,7 @@
 
   if (interactive || forced_interactive)
     {
-      int c = kbhit (args.length () == 0);
+      int c = octave_kbhit (args.length () == 0);
 
       if (c == -1)
 	c = 0;
@@ -486,20 +497,20 @@
 	  else if (xisinf (dval))
 	    {
 	      flush_octave_stdout ();
-	      kbhit ();
+	      octave_kbhit ();
 	    }
 	  else
 	    {
 	      int delay = NINT (dval);
 	      if (delay > 0)
-		sleep (delay);
+		octave_sleep (delay);
 	    }
 	}
     }
   else
     {
       flush_octave_stdout ();
-      kbhit ();
+      octave_kbhit ();
     }
 
   return retval;
@@ -525,7 +536,7 @@
 	    {
 	      int delay = NINT (dval);
 	      if (delay > 0)
-		sleep (delay);
+		octave_sleep (delay);
 	    }
 	}
     }