home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume4 / rolodex / part2 / clear.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-11-30  |  930 b   |  54 lines

  1. #include <stdio.h>
  2. #ifdef TERMINFO
  3. #include <term.h>
  4. #endif
  5. #undef putchar
  6.  
  7. int putchar();
  8. static int ok_to_clear;
  9.  
  10. #ifdef TERMCAP
  11. static char clear_screen[128] = 0;
  12. static int lines;
  13. #endif
  14.  
  15. clearinit ()
  16. {
  17. #ifdef TERMINFO
  18.   int i;        
  19.   setupterm(getenv("TERM"),1,&i);
  20.   ok_to_clear = (i == 1) ? 1 : 0;
  21.   if (i != 1) {
  22.      fprintf(stderr,"Warning: Terminal type unknown\n");
  23.   }
  24.   return (i == 1) ? 0 : -1;
  25. #endif
  26. #ifdef TERMCAP
  27.   char tc[1024];
  28.   char *ptr = clear_screen;
  29.  
  30.   if (tgetent(tc, getenv("TERM")) < 1) {
  31.     ok_to_clear = 0;
  32.     return;
  33.   }
  34.   tgetstr("cl", &ptr);
  35.   lines = tgetnum("li");
  36.   ok_to_clear = (clear_screen[0] != 0 && lines > 0);
  37.  
  38. #endif
  39. }        
  40.         
  41. clear_the_screen ()
  42. {
  43. #ifdef TERMINFO
  44.   if (!ok_to_clear) return;        
  45.   tputs(clear_screen,lines,putchar);
  46.   fflush(stdout);
  47. #endif
  48. #ifdef TERMCAP
  49.   if (!ok_to_clear) return;
  50.   tputs(clear_screen,lines,putchar);
  51.   fflush(stdout);
  52. #endif
  53. }
  54.