Provided by: ncurses-doc_6.4+20230625-2_all bug

NAME

       COLORS, COLOR_PAIRS, COLS, ESCDELAY, LINES, TABSIZE, curscr, newscr, stdscr - curses
       global variables

SYNOPSIS

       #include <curses.h>

       int COLOR_PAIRS;
       int COLORS;
       int COLS;
       int ESCDELAY;
       int LINES;
       int TABSIZE;
       WINDOW * curscr;
       WINDOW * newscr;
       WINDOW * stdscr;

DESCRIPTION

       This  page  summarizes  variables  provided  by  the  curses  library.   A  more  complete
       description is given in the ncurses(3NCURSES) manual page.

       Depending   on   the  configuration,  these  may  be  actual  variables,  or  macros  (see
       threads(3NCURSES) and opaque(3NCURSES)) which provide read-only access to curses's  state.
       In  either  case,  applications  should  treat  them  as  read-only to avoid confusing the
       library.

   COLOR_PAIRS
       After initializing curses, this variable contains the number  of  color  pairs  which  the
       terminal   can   support.   Usually  the  number  of  color  pairs  will  be  the  product
       COLORS*COLORS, however this is not always true:

       •   a few terminals use HLS colors, which do not follow this rule

       •   terminals supporting a large number of colors are limited by the number of color pairs
           that can be represented in a signed short value.

   COLORS
       After  initializing curses, this variable contains the number of colors which the terminal
       can support.

   COLS
       After initializing curses, this variable contains the  width  of  the  screen,  i.e.,  the
       number of columns.

   ESCDELAY
       This  variable holds the number of milliseconds to wait after reading an escape character,
       to distinguish between an individual escape character entered on the keyboard from  escape
       sequences sent by cursor- and function-keys (see curses(3X)).

   LINES
       After  initializing  curses,  this  variable  contains the height of the screen, i.e., the
       number of lines.

   TABSIZE
       This variable holds the number of columns used by the curses library when converting a tab
       character to spaces as it adds the tab to a window (see addch(3NCURSES).

   The Current Screen
       This  implementation  of  curses uses a special window curscr to record its updates to the
       terminal screen.

       This  is  referred  to  as  the   “physical   screen”   in   the   refresh(3NCURSES)   and
       outopts(3NCURSES) manual pages.

   The New Screen
       This implementation of curses uses a special window newscr to hold updates to the terminal
       screen before applying them to curscr.

       This is referred to as the “virtual screen” in the kernel(3NCURSES), refresh(3NCURSES) and
       outopts(3NCURSES) manual pages.

   The Standard Screen
       Upon  initializing  curses,  a  default  window  called  stdscr,  which is the size of the
       terminal screen, is created.  Many curses functions use this window.

NOTES

       The curses library is initialized using either initscr(3X), or newterm(3X).

       If curses is configured to use separate curses/terminfo libraries, most of these variables
       reside in the curses library.

PORTABILITY

       TABSIZE is a feature of SVr4 curses which is not documented by X/Open curses.

       •   In  SVr4  curses,  TABSIZE  is initially set from the terminal description's init_tabs
           capability.  After that, it can be altered by the applications using SVr4 curses.

           SVr4 curses uses the current value of TABSIZE to compute the position of tabstops  for
           updating  both  the  virtual screen with addch(3X) as well as the physical screen with
           mvcur(3X).

       •   This implementation uses the current value of TABSIZE only for  updating  the  virtual
           screen.   It  uses  the terminal description's it (init_tabs) capability for computing
           hardware tabs (i.e., tab stops on the physical screen).

       •   Other implementations differ.  For instance, NetBSD curses allows TABSIZE  to  be  set
           through an environment variable.  This implementation does not.

           NetBSD curses does not support hardware tabs; it uses the init_tabs capability and the
           TABSIZE variable only for updating the virtual screen.

       ESCDELAY is an extension in AIX curses:

       •   In AIX, the units for ESCDELAY are fifths of a millisecond.

       •   The default value for AIX's ESCDELAY is 0.1 seconds.

       •   AIX also enforces  a  limit  of  10,000  seconds  for  ESCDELAY;  this  implementation
           currently has no upper limit.

       This  implementation  has  long  used  ESCDELAY  with  units  of  milliseconds,  making it
       impossible to be completely compatible with AIX.  Likewise, most users have either decided
       to override the value, or rely upon its default value.

SEE ALSO

       ncurses(3NCURSES),      opaque(3NCURSES),      terminfo(3NCURSES),      threads(3NCURSES),
       terminfo_variables(3NCURSES), terminfo(5).