aboutsummaryrefslogtreecommitdiff
path: root/contrib/ncurses/tack/sysdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ncurses/tack/sysdep.c')
-rw-r--r--contrib/ncurses/tack/sysdep.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/contrib/ncurses/tack/sysdep.c b/contrib/ncurses/tack/sysdep.c
index 763cc66e2a90..c07b4d9d53b9 100644
--- a/contrib/ncurses/tack/sysdep.c
+++ b/contrib/ncurses/tack/sysdep.c
@@ -24,6 +24,10 @@
* global has no effect.
*/
+#if defined(__BEOS__)
+#include <OS.h>
+#endif
+
#include <tack.h>
#include <signal.h>
@@ -39,7 +43,7 @@
#endif
#endif
-MODULE_ID("$Id: sysdep.c,v 1.5 1999/08/21 21:42:25 tom Exp $")
+MODULE_ID("$Id: sysdep.c,v 1.6 1999/09/04 13:45:00 tom Exp $")
#if DECL_ERRNO
extern int errno;
@@ -174,13 +178,13 @@ tty_reset(void)
void
tty_init(void)
{ /* ATT terminal init */
-#ifdef F_GETFL
+#if defined(F_GETFL) && defined(O_NDELAY)
int flags;
flags = fcntl(fileno(stdin), F_GETFL, 0);
nodelay_read = flags & O_NDELAY;
#else
- nodelay_read = FALSE;
+ nodelay_read = FALSE;
#endif
not_a_tty = FALSE;
if (tcgetattr(fileno(stdin), &old_modes) == -1) {
@@ -303,9 +307,19 @@ char_ready(void)
}
#else
+#if defined(__BEOS__)
+int
+char_ready(void)
+{
+ int n = 0;
+ int howmany = ioctl(0, 'ichr', &n);
+ return (howmany >= 0 && n > 0);
+}
+#else
#define char_ready() 1
#endif
#endif
+#endif
/*
** spin_flush()