summaryrefslogtreecommitdiffstats
path: root/lib/libcurses/lib_kernel.c
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>1997-11-26 04:01:02 +0000
committermillert <millert@openbsd.org>1997-11-26 04:01:02 +0000
commit010b00ebb3f4bdd576ec41ca1d5d0a8994e8fe5b (patch)
tree5ee5e7213ad9b412a927de7effdcb7c8ce4b489e /lib/libcurses/lib_kernel.c
parentlibform from ncurses 4.1. Post 4.1 patches to be applied in a separate commit. (diff)
downloadwireguard-openbsd-010b00ebb3f4bdd576ec41ca1d5d0a8994e8fe5b.tar.xz
wireguard-openbsd-010b00ebb3f4bdd576ec41ca1d5d0a8994e8fe5b.zip
ncurses 4.1 + changes to work with our terminfo libs (instead of
the ncurses ones). Changes are #ifdef EXTERN_TERMINFO. Post 4.1 patches will be applied in a separate commit.
Diffstat (limited to 'lib/libcurses/lib_kernel.c')
-rw-r--r--lib/libcurses/lib_kernel.c202
1 files changed, 34 insertions, 168 deletions
diff --git a/lib/libcurses/lib_kernel.c b/lib/libcurses/lib_kernel.c
index 622c549acea..a6d0083d076 100644
--- a/lib/libcurses/lib_kernel.c
+++ b/lib/libcurses/lib_kernel.c
@@ -27,52 +27,46 @@
* napms()
* reset_prog_mode()
* reset_shell_mode()
- * baudrate()
- * delay_output()
* erasechar()
* killchar()
* flushinp()
* savetty()
* resetty()
*
- *
+ * The baudrate() and delay_output() functions could logically live here,
+ * but are in other modules to reduce the static-link size of programs
+ * that use only these facilities.
*/
-#include "curses.priv.h"
-#include "term.h" /* cur_term, pad_char */
-#include <errno.h>
-#if !HAVE_EXTERN_ERRNO
-extern int errno;
-#endif
+#include <curses.priv.h>
+#include <term.h> /* cur_term */
+
+MODULE_ID("Id: lib_kernel.c,v 1.13 1997/02/02 00:33:14 tom Exp $")
int napms(int ms)
{
- T(("napms(%d) called", ms));
+ T((T_CALLED("napms(%d)"), ms));
usleep(1000*(unsigned)ms);
- return OK;
+ returnCode(OK);
}
#ifndef EXTERN_TERMINFO
int reset_prog_mode(void)
{
- T(("reset_prog_mode() called"));
+ T((T_CALLED("reset_prog_mode()")));
-#ifdef TERMIOS
- tcsetattr(cur_term->Filedes, TCSANOW, &cur_term->Nttyb);
-#else
- stty(cur_term->Filedes, &cur_term->Nttyb);
-#endif
+ SET_TTY(cur_term->Filedes, &cur_term->Nttyb);
if (SP && stdscr && stdscr->_use_keypad)
_nc_keypad(TRUE);
- return OK;
+ returnCode(OK);
}
int reset_shell_mode(void)
{
- T(("reset_shell_mode() called"));
+ T((T_CALLED("reset_shell_mode()")));
if (SP)
{
@@ -80,42 +74,11 @@ int reset_shell_mode(void)
_nc_keypad(FALSE);
}
-#ifdef TERMIOS
- tcsetattr(cur_term->Filedes, TCSANOW, &cur_term->Ottyb);
-#else
- stty(cur_term->Filedes, &cur_term->Ottyb);
-#endif
- return OK;
+ SET_TTY(cur_term->Filedes, &cur_term->Ottyb);
+ returnCode(OK);
}
#endif /* EXTERN_TERMINFO */
-int delay_output(float ms)
-{
- T(("delay_output(%f) called", ms));
-
- if (SP == 0 || SP->_baudrate == ERR)
- return(ERR);
-#ifdef no_pad_char
- else if (no_pad_char)
- _nc_timed_wait(0, (int)ms, (int *)NULL);
-#endif /* no_pad_char */
- else {
- register int nullcount;
- char null = '\0';
-
-#ifdef pad_char
- if (pad_char)
- null = pad_char[0];
-#endif /* pad_char */
-
- for (nullcount = ms * 1000 / SP->_baudrate; nullcount > 0; nullcount--)
- putc(null, SP->_ofp);
- (void) fflush(SP->_ofp);
- }
-
- return OK;
-}
-
/*
* erasechar()
*
@@ -126,12 +89,12 @@ int delay_output(float ms)
char
erasechar(void)
{
- T(("erasechar() called"));
+ T((T_CALLED("erasechar()")));
#ifdef TERMIOS
- return(cur_term->Ottyb.c_cc[VERASE]);
+ returnCode(cur_term->Ottyb.c_cc[VERASE]);
#else
- return(cur_term->Ottyb.sg_erase);
+ returnCode(cur_term->Ottyb.sg_erase);
#endif
}
@@ -148,12 +111,12 @@ erasechar(void)
char
killchar(void)
{
- T(("killchar() called"));
+ T((T_CALLED("killchar()")));
#ifdef TERMIOS
- return(cur_term->Ottyb.c_cc[VKILL]);
+ returnCode(cur_term->Ottyb.c_cc[VKILL]);
#else
- return(cur_term->Ottyb.sg_kill);
+ returnCode(cur_term->Ottyb.sg_kill);
#endif
}
@@ -168,7 +131,7 @@ killchar(void)
int flushinp(void)
{
- T(("flushinp() called"));
+ T((T_CALLED("flushinp()")));
#ifdef TERMIOS
tcflush(cur_term->Filedes, TCIFLUSH);
@@ -178,104 +141,16 @@ int flushinp(void)
ioctl(cur_term->Filedes, TIOCFLUSH, 0);
} while
(errno == EINTR);
-#endif
- if (SP) {
- SP->_fifohead = -1;
- SP->_fifotail = 0;
- SP->_fifopeek = 0;
- }
- return OK;
-
-}
-
-
-
-/*
- * int
- * baudrate()
- *
- * Returns the current terminal's baud rate.
- *
- */
-
-struct speed {
- speed_t s;
- int sp;
-};
-
-static struct speed const speeds[] = {
- {B0, 0},
- {B50, 50},
- {B75, 75},
- {B110, 110},
- {B134, 134},
- {B150, 150},
- {B200, 200},
- {B300, 300},
- {B600, 600},
- {B1200, 1200},
- {B1800, 1800},
- {B2400, 2400},
- {B4800, 4800},
- {B9600, 9600},
-#define MAX_BAUD B9600
-#ifdef B19200
-#undef MAX_BAUD
-#define MAX_BAUD B19200
- {B19200, 19200},
-#else
-#ifdef EXTA
-#define MAX_BAUD EXTA
- {EXTA, 19200},
-#endif
-#endif
-#ifdef B38400
-#undef MAX_BAUD
-#define MAX_BAUD B38400
- {B38400, 38400},
-#else
-#ifdef EXTB
-#define MAX_BAUD EXTB
- {EXTB, 38400},
-#endif
-#endif
-#ifdef B57600
-#undef MAX_BAUD
-#define MAX_BAUD B57600
- {B57600, 57600},
-#endif
-#ifdef B115200
-#undef MAX_BAUD
-#define MAX_BAUD B115200
- {B115200, 115200},
#endif
-};
-
-int
-baudrate(void)
-{
-int i, ret;
-
- T(("baudrate() called"));
+ if (SP) {
+ SP->_fifohead = -1;
+ SP->_fifotail = 0;
+ SP->_fifopeek = 0;
+ }
+ returnCode(OK);
-#ifdef TERMIOS
- ret = cfgetospeed(&cur_term->Nttyb);
-#else
- ret = cur_term->Nttyb.sg_ospeed;
-#endif
- if(ret < 0 || ret > MAX_BAUD)
- return ERR;
- SP->_baudrate = ERR;
- for (i = 0; i < (sizeof(speeds) / sizeof(struct speed)); i++)
- if (speeds[i].s == ret)
- {
- SP->_baudrate = speeds[i].sp;
- break;
- }
- return(SP->_baudrate);
}
-
/*
** savetty() and resetty()
**
@@ -285,25 +160,16 @@ static TTY buf;
int savetty(void)
{
- T(("savetty() called"));
+ T((T_CALLED("savetty()")));
-#ifdef TERMIOS
- tcgetattr(cur_term->Filedes, &buf);
-#else
- gtty(cur_term->Filedes, &buf);
-#endif
- return OK;
+ GET_TTY(cur_term->Filedes, &buf);
+ returnCode(OK);
}
int resetty(void)
{
- T(("resetty() called"));
+ T((T_CALLED("resetty()")));
-#ifdef TERMIOS
- tcsetattr(cur_term->Filedes, TCSANOW, &buf);
-#else
- stty(cur_term->Filedes, &buf);
-#endif
- return OK;
+ SET_TTY(cur_term->Filedes, &buf);
+ returnCode(OK);
}
-