diff options
author | peter <peter@FreeBSD.org> | 1999-08-30 07:58:08 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1999-08-30 07:58:08 +0000 |
commit | 28ca28a57902fe74c7807cc9093f3f2e7d00596f (patch) | |
tree | ecd9ae622bca58b6c004f851252e529c5b7757af /lib/libncurses/lib_kernel.c | |
parent | 216936ca6d54e77a70cdfe5305d1ba3ac2412fad (diff) | |
download | FreeBSD-src-28ca28a57902fe74c7807cc9093f3f2e7d00596f.zip FreeBSD-src-28ca28a57902fe74c7807cc9093f3f2e7d00596f.tar.gz |
Use src/contrib/ncurses, v5.0.990821 prerelease.
This isn't quite finished yet, there are still some unresolved problems
with ospeed and the sgtty.h (non-posix) terminal interface. Mostly
this only causes problems with src/games.
The other tools and libraries (libform,libpanel,libmenu) will come
shortly but are seperate.
Beware, there be dragons here! (The build will be broken for a short
while)
Diffstat (limited to 'lib/libncurses/lib_kernel.c')
-rw-r--r-- | lib/libncurses/lib_kernel.c | 324 |
1 files changed, 0 insertions, 324 deletions
diff --git a/lib/libncurses/lib_kernel.c b/lib/libncurses/lib_kernel.c deleted file mode 100644 index 2cc71da..0000000 --- a/lib/libncurses/lib_kernel.c +++ /dev/null @@ -1,324 +0,0 @@ - -/* This work is copyrighted. See COPYRIGHT.OLD & COPYRIGHT.NEW for * -* details. If they are missing then this copy is in violation of * -* the copyright conditions. */ - -/* - * lib_kernel.c - * - * Misc. low-level routines: - * reset_prog_mode() - * reset_shell_mode() - * baudrate() - * erasechar() - * killchar() - * flushinp() - * savetty() - * resetty() - * - * - */ - -#include "curses.priv.h" -#include "terminfo.h" - -int wattron(WINDOW *win, chtype at) -{ - T(("wattron(%x,%s) current = %s", win, _traceattr(at), _traceattr(win->_attrs))); - if (PAIR_NUMBER(at) > 0x00) { - win->_attrs = (win->_attrs & ~A_COLOR) | at ; - T(("new attribute is %s", _traceattr(win->_attrs))); - } else { - win->_attrs |= at; - T(("new attribute is %s", _traceattr(win->_attrs))); - } - return OK; -} - -int wattroff(WINDOW *win, chtype at) -{ -#define IGNORE_COLOR_OFF FALSE - - T(("wattroff(%x,%s) current = %s", win, _traceattr(at), _traceattr(win->_attrs))); - if (IGNORE_COLOR_OFF == TRUE) { - if (PAIR_NUMBER(at) == 0xff) /* turn off color */ - win->_attrs &= ~at; - else /* leave color alone */ - win->_attrs &= ~(at & ~A_COLOR); - } else { - if (PAIR_NUMBER(at) > 0x00) /* turn off color */ - win->_attrs &= ~at; - else /* leave color alone */ - win->_attrs &= ~(at & ~A_COLOR); - } - T(("new attribute is %s", _traceattr(win->_attrs))); - return OK; -} - -int reset_prog_mode() -{ - int ret = ERR; - - T(("reset_prog_mode() called")); - - if (cur_term != 0) { - if (tcsetattr(cur_term->fd, TCSADRAIN, &cur_term->prog_mode)==0) - ret = OK; - if (SP && stdscr && stdscr->_use_keypad) - _nc_keypad(TRUE); - } - return ret; -} - - -int reset_shell_mode() -{ - int ret = ERR; - - T(("reset_shell_mode() called")); - - if (cur_term != 0) { - if (SP) - { - fflush(SP->_ofp); - _nc_keypad(FALSE); - } - if (tcsetattr(cur_term->fd, TCSADRAIN, &cur_term->shell_mode)==0) - ret = OK; - } - - return ret; -} - -int curs_set(int vis) -{ -int cursor = SP->_cursor; - - T(("curs_set(%d)", vis)); - - if (vis < 0 || vis > 2) - return ERR; - - switch(vis) { - case 2: - if (cursor_visible) - putp(cursor_visible); - break; - case 1: - if (cursor_normal) - putp(cursor_normal); - break; - case 0: - if (cursor_invisible) - putp(cursor_invisible); - break; - } - SP->_cursor = vis; - return cursor; -} - -int delay_output(int ms) -{ -int speed = 0; - - T(("delay_output(%d) called", ms)); - - if (!no_pad_char && (speed = baudrate()) == ERR) - return(ERR); - else { - register int nullcount; - - if (!no_pad_char) - for (nullcount = ms * 1000 / speed; nullcount > 0; nullcount--) - putc(*pad_char, SP->_ofp); - (void) fflush(SP->_ofp); - if (no_pad_char) - napms(ms); - } - - return OK; -} - -/* - * erasechar() - * - * Return erase character as given in cur_term->Ottyb. - * - */ - -char -erasechar() -{ - T(("erasechar() called")); - -#ifdef TERMIOS - return(cur_term->Ottyb.c_cc[VERASE]); -#else - return(cur_term->Ottyb.sg_erase); -#endif - -} - - - -/* - * killchar() - * - * Return kill character as given in cur_term->Ottyb. - * - */ - -char -killchar() -{ - T(("killchar() called")); - -#ifdef TERMIOS - return(cur_term->Ottyb.c_cc[VKILL]); -#else - return(cur_term->Ottyb.sg_kill); -#endif -} - - - -/* - * flushinp() - * - * Flush any input on cur_term->Filedes - * - */ - -int flushinp() -{ - T(("flushinp() called")); - -#ifdef TERMIOS - tcflush(cur_term->Filedes, TCIFLUSH); -#else - ioctl(cur_term->Filedes, TIOCFLUSH, 0); -#endif - if (SP) { - SP->_fifohead = -1; - SP->_fifotail = 0; - SP->_fifopeek = 0; - } - return OK; - -} - - - -/* - * int - * baudrate() - * - * Returns the current terminal's baud rate. - * - */ - -#ifndef TERMIOS -struct speed { - speed_t s; - int sp; -}; - -static struct speed 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} -#endif -#ifdef B38400 -#undef MAX_BAUD -#define MAX_BAUD B38400 - ,{B38400, 38400} -#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 -}; -#endif - -int -baudrate() -{ -#ifndef TERMIOS -int i, ret; -#endif - - T(("baudrate() called")); - -#ifdef TERMIOS - return cfgetospeed(&cur_term->Nttyb); -#else - ret = cur_term->Nttyb.sg_ospeed; - if(ret < 0 || ret > MAX_BAUD) - return ERR; - for (i = 0; i < (sizeof(speeds) / sizeof(struct speed)); i++) - if (speeds[i].s == ret) - return speeds[i].sp; - return ERR; -#endif -} - - -/* -** savetty() and resetty() -** -*/ - -static TTY buf; - -int savetty() -{ - T(("savetty() called")); - -#ifdef TERMIOS - tcgetattr(cur_term->Filedes, &buf); -#else - gtty(cur_term->Filedes, &buf); -#endif - return OK; -} - -int resetty() -{ - T(("resetty() called")); - -#ifdef TERMIOS - tcsetattr(cur_term->Filedes, TCSANOW, &buf); -#else - stty(cur_term->Filedes, &buf); -#endif - return OK; -} - - -int -resizeterm(int ToLines, int ToCols) -{ - return OK; -} |