summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey A. Chernov <ache@FreeBSD.org>1994-10-11 16:36:53 +0000
committerAndrey A. Chernov <ache@FreeBSD.org>1994-10-11 16:36:53 +0000
commit8ea50e34cbafa90108a315ff4588714ed5ca1201 (patch)
treef75e9a29470f6d568aca2b710ad694c3783a1e59
parent65bbec73d7f78fedcaf2b2b438517c42f2baf9dd (diff)
Notes
-rw-r--r--lib/libncurses/lib_getch.c6
-rw-r--r--lib/libncurses/lib_newterm.c1
-rw-r--r--lib/libncurses/lib_newwin.c5
3 files changed, 12 insertions, 0 deletions
diff --git a/lib/libncurses/lib_getch.c b/lib/libncurses/lib_getch.c
index 47192c2dfef6..56fdb5b7fffe 100644
--- a/lib/libncurses/lib_getch.c
+++ b/lib/libncurses/lib_getch.c
@@ -143,6 +143,12 @@ int ch;
ch = fifo_pull();
}
+ /* This should be eliminated */
+ /* handle 8-bit input */
+ if (ch & 0x80)
+ if (!win->_use_meta)
+ ch &= 0x7f;
+
/* there must be a simpler way of doing this */
if (!(win->_flags & _ISPAD) &&
SP->_echo && ch < 0400) { /* ch < 0400 => not a keypad key */
diff --git a/lib/libncurses/lib_newterm.c b/lib/libncurses/lib_newterm.c
index 9060abbfebfc..feffc90188df 100644
--- a/lib/libncurses/lib_newterm.c
+++ b/lib/libncurses/lib_newterm.c
@@ -49,6 +49,7 @@ int stolen, topstolen;
extern char _ncurses_copyright[];
char *use_it = _ncurses_copyright;
+ use_it = use_it; /* shut up compiler */
#ifdef TRACE
_init_trace();
T(("newterm(%s,%x,%x) called", term, ofp, ifp));
diff --git a/lib/libncurses/lib_newwin.c b/lib/libncurses/lib_newwin.c
index f732a7c73baf..84dab1663b78 100644
--- a/lib/libncurses/lib_newwin.c
+++ b/lib/libncurses/lib_newwin.c
@@ -149,7 +149,12 @@ WINDOW *win;
win->_scroll = FALSE;
win->_leave = FALSE;
win->_use_keypad = FALSE;
+#ifdef TERMIOS
+ win->_use_meta = ((cur_term->Ottyb.c_cflag & CSIZE) == CS8 &&
+ !(cur_term->Ottyb.c_iflag & ISTRIP));
+#else
win->_use_meta = FALSE;
+#endif
win->_delay = -1;
win->_immed = FALSE;
win->_sync = 0;