|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T s
Length: 2479 (0x9af) Types: TextFile Names: »screenh.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« └─⟦e5a54fb17⟧ └─⟦this⟧ »pp-5.0/Tools/mu/screenh.c«
/* screenh.c screen handling routines */ # ifndef lint static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Tools/mu/RCS/screenh.c,v 5.0 90/09/20 16:29:09 pp Exp Locker: pp $"; # endif /* * $Header: /cs/research/pp/hubris/pp-beta/Tools/mu/RCS/screenh.c,v 5.0 90/09/20 16:29:09 pp Exp Locker: pp $ * * $Log: screenh.c,v $ * Revision 5.0 90/09/20 16:29:09 pp * rcsforce : 5.0 public release * */ #include <curses.h> #include <signal.h> extern int use_termcap; /* can switch off termcap usage : used in start_screen finish_screen and clean_quit */ #define LINES 24 #define COLS 80 /* These used by termcap */ char PC; char *BC; char *UP; char bp[1024]; short ospeed; void start_screen(); void finish_screen(); void set_strings (); void posline (); void insertline (); void messline (); void cleanquit (); /* ----------------------------------------------------------------- */ void start_screen() { if(!use_termcap) return; initscr(); /* curses - SHOULD test return code */ crmode(); /* curses */ noecho(); /* curses */ set_strings(); return; } /* ----------------------------------------------------------------- */ void finish_screen() { if(!use_termcap) return; endwin(); /* curses */ return; } /* ----------------------------------------------------------------- */ void set_strings() /* set terminal-specific strings */ { tgetent(bp,""); /* curses */ /* printf("%2d returned from tgetent\n",tgetent(bp,"")); */ return; } /* ----------------------------------------------------------------- */ void posline(i) /* position cursor at start of line i */ int i; { printf( (char *) tgoto(CM,0,i)); /* termcap */ return; } /* ----------------------------------------------------------------- */ void messline(i,mess) /* write message mess at start of line i */ int i; char *mess; { posline(i); printf(CE); /* CE from termcap */ printf("%s",mess); return; } /* ----------------------------------------------------------------- */ void insertline(i) /* reverse scroll screen inserting blank at line i */ int i; { posline(i); printf(AL); /* AL from termcap */ posline(i); /* always reposition */ return; } /* ----------------------------------------------------------------- */ void cleanquit() { finish_screen(); fflush(stdout); if(!use_termcap) exit(1); posline(LINES); printf(CE); /* CE from termcap */ exit(1); } /* ----------------------------------------------------------------- */