summaryrefslogtreecommitdiffstats
path: root/lib/libcurses/lib_raw.c
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>1998-01-17 16:27:30 +0000
committermillert <millert@openbsd.org>1998-01-17 16:27:30 +0000
commit3ef968cd5e6a7f59ac4f665918a97e4597335327 (patch)
tree6a160bb76b356b97b64f438f63a11b6c82c5bb8a /lib/libcurses/lib_raw.c
parentAdd _ti_get_screensize(), like ncurses's _nc_get_screensize() (diff)
downloadwireguard-openbsd-3ef968cd5e6a7f59ac4f665918a97e4597335327.tar.xz
wireguard-openbsd-3ef968cd5e6a7f59ac4f665918a97e4597335327.zip
Use _ti_get_screensize() from libtermlib to update screen size if changed
after a program is suspended. Define EXTERN_TERMINFO in curses.h. Update to ncurses-4.1-980103 and crank minor.
Diffstat (limited to 'lib/libcurses/lib_raw.c')
-rw-r--r--lib/libcurses/lib_raw.c37
1 files changed, 34 insertions, 3 deletions
diff --git a/lib/libcurses/lib_raw.c b/lib/libcurses/lib_raw.c
index 204d3424227..e52eb4c6bc1 100644
--- a/lib/libcurses/lib_raw.c
+++ b/lib/libcurses/lib_raw.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lib_raw.c,v 1.3 1997/12/03 05:21:27 millert Exp $ */
+/* $OpenBSD: lib_raw.c,v 1.4 1998/01/17 16:27:35 millert Exp $ */
/***************************************************************************
@@ -43,7 +43,7 @@
#include <curses.priv.h>
#include <term.h> /* cur_term */
-MODULE_ID("Id: lib_raw.c,v 1.21 1997/11/01 19:05:35 tom Exp $")
+MODULE_ID("Id: lib_raw.c,v 1.22 1998/01/03 21:59:22 tom Exp $")
#if defined(SVR4_TERMIO) && !defined(_POSIX_SOURCE)
#define _POSIX_SOURCE
@@ -53,6 +53,11 @@ MODULE_ID("Id: lib_raw.c,v 1.21 1997/11/01 19:05:35 tom Exp $")
#include <sys/termio.h> /* needed for ISC */
#endif
+#ifdef __EMX__
+#include <io.h>
+#include <fcntl.h>
+#endif
+
/* may be undefined if we're using termio.h */
#ifndef TOSTOP
#define TOSTOP 0
@@ -233,6 +238,10 @@ int raw(void)
SP->_raw = TRUE;
SP->_cbreak = TRUE;
+#ifdef __EMX__
+ setmode(SP->_ifd, O_BINARY);
+#endif
+
#ifdef TERMIOS
BEFORE("raw");
cur_term->Nttyb.c_lflag &= ~(ICANON|ISIG);
@@ -252,6 +261,10 @@ int cbreak(void)
SP->_cbreak = TRUE;
+#ifdef __EMX__
+ setmode(SP->_ifd, O_BINARY);
+#endif
+
#ifdef TERMIOS
BEFORE("cbreak");
cur_term->Nttyb.c_lflag &= ~ICANON;
@@ -282,6 +295,11 @@ int nl(void)
SP->_nl = TRUE;
+#ifdef __EMX__
+ fflush(SP->_ofp);
+ _fsetmode(SP->_ofp, "t");
+#endif
+
returnCode(OK);
}
@@ -313,6 +331,10 @@ int noraw(void)
SP->_raw = FALSE;
SP->_cbreak = FALSE;
+#ifdef __EMX__
+ setmode(SP->_ifd, O_TEXT);
+#endif
+
#ifdef TERMIOS
BEFORE("noraw");
cur_term->Nttyb.c_lflag |= ISIG|ICANON;
@@ -329,7 +351,11 @@ int nocbreak(void)
{
T((T_CALLED("nocbreak()")));
- SP->_cbreak = 0;
+ SP->_cbreak = FALSE;
+
+#ifdef __EMX__
+ setmode(SP->_ifd, O_TEXT);
+#endif
#ifdef TERMIOS
BEFORE("nocbreak");
@@ -356,6 +382,11 @@ int nonl(void)
SP->_nl = FALSE;
+#ifdef __EMX__
+ fflush(SP->_ofp);
+ _fsetmode(SP->_ofp, "b");
+#endif
+
returnCode(OK);
}