home *** CD-ROM | disk | FTP | other *** search
/ Media Share 9 / MEDIASHARE_09.ISO / cprog / cursesp.zip / INITSCR.C < prev    next >
C/C++ Source or Header  |  1991-12-02  |  3KB  |  62 lines

  1. /****************************************************************/
  2. /* Initscr() routine of the PCcurses package                    */
  3. /*                                                              */
  4. /****************************************************************/
  5. /* This version of curses is based on ncurses, a curses version */
  6. /* originally written by Pavel Curtis at Cornell University.    */
  7. /* I have made substantial changes to make it run on IBM PC's,  */
  8. /* and therefore consider myself free to make it public domain. */
  9. /*              Bjorn Larsson (...mcvax!enea!infovax!bl)        */
  10. /****************************************************************/
  11. /* 1.0: Release:                                        870515  */
  12. /* 1.1: Revision string in the code:                    880306  */
  13. /* 1.2: Rcsid[] string for maintenance:                 881002  */
  14. /* 1.3: MSC -W3, Turbo'C' -w -w-pro checkes:            881005  */
  15. /****************************************************************/
  16.  
  17. #include <curses.h>
  18. #include <curspriv.h>
  19.  
  20. char _curses_initscr_rcsid[] = "@(#)initscr.c v1.3 - 881005";
  21. char _curses_revcod[] =  CURSES_RCS_ID;
  22. char _curses_cpyrgt[] = "Author B. Larsson - Public Domain";
  23.  
  24. extern  void    exit(int);              /* to avoid warings */
  25.  
  26. WINDOW *curscr;                 /* the current screen image */
  27. WINDOW *stdscr;                 /* the default screen window */
  28. cursv   _cursvar;               /* curses variables */
  29. int         _LINES = 0;         /* terminal height */
  30. int         _COLS = 0;      /* terminal width */
  31.  
  32. /****************************************************************/
  33. /* Initscr() does necessary initializations for the PCcurses    */
  34. /* package. It MUST be called before any other curses routines. */
  35. /****************************************************************/
  36.  
  37. int initscr()
  38.   {
  39.   _cursvar.cursrow   = -1;              /* Initial cursor unknown */
  40.   _cursvar.curscol   = -1;
  41.   _cursvar.autocr    = TRUE;            /* lf -> crlf by default */
  42.   _cursvar.raw       = FALSE;           /* tty I/O modes */
  43.   _cursvar.cbreak    = FALSE;
  44.   _cursvar.echo      = TRUE;
  45.   _cursvar.refrbrk   = FALSE;           /* no premature end of refresh */
  46.   _cursvar.orgcbr    = (bool)_cursesgcb();
  47.                                     /* original ^BREAK setting */
  48.   if(_LINES == 0)
  49.       _LINES = 25;                          /* @@@@ this must be fixed */
  50.   if(_COLS == 0)
  51.       _COLS  = _cursesgcols();
  52.  
  53.   if ((_cursvar.tmpwin = newwin(_LINES,_COLS,0,0)) == (WINDOW *)NULL)
  54.     exit(1);
  55.   if ((curscr = newwin(_LINES,_COLS,0,0)) == (WINDOW *)NULL)
  56.     exit(1);
  57.   if ((stdscr = newwin(_LINES,_COLS,0,0)) == (WINDOW *)NULL)
  58.     exit(1);
  59.   curscr->_clear = FALSE;
  60.   return(OK);
  61.   } /* initscr */
  62.