summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1994-10-11 16:36:53 +0000
committerache <ache@FreeBSD.org>1994-10-11 16:36:53 +0000
commit5f991c5831c9a221aa4fd8e08c1cc4ee54e8e503 (patch)
treef75e9a29470f6d568aca2b710ad694c3783a1e59 /lib
parentf418b6577e744bfa0c97476aa5d3d3fe8a5bcf8e (diff)
downloadFreeBSD-src-5f991c5831c9a221aa4fd8e08c1cc4ee54e8e503.zip
FreeBSD-src-5f991c5831c9a221aa4fd8e08c1cc4ee54e8e503.tar.gz
Implement meta bit in more cosher way after contacting with zmbenhal
Shut up compiler warning
Diffstat (limited to 'lib')
-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 47192c2..56fdb5b 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 9060abb..feffc90 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 f732a7c..84dab16 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;
OpenPOWER on IntegriCloud