X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Ftermsbr.c;h=fbf5f1620a32d92edf3356c008e56f09be7604f3;hp=a4b50748e909274d726c2e2ee273af06cd6762dc;hb=6e9577f324bef90765a5edc02044eb111ec48072;hpb=943765e7ac5693ae177fd8d2b5a2440e53ce816e diff --git a/uip/termsbr.c b/uip/termsbr.c index a4b5074..fbf5f16 100644 --- a/uip/termsbr.c +++ b/uip/termsbr.c @@ -8,15 +8,7 @@ #include -#ifdef HAVE_TERMIOS_H -# include -#else -# ifdef HAVE_TERMIO_H -# include -# else -# include -# endif -#endif +#include #ifdef HAVE_TERMCAP_H # include @@ -41,53 +33,23 @@ # define TXTSIZ BUFSIZ #endif -/* -** These variables are sometimes defined in, -** and needed by the termcap library. -*/ -#ifdef HAVE_OSPEED -# ifdef MUST_DEFINE_OSPEED -extern short ospeed; -extern char PC; -# endif -#else -short ospeed; -char PC; -#endif - static long speedcode; -static int initLI = 0; static int initCO = 0; -static int LI = 40; /* number of lines */ static int CO = 80; /* number of colums */ -static char *SE = NULL; /* termcap string to end standout mode */ -static char *SO = NULL; /* termcap string to begin standout mode */ - -static char termcap[TXTSIZ]; static void read_termcap(void) { - char *bp, *cp; char *term; #ifndef TGETENT_ACCEPTS_NULL char termbuf[TXTSIZ]; #endif -#ifdef HAVE_TERMIOS_H struct termios tio; -#else -# ifdef HAVE_TERMIO_H - struct termio tio; -# else - struct sgttyb tio; -# endif -#endif - static int inited = 0; if (inited++) @@ -107,30 +69,10 @@ read_termcap(void) return; #endif -#ifdef HAVE_TERMIOS_H speedcode = cfgetospeed(&tio); -#else -# ifdef HAVE_TERMIO_H - speedcode = ioctl(fileno(stdout), TCGETA, &tio) != NOTOK ? - tio.c_cflag & CBAUD : 0; -# else - speedcode = ioctl(fileno(stdout), TIOCGETP, (char *) &tio) != NOTOK ? - tio.sg_ospeed : 0; -# endif -#endif if (!initCO && (CO = tgetnum("co")) <= 0) CO = 80; - if (!initLI && (LI = tgetnum("li")) <= 0) - LI = 24; - - cp = termcap; - if ((bp = tgetstr("pc", &cp))) - PC = *bp; - if (tgetnum("sg") <= 0) { - SE = tgetstr("se", &cp); - SO = tgetstr("so", &cp); - } } @@ -151,44 +93,3 @@ sc_width(void) return CO; } - - -int -sc_length(void) -{ -#ifdef TIOCGWINSZ - struct winsize win; - - if (ioctl(fileno(stderr), TIOCGWINSZ, &win) != NOTOK - && (LI = win.ws_row) > 0) - initLI++; - else -#endif /* TIOCGWINSZ */ - read_termcap(); - - return LI; -} - - -/* -** print in standout mode -*/ -int -SOprintf(char *fmt, ...) -{ - va_list ap; - - read_termcap(); - if (!(SO && SE)) - return NOTOK; - - tputs(SO, 1, putchar); - - va_start(ap, fmt); - vprintf(fmt, ap); - va_end(ap); - - tputs(SE, 1, putchar); - - return OK; -}