X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fncurses.3x.html;h=bc36dbc93df27cccc10feb34c10d454f823d9dc7;hp=8b1dee843247a8907e220114fabf8401d17d93d8;hb=32f9f5f12cd9159261f9db228461049e8c770404;hpb=f6718d80c998008de6cfe8e6296bee3958ff86d7 diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html index 8b1dee84..bc36dbc9 100644 --- a/doc/html/man/ncurses.3x.html +++ b/doc/html/man/ncurses.3x.html @@ -1,8 +1,7 @@ - + + + ncurses 3x -

ncurses 3x

-
+

ncurses 3x

-
 ncurses(3x)                                                 ncurses(3x)
 
 
 
 
 
-

NAME

+

NAME

        ncurses - CRT screen handling and optimization package
 
 
 
-

SYNOPSIS

+

SYNOPSIS

        #include <curses.h>
 
 
 
-

DESCRIPTION

+

DESCRIPTION

        The  ncurses  library  routines  give the user a terminal-
        independent method of updating character screens with rea-
-       sonable   optimization.    This  implementation  is  ``new
-       curses'' (ncurses) and is  the  approved  replacement  for
-       4.4BSD  classic curses, which has been discontinued.  This
-       describes ncurses version 5.6 (patch 20081011).
-
-       The ncurses library emulates  the  curses(3x)  library  of
-       System  V  Release  4  UNIX,  and XPG4 (X/Open Portability
-       Guide) curses (also known as XSI curses).  XSI stands  for
-       X/Open  System  Interfaces Extension.  The ncurses library
-       is freely redistributable  in  source  form.   Differences
-       from  the  SVr4 curses are summarized under the EXTENSIONS
-       and PORTABILITY sections below and described in detail  in
-       the  respective  EXTENSIONS, PORTABILITY and BUGS sections
-       of individual man pages.
+       sonable optimization.  This implementation is "new curses"
+       (ncurses) and is the approved replacement for 4.4BSD clas-
+       sic  curses,  which has been discontinued.  This describes
+       ncurses version 6.0 (patch 20150718).
+
+       The ncurses library emulates the curses library of  System
+       V  Release  4  UNIX,  and  XPG4 (X/Open Portability Guide)
+       curses (also known as XSI curses).  XSI stands for  X/Open
+       System  Interfaces  Extension.   The  ncurses  library  is
+       freely redistributable in source form.   Differences  from
+       the  SVr4  curses  are summarized under the EXTENSIONS and
+       PORTABILITY sections below and described in detail in  the
+       respective  EXTENSIONS,  PORTABILITY  and BUGS sections of
+       individual man pages.
 
        The ncurses library also provides many useful  extensions,
        i.e.,  features  which  cannot  be implemented by a simple
@@ -150,48 +150,48 @@
        Among those, the most basic routines are move  and  addch.
        More  general versions of these routines are included with
        names beginning with w, allowing the  user  to  specify  a
-       window.   The routines not beginning with w affect stdscr.
+       window.  The routines not beginning with w affect stdscr.
 
-       After using routines to manipulate a  window,  refresh  is
-       called,  telling curses to make the user's CRT screen look
-       like stdscr.  The characters in a window are  actually  of
-       type  chtype, (character and attribute data) so that other
-       information about the character may also  be  stored  with
+       After  using  routines  to manipulate a window, refresh is
+       called, telling curses to make the user's CRT screen  look
+       like  stdscr.   The characters in a window are actually of
+       type chtype, (character and attribute data) so that  other
+       information  about  the  character may also be stored with
        each character.
 
-       Special  windows  called  pads  may  also  be manipulated.
+       Special windows  called  pads  may  also  be  manipulated.
        These are windows which are not constrained to the size of
-       the  screen and whose contents need not be completely dis-
+       the screen and whose contents need not be completely  dis-
        played.  See curs_pad(3x) for more information.
 
-       In addition to drawing characters  on  the  screen,  video
-       attributes  and colors may be supported, causing the char-
-       acters to show up in such modes as underlined, in  reverse
-       video,  or in color on terminals that support such display
+       In  addition  to  drawing  characters on the screen, video
+       attributes and colors may be supported, causing the  char-
+       acters  to show up in such modes as underlined, in reverse
+       video, or in color on terminals that support such  display
        enhancements.  Line drawing characters may be specified to
-       be  output.   On  input,  curses is also able to translate
-       arrow and function keys  that  transmit  escape  sequences
-       into  single  values.   The video attributes, line drawing
-       characters,  and  input  values  use  names,  defined   in
+       be output.  On input, curses is  also  able  to  translate
+       arrow  and  function  keys  that transmit escape sequences
+       into single values.  The video  attributes,  line  drawing
+       characters,   and  input  values  use  names,  defined  in
        <curses.h>, such as A_REVERSE, ACS_HLINE, and KEY_LEFT.
 
        If the environment variables LINES and COLUMNS are set, or
-       if the program is executing in a window environment,  line
-       and  column  information  in the environment will override
+       if  the program is executing in a window environment, line
+       and column information in the  environment  will  override
        information read by terminfo.  This would affect a program
-       running  in an AT&T 630 layer, for example, where the size
+       running in an AT&T 630 layer, for example, where the  size
        of a screen is changeable (see ENVIRONMENT).
 
-       If the environment variable TERMINFO is defined, any  pro-
-       gram  using  curses checks for a local terminal definition
-       before checking in the standard place.   For  example,  if
+       If  the environment variable TERMINFO is defined, any pro-
+       gram using curses checks for a local  terminal  definition
+       before  checking  in  the standard place.  For example, if
        TERM is set to att4424, then the compiled terminal defini-
        tion is found in
 
              /usr/share/terminfo/a/att4424.
 
        (The a is copied from the first letter of att4424 to avoid
-       creation  of  huge  directories.)  However, if TERMINFO is
+       creation of huge directories.)  However,  if  TERMINFO  is
        set to $HOME/myterms, curses first checks
 
              $HOME/myterms/a/att4424,
@@ -200,115 +200,119 @@
 
              /usr/share/terminfo/a/att4424.
 
-       This is useful for developing experimental definitions  or
+       This  is useful for developing experimental definitions or
        when write permission in /usr/share/terminfo is not avail-
        able.
 
-       The integer  variables  LINES  and  COLS  are  defined  in
-       <curses.h>  and will be filled in by initscr with the size
+       The  integer  variables  LINES  and  COLS  are  defined in
+       <curses.h> and will be filled in by initscr with the  size
        of the screen.  The constants TRUE and FALSE have the val-
        ues 1 and 0, respectively.
 
-       The  curses  routines  also  define  the WINDOW * variable
+       The curses routines also  define  the  WINDOW  *  variable
        curscr which is used for certain low-level operations like
-       clearing  and  redrawing a screen containing garbage.  The
+       clearing and redrawing a screen containing  garbage.   The
        curscr can be used in only a few routines.
 
-   Routine and Argument Names
-       Many curses routines have two or more versions.  The  rou-
+
+
+

Routine and Argument Names

+       Many  curses routines have two or more versions.  The rou-
        tines prefixed with w require a window argument.  The rou-
        tines prefixed with p require a pad argument.  Those with-
        out a prefix generally use stdscr.
 
        The routines prefixed with mv require a y and x coordinate
-       to move to before performing the appropriate action.   The
-       mv  routines  imply  a call to move before the call to the
-       other routine.  The coordinate y always refers to the  row
-       (of  the  window), and x always refers to the column.  The
+       to  move to before performing the appropriate action.  The
+       mv routines imply a call to move before the  call  to  the
+       other  routine.  The coordinate y always refers to the row
+       (of the window), and x always refers to the  column.   The
        upper left-hand corner is always (0,0), not (1,1).
 
        The routines prefixed with mvw take both a window argument
-       and  x  and  y coordinates.  The window argument is always
+       and x and y coordinates.  The window  argument  is  always
        specified before the coordinates.
 
-       In each case, win is the window affected, and pad  is  the
+       In  each  case, win is the window affected, and pad is the
        pad affected; win and pad are always pointers to type WIN-
        DOW.
 
        Option setting routines require a Boolean flag bf with the
-       value  TRUE  or FALSE; bf is always of type bool.  Most of
-       the data types used in the library routines, such as  WIN-
-       DOW,  SCREEN,  bool, and chtype are defined in <curses.h>.
-       Types used for the terminfo routines such as TERMINAL  are
+       value TRUE or FALSE; bf is always of type bool.   Most  of
+       the  data types used in the library routines, such as WIN-
+       DOW, SCREEN, bool, and chtype are defined  in  <curses.h>.
+       Types  used for the terminfo routines such as TERMINAL are
        defined in <term.h>.
 
-       This  manual  page describes functions which may appear in
-       any configuration of the library.  There  are  two  common
+       This manual page describes functions which may  appear  in
+       any  configuration  of  the library.  There are two common
        configurations of the library:
 
               ncurses
                    the  "normal"  library,  which  handles  8-bit
                    characters.  The normal (8-bit) library stores
-                   characters  combined with attributes in chtype
+                   characters combined with attributes in  chtype
                    data.
 
-                   Attributes alone (no corresponding  character)
-                   may  be  stored  in  chtype  or the equivalent
-                   attr_t data.  In  either  case,  the  data  is
+                   Attributes  alone (no corresponding character)
+                   may be stored  in  chtype  or  the  equivalent
+                   attr_t  data.   In  either  case,  the data is
                    stored in something like an integer.
 
-                   Each  cell  (row  and  column)  in a WINDOW is
+                   Each cell (row and  column)  in  a  WINDOW  is
                    stored as a chtype.
 
               ncursesw
-                   the so-called "wide"  library,  which  handles
-                   multibyte   characters  (See  the  section  on
+                   the  so-called  "wide"  library, which handles
+                   multibyte  characters  (see  the  section   on
                    ALTERNATE CONFIGURATIONS).  The "wide" library
-                   includes  all  of  the calls from the "normal"
-                   library.  It adds about one third  more  calls
+                   includes all of the calls  from  the  "normal"
+                   library.   It  adds about one third more calls
                    using data types which store multibyte charac-
                    ters:
 
                    cchar_t
-                        corresponds to chtype.  However it  is  a
-                        structure,  because  more  data is stored
-                        than can fit into an integer.  The  char-
+                        corresponds  to  chtype.  However it is a
+                        structure, because more  data  is  stored
+                        than  can fit into an integer.  The char-
                         acters are large enough to require a full
-                        integer value - and  there  may  be  more
-                        than  one  character per cell.  The video
-                        attributes and color are stored in  sepa-
+                        integer  value  -  and  there may be more
+                        than one character per cell.   The  video
+                        attributes  and color are stored in sepa-
                         rate fields of the structure.
 
                         Each cell (row and column) in a WINDOW is
                         stored as a cchar_t.
 
                    wchar_t
-                        stores a "wide" character.  Like  chtype,
+                        stores  a "wide" character.  Like chtype,
                         this may be an integer.
 
                    wint_t
-                        stores  a wchar_t or WEOF - not the same,
+                        stores a wchar_t or WEOF - not the  same,
                         though both may have the same size.
 
                    The  "wide"  library  provides  new  functions
-                   which  are analogous to functions in the "nor-
-                   mal" library.  There is  a  naming  convention
-                   which  relates  many  of the normal/wide vari-
-                   ants: a "_w" is inserted into the  name.   For
+                   which are analogous to functions in the  "nor-
+                   mal"  library.   There  is a naming convention
+                   which relates many of  the  normal/wide  vari-
+                   ants:  a  "_w" is inserted into the name.  For
                    example, waddch becomes wadd_wch.
 
 
-   Routine Name Index
+
+

Routine Name Index

        The following table lists each curses routine and the name
-       of the manual page on which  it  is  described.   Routines
-       flagged  with  `*'  are ncurses-specific, not described by
+       of  the  manual  page  on which it is described.  Routines
+       flagged with `*' are ncurses-specific,  not  described  by
        XPG4 or present in SVr4.
 
-
               curses Routine Name     Manual Page Name
               --------------------------------------------
               COLOR_PAIR              curs_color(3x)
               PAIR_NUMBER             curs_attr(3x)
+              _nc_free_and_exit       curs_memleaks(3x)*
+              _nc_freeall             curs_memleaks(3x)*
               _nc_tracebits           curs_trace(3x)*
 
               _traceattr              curs_trace(3x)*
@@ -654,6 +658,7 @@
               use_env                 curs_util(3x)
               use_extended_names      curs_extend(3x)*
               use_legacy_coding       legacy_coding(3x)*
+              use_tioctl              curs_util(3x)
               vid_attr                curs_terminfo(3x)
               vid_puts                curs_terminfo(3x)
               vidattr                 curs_terminfo(3x)
@@ -705,8 +710,8 @@
               wgetch                  curs_getch(3x)
               wgetn_wstr              curs_get_wstr(3x)
               wgetnstr                curs_getstr(3x)
-              wgetstr                 curs_getstr(3x)
 
+              wgetstr                 curs_getstr(3x)
               whline                  curs_border(3x)
               whline_set              curs_border_set(3x)
               win_wch                 curs_in_wch(3x)
@@ -749,12 +754,15 @@
 
 
 
-

RETURN VALUE

-       Routines that return an integer return  ERR  upon  failure
-       and  an  integer value other than ERR upon successful com-
-       pletion, unless otherwise noted in  the  routine  descrip-
+

RETURN VALUE

+       Routines  that  return  an integer return ERR upon failure
+       and an integer value other than ERR upon  successful  com-
+       pletion,  unless  otherwise  noted in the routine descrip-
        tions.
 
+       As a general rule, routines check for null pointers passed
+       as parameters, and handle this as an error.
+
        All  macros  return  the  value  of  the w version, except
        setscrreg, wsetscrreg, getyx, getbegyx, and getmaxyx.  The
        return  values  of setscrreg, wsetscrreg, getyx, getbegyx,
@@ -765,24 +773,30 @@
 
 
 
-

ENVIRONMENT

+

ENVIRONMENT

        The following environment symbols are useful for customiz-
        ing the runtime behavior of the ncurses library.  The most
        important ones have been already discussed in detail.
 
-       BAUDRATE
-            The  debugging library checks this environment symbol
-            when the application has redirected output to a file.
-            The  symbol's numeric value is used for the baudrate.
-            If no value is found, ncurses uses 9600.  This allows
-            testers  to construct repeatable test-cases that take
-            into account costs that depend on baudrate.
-
        CC   When set, change occurrences of the command_character
-            (i.e.,  the  cmdch capability) of the loaded terminfo
-            entries to the value of this symbol.  Very  few  ter-
+            (i.e., the cmdch capability) of the  loaded  terminfo
+            entries to the value of this variable.  Very few ter-
             minfo entries provide this feature.
 
+            Because this name is also used in  development  envi-
+            ronments  to represent the C compiler's name, ncurses
+            ignores it if it does not happen to be a single char-
+            acter.
+
+       BAUDRATE
+            The  debugging  library checks this environment vari-
+            able when the application has redirected output to  a
+            file.   The  variable's numeric value is used for the
+            baudrate.  If no value is found, ncurses  uses  9600.
+            This  allows  testers  to  construct repeatable test-
+            cases that take into account  costs  that  depend  on
+            baudrate.
+
        COLUMNS
             Specify  the  width  of  the  screen  in  characters.
             Applications running in a windowing environment  usu-
@@ -810,39 +824,42 @@
             as emulations.
 
             Use the use_env function to disable all use of exter-
-            nal environment (including system calls) to determine
-            the screen size.
+            nal  environment  (but not including system calls) to
+            determine the screen size.  Use the use_tioctl  func-
+            tion  to  update COLUMNS or LINES to match the screen
+            size obtained from system calls or the terminal data-
+            base.
 
        ESCDELAY
-            Specifies the total time, in milliseconds, for  which
-            ncurses  will  await  a  character  sequence, e.g., a
-            function key.  The default value, 1000  milliseconds,
+            Specifies  the total time, in milliseconds, for which
+            ncurses will await  a  character  sequence,  e.g.,  a
+            function  key.  The default value, 1000 milliseconds,
             is enough for most uses.  However, it is made a vari-
             able to accommodate unusual applications.
 
             The most common instance where you may wish to change
-            this  value is to work with slow hosts, e.g., running
-            on a network.  If the  host  cannot  read  characters
-            rapidly  enough,  it  will have the same effect as if
-            the terminal did not send characters rapidly  enough.
+            this value is to work with slow hosts, e.g.,  running
+            on  a  network.   If  the host cannot read characters
+            rapidly enough, it will have the same  effect  as  if
+            the  terminal did not send characters rapidly enough.
             The library will still see a timeout.
 
-            Note  that xterm mouse events are built up from char-
-            acter sequences received from  the  xterm.   If  your
+            Note that xterm mouse events are built up from  char-
+            acter  sequences  received  from  the xterm.  If your
             application makes heavy use of multiple-clicking, you
-            may wish to lengthen this default value  because  the
-            timeout  applies to the composed multi-click event as
+            may  wish  to lengthen this default value because the
+            timeout applies to the composed multi-click event  as
             well as the individual clicks.
 
-            In addition to the environment variable, this  imple-
-            mentation  provides  a  global variable with the same
+            In  addition to the environment variable, this imple-
+            mentation provides a global variable  with  the  same
             name.  Portable applications should not rely upon the
-            presence  of ESCDELAY in either form, but setting the
-            environment variable rather than the global  variable
-            does  not  create problems when compiling an applica-
+            presence of ESCDELAY in either form, but setting  the
+            environment  variable rather than the global variable
+            does not create problems when compiling  an  applica-
             tion.
 
-       HOME Tells ncurses where your home directory is.  That  is
+       HOME Tells  ncurses where your home directory is.  That is
             where  it  may  read  and  write  auxiliary  terminal
             descriptions:
 
@@ -850,8 +867,8 @@
             $HOME/.terminfo
 
        LINES
-            Like COLUMNS, specify the height  of  the  screen  in
-            characters.   See COLUMNS for a detailed description.
+            Like  COLUMNS,  specify  the  height of the screen in
+            characters.  See COLUMNS for a detailed description.
 
        MOUSE_BUTTONS_123
             This applies only to the OS/2 EMX port.  It specifies
@@ -862,10 +879,10 @@
             2 = right
             3 = middle.
 
-            This symbol lets you customize the mouse.  The symbol
-            must  be three numeric digits 1-3 in any order, e.g.,
-            123 or 321.  If it is  not  specified,  ncurses  uses
-            132.
+            This variable lets  you  customize  the  mouse.   The
+            variable  must  be  three  numeric  digits 1-3 in any
+            order, e.g., 123 or 321.  If  it  is  not  specified,
+            ncurses uses 132.
 
        NCURSES_ASSUMED_COLORS
             Override  the  compiled-in assumption that the termi-
@@ -879,6 +896,17 @@
             tive value from zero to the terminfo max_colors value
             is allowed.
 
+       NCURSES_CONSOLE2
+            This applies only to the MinGW port of ncurses.
+
+            The Console2 program's handling of the Microsoft Con-
+            sole API call CreateConsoleScreenBuffer is defective.
+            Applications which use this will hang.   However,  it
+            is  possible  to  simulate the action of this call by
+            mapping coordinates, explicitly saving and  restoring
+            the  original  screen contents.  Setting the environ-
+            ment variable NCGDB has the same effect.
+
        NCURSES_GPM_TERMS
             This applies only to ncurses configured  to  use  the
             GPM interface.
@@ -899,7 +927,7 @@
             variable to disable the feature.  You can also adjust
             your stty settings to avoid the problem.
 
-       NCURSES_NO_MAGIC_COOKIES
+       NCURSES_NO_MAGIC_COOKIE
             Some  terminals  use  a  magic-cookie  feature  which
             requires  special  handling  to make highlighting and
             other video attributes  display  properly.   You  can
@@ -910,38 +938,60 @@
             Most of the terminal  descriptions  in  the  terminfo
             database  are  written for real "hardware" terminals.
             Many people use terminal emulators  which  run  in  a
-            windowing    environment    and    use   curses-based
-            applications.  Terminal emulators can  duplicate  all
-            of  the important aspects of a hardware terminal, but
-            they do not have the  same  limitations.   The  chief
-            limitation of a hardware terminal from the standpoint
-            of your application is the  management  of  dataflow,
-            i.e.,  timing.   Unless a hardware terminal is inter-
-            faced into a terminal concentrator (which  does  flow
-            control),   it  (or  your  application)  must  manage
-            dataflow, preventing overruns.  The cheapest solution
-            (no  hardware cost) is for your program to do this by
-            pausing  after  operations  that  the  terminal  does
-            slowly, such as clearing the display.
+            windowing  environment  and use curses-based applica-
+            tions.  Terminal emulators can duplicate all  of  the
+            important aspects of a hardware terminal, but they do
+            not have the same limitations.  The chief  limitation
+            of  a  hardware  terminal from the standpoint of your
+            application is the management of dataflow, i.e., tim-
+            ing.  Unless a hardware terminal is interfaced into a
+            terminal concentrator (which does flow  control),  it
+            (or  your application) must manage dataflow, prevent-
+            ing overruns.  The  cheapest  solution  (no  hardware
+            cost) is for your program to do this by pausing after
+            operations that the terminal  does  slowly,  such  as
+            clearing the display.
 
             As  a  result,  many terminal descriptions (including
             the vt100) have delay times embedded.  You  may  wish
             to  use  these  descriptions, but not want to pay the
             performance penalty.
 
-            Set the NCURSES_NO_PADDING symbol to disable all  but
-            mandatory  padding.   Mandatory  padding is used as a
-            part of special control sequences such as flash.
+            Set the NCURSES_NO_PADDING  environment  variable  to
+            disable all but mandatory padding.  Mandatory padding
+            is used as a part of special control  sequences  such
+            as flash.
 
        NCURSES_NO_SETBUF
-            Normally ncurses enables buffered output during  ter-
-            minal  initialization.   This  is  done  (as  in SVr4
-            curses) for performance reasons.   For  testing  pur-
-            poses, both of ncurses and certain applications, this
-            feature    is    made    optional.     Setting    the
-            NCURSES_NO_SETBUF variable disables output buffering,
-            leaving the output  in  the  original  (usually  line
-            buffered) mode.
+            This setting is obsolete.  Before changes
+
+            o   started with 5.9 patch 20120825 and
+
+            o   continued though 5.9 patch 20130126
+
+            ncurses  enabled buffered output during terminal ini-
+            tialization.  This was done (as in SVr4  curses)  for
+            performance  reasons.   For testing purposes, both of
+            ncurses and certain applications,  this  feature  was
+            made  optional.   Setting the NCURSES_NO_SETBUF vari-
+            able disabled output buffering, leaving the output in
+            the original (usually line buffered) mode.
+
+            In  the  current implementation, ncurses performs its
+            own buffering and does not require  this  workaround.
+            It does not modify the buffering of the standard out-
+            put.
+
+            The reason for the change was to  make  the  behavior
+            for  interrupts  and  other signals more robust.  One
+            drawback is  that  certain  nonconventional  programs
+            would mix ordinary stdio calls with ncurses calls and
+            (usually) work.  This is  no  longer  possible  since
+            ncurses is not using the buffered standard output but
+            its own output (to the same file descriptor).   As  a
+            special  case, the low-level calls such as putp still
+            use the standard output.  But high-level curses calls
+            do not.
 
        NCURSES_NO_UTF8_ACS
             During initialization, the ncurses library checks for
@@ -960,106 +1010,163 @@
 
             When  setting  this  variable, you should set it to a
             nonzero value.  Setting it to zero (or to  a  nonnum-
-            ber) disables the special check for Linux and screen.
+            ber)  disables  the  special  check  for  "linux" and
+            "screen".
+
+            As  an  alternative  to  the  environment   variable,
+            ncurses  checks  for  an extended terminfo capability
+            U8.  This is a numeric capability which can  be  com-
+            piled using tic -x.  For example
+
+            # linux console, if patched to provide working
+            # VT100 shift-in/shift-out, with corresponding font.
+            linux-vt100|linux console with VT100 line-graphics,
+                    U8#0, use=linux,
+
+            # uxterm with vt100Graphics resource set to false
+            xterm-utf8|xterm relying on UTF-8 line-graphics,
+                    U8#1, use=xterm,
+
+            The name "U8" is chosen to be two characters, to per-
+            mit it to be used by applications that  use  ncurses'
+            termcap interface.
 
        NCURSES_TRACE
-            During initialization, the ncurses debugging  library
-            checks  the  NCURSES_TRACE symbol.  If it is defined,
-            to a numeric value, ncurses calls the trace function,
-            using that value as the argument.
-
-            The  argument  values, which are defined in curses.h,
-            provide several types of information.   When  running
-            with  traces enabled, your application will write the
+            During  initialization, the ncurses debugging library
+            checks the NCURSES_TRACE environment variable.  If it
+            is  defined,  to  a  numeric value, ncurses calls the
+            trace function, using that value as the argument.
+
+            The argument values, which are defined  in  curses.h,
+            provide  several  types of information.  When running
+            with traces enabled, your application will write  the
             file trace to the current directory.
 
-       TERM Denotes your terminal type.  Each  terminal  type  is
+       TERM Denotes  your  terminal  type.  Each terminal type is
             distinct, though many are similar.
 
+            TERM is commonly set by terminal  emulators  to  help
+            applications  find  a  workable terminal description.
+            Some of those choose a popular  approximation,  e.g.,
+            "ansi",  "vt100",  "xterm"  rather than an exact fit.
+            Not infrequently, your application will have problems
+            with that approach, e.g., incorrect function-key def-
+            initions.
+
+            If you set TERM in your environment, it has no effect
+            on  the  operation of the terminal emulator.  It only
+            affects the way applications work within  the  termi-
+            nal.  Likewise, as a general rule (xterm being a rare
+            exception), terminal emulators  which  allow  you  to
+            specify TERM as a parameter or configuration value do
+            not change their behavior to match that setting.
+
        TERMCAP
             If the ncurses library has been configured with term-
-            cap support, ncurses  will  check  for  a  terminal's
+            cap  support,  ncurses  will  check  for a terminal's
             description in termcap form if it is not available in
             the terminfo database.
 
-            The  TERMCAP  symbol  contains  either   a   terminal
-            description  (with  newlines stripped out), or a file
-            name telling where the  information  denoted  by  the
-            TERM  symbol  exists.   In  either  case,  setting it
-            directs ncurses to ignore the usual  place  for  this
-            information, e.g., /etc/termcap.
+            The  TERMCAP  environment  variable contains either a
+            terminal description (with newlines stripped out), or
+            a  file name telling where the information denoted by
+            the TERM  environment  variable  exists.   In  either
+            case,  setting it directs ncurses to ignore the usual
+            place for this information, e.g., /etc/termcap.
 
        TERMINFO
             Overrides the directory in which ncurses searches for
             your terminal description.  This is the simplest, but
-            not  the  only way to change the list of directories.
+            not the only way to change the list  of  directories.
             The complete list of directories in order follows:
 
-            -  the last directory to which ncurses wrote, if any,
-               is searched first
+            o   the  last  directory  to  which ncurses wrote, if
+                any, is searched first
 
-            -  the directory specified by the TERMINFO symbol
+            o   the directory specified by the TERMINFO  environ-
+                ment variable
 
-            -  $HOME/.terminfo
+            o   $HOME/.terminfo
 
-            -  directories listed in the TERMINFO_DIRS symbol
+            o   directories  listed in the TERMINFO_DIRS environ-
+                ment variable
 
-            -  one or more directories whose names are configured
-               and  compiled  into  the  ncurses  library,  e.g.,
-               /usr/share/terminfo
+            o   one or more directories whose names  are  config-
+                ured and compiled into the ncurses library, i.e.,
+
+                o   /usr/local/ncurses/share/ter-
+                    minfo:/usr/share/terminfo  (corresponding  to
+                    the TERMINFO_DIRS variable)
+
+                o   /usr/share/terminfo   (corresponding  to  the
+                    TERMINFO variable)
 
        TERMINFO_DIRS
-            Specifies  a list of directories to search for termi-
-            nal descriptions.  The list is  separated  by  colons
-            (i.e.,  ":") on Unix, semicolons on OS/2 EMX.  All of
-            the terminal descriptions are in terminfo form, which
-            makes  a  subdirectory  named for the first letter of
-            the terminal names therein.
+            Specifies a list of directories to search for  termi-
+            nal  descriptions.   The  list is separated by colons
+            (i.e., ":") on Unix, semicolons on OS/2 EMX.
+
+            All of the  terminal  descriptions  are  in  terminfo
+            form.  Normally these are stored in a directory tree,
+            using subdirectories named by the first letter of the
+            terminal names therein.
+
+            If ncurses is built with a hashed database, then each
+            entry in this list can also be the path of the corre-
+            sponding database file.
+
+            If  ncurses is built with a support for reading term-
+            cap files directly, then an entry in this list may be
+            the path of a termcap file.
 
        TERMPATH
-            If TERMCAP does not hold a  file  name  then  ncurses
-            checks  the TERMPATH symbol.  This is a list of file-
-            names separated by spaces or colons  (i.e.,  ":")  on
-            Unix, semicolons on OS/2 EMX.  If the TERMPATH symbol
-            is not set, ncurses looks in the files  /etc/termcap,
-            /usr/share/misc/termcap  and  $HOME/.termcap, in that
+            If  TERMCAP  does  not  hold a file name then ncurses
+            checks the TERMPATH environment variable.  This is  a
+            list  of  filenames  separated  by  spaces  or colons
+            (i.e., ":") on Unix, semicolons on OS/2 EMX.
+
+            If the TERMPATH  environment  variable  is  not  set,
+            ncurses    looks    in    the   files   /etc/termcap,
+            /usr/share/misc/termcap and $HOME/.termcap,  in  that
             order.
 
-       The library may be configured to disregard  the  following
-       variables  when  the current user is the superuser (root),
-       or if the application uses setuid or  setgid  permissions:
-       $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
+       The  library  may be configured to disregard the following
+       variables when the current user is the  superuser  (root),
+       or if the application uses setuid or setgid permissions:
+
+              $TERMINFO,  $TERMINFO_DIRS,  $TERMPATH,  as well as
+              $HOME.
 
 
 
-

ALTERNATE CONFIGURATIONS

-       Several  different  configurations are possible, depending
-       on  the  configure  script  options  used  when   building
-       ncurses.   There  are a few main options whose effects are
+

ALTERNATE CONFIGURATIONS

+       Several different configurations are  possible,  depending
+       on   the  configure  script  options  used  when  building
+       ncurses.  There are a few main options whose  effects  are
        visible to the applications developer using ncurses:
 
        --disable-overwrite
-            The standard include for ncurses is as noted in  SYN-
+            The  standard include for ncurses is as noted in SYN-
             OPSIS:
 
             #include <curses.h>
 
-            This  option is used to avoid filename conflicts when
-            ncurses is not the main implementation of  curses  of
-            the  computer.   If  ncurses  is  installed disabling
-            overwrite, it puts its  headers  in  a  subdirectory,
+            This option is used to avoid filename conflicts  when
+            ncurses  is  not the main implementation of curses of
+            the computer.   If  ncurses  is  installed  disabling
+            overwrite,  it  puts  its  headers in a subdirectory,
             e.g.,
 
             #include <ncurses/curses.h>
 
-            It  also  omits a symbolic link which would allow you
+            It also omits a symbolic link which would  allow  you
             to use -lcurses to build executables.
 
        --enable-widec
-            The configure script renames the library and (if  the
-            --disable-overwrite  option  is used) puts the header
+            The  configure script renames the library and (if the
+            --disable-overwrite option is used) puts  the  header
             files  in  a  different  subdirectory.   All  of  the
-            library  names  have  a  "w"  appended to them, i.e.,
+            library names have a  "w"  appended  to  them,  i.e.,
             instead of
 
             -lncurses
@@ -1069,18 +1176,29 @@
             -lncursesw
 
             You must also define _XOPEN_SOURCE_EXTENDED when com-
-            piling  for  the  wide-character  library  to use the
-            extended (wide-character)  functions.   The  curses.h
-            file   which  is  installed  for  the  wide-character
-            library is designed to be compatible with the  normal
+            piling for the  wide-character  library  to  use  the
+            extended  (wide-character)  functions.   The curses.h
+            file  which  is  installed  for  the   wide-character
+            library  is designed to be compatible with the normal
             library's header.  Only the size of the WINDOW struc-
-            ture differs, and very few applications require  more
-            than  a  pointer  to  WINDOWs.   If  the  headers are
-            installed  allowing  overwrite,  the   wide-character
-            library's  headers should be installed last, to allow
-            applications to be built using  either  library  from
+            ture  differs, and very few applications require more
+            than a  pointer  to  WINDOWs.   If  the  headers  are
+            installed   allowing  overwrite,  the  wide-character
+            library's headers should be installed last, to  allow
+            applications  to  be  built using either library from
             the same set of headers.
 
+       --with-pthread
+            The configure script renames the library.  All of the
+            library names have a "t" appended to them (before any
+            "w" added by --enable-widec).
+
+            The global variables such as LINES  are  replaced  by
+            macros  to allow read-only access.  At the same time,
+            setter-functions are provided to  set  these  values.
+            Some  applications  (very few) may require changes to
+            work with this convention.
+
        --with-shared
 
        --with-normal
@@ -1088,146 +1206,179 @@
        --with-debug
 
        --with-profile
-            The  shared  and normal (static) library names differ
-            by their  suffixes,  e.g.,  libncurses.so  and  libn-
-            curses.a.   The  debug  and profiling libraries add a
+            The shared and normal (static) library  names  differ
+            by  their  suffixes,  e.g.,  libncurses.so  and libn-
+            curses.a.  The debug and profiling  libraries  add  a
             "_g" and a "_p" to the root names respectively, e.g.,
             libncurses_g.a and libncurses_p.a.
 
        --with-trace
-            The  trace  function  normally  resides  in the debug
+            The trace function  normally  resides  in  the  debug
             library, but it is sometimes useful to configure this
-            in  the  shared  library.   Configure  scripts should
+            in the  shared  library.   Configure  scripts  should
             check for the function's existence rather than assum-
             ing it is always in the debug library.
 
 
 
-

FILES

+

FILES

        /usr/share/tabset
-            directory  containing  initialization  files  for the
+            directory containing  initialization  files  for  the
             terminal capability database /usr/share/terminfo ter-
             minal capability database
 
 
 
-

SEE ALSO

-       terminfo(5)  and  related  pages whose names begin "curs_"
+

SEE ALSO

+       terminfo(5) and related pages whose  names  begin  "curs_"
        for detailed routine descriptions.
+       curs_variables(3x)
 
 
 
-

EXTENSIONS

+

EXTENSIONS

        The  ncurses  library  can  be  compiled  with  an  option
        (-DUSE_GETCAP) that falls back to the old-style /etc/term-
        cap file if the terminal setup code cannot find a terminfo
-       entry  corresponding  to TERM.  Use of this feature is not
-       recommended, as it essentially includes an entire  termcap
-       compiler  in the ncurses startup code, at significant cost
+       entry corresponding to TERM.  Use of this feature  is  not
+       recommended,  as it essentially includes an entire termcap
+       compiler in the ncurses startup code, at significant  cost
        in core and startup cycles.
 
-       The ncurses  library  includes  facilities  for  capturing
-       mouse  events on certain terminals (including xterm).  See
+       The  ncurses  library  includes  facilities  for capturing
+       mouse events on certain terminals (including xterm).   See
        the curs_mouse(3x) manual page for details.
 
-       The ncurses library includes facilities for responding  to
-       window  resizing  events,  e.g., when running in an xterm.
-       See the resizeterm(3x) and wresize(3x)  manual  pages  for
-       details.   In addition, the library may be configured with
+       The  ncurses library includes facilities for responding to
+       window resizing events, e.g., when running  in  an  xterm.
+       See  the  resizeterm(3x)  and wresize(3x) manual pages for
+       details.  In addition, the library may be configured  with
        a SIGWINCH handler.
 
-       The ncurses library extends the fixed set of function  key
-       capabilities  of  terminals  by  allowing  the application
-       designer to define additional key  sequences  at  runtime.
+       The  ncurses library extends the fixed set of function key
+       capabilities of  terminals  by  allowing  the  application
+       designer  to  define  additional key sequences at runtime.
        See the define_key(3x) key_defined(3x), and keyok(3x) man-
        ual pages for details.
 
        The ncurses library can exploit the capabilities of termi-
-       nals  which  implement the ISO-6429 SGR 39 and SGR 49 con-
+       nals which implement the ISO-6429 SGR 39 and SGR  49  con-
        trols, which allow an application to reset the terminal to
-       its  original  foreground and background colors.  From the
-       users' perspective, the application is able to  draw  col-
-       ored  text  on  a  background  whose color is set indepen-
-       dently, providing better  control  over  color  contrasts.
+       its original foreground and background colors.   From  the
+       users'  perspective,  the application is able to draw col-
+       ored text on a background  whose  color  is  set  indepen-
+       dently,  providing  better  control  over color contrasts.
        See the default_colors(3x) manual page for details.
 
-       The  ncurses  library  includes  a  function for directing
-       application output to a printer attached to  the  terminal
+       The ncurses library  includes  a  function  for  directing
+       application  output  to a printer attached to the terminal
        device.  See the curs_print(3x) manual page for details.
 
 
 
-

PORTABILITY

-       The  ncurses  library is intended to be BASE-level confor-
+

PORTABILITY

+       The ncurses library is intended to be  BASE-level  confor-
        mant with XSI Curses.  The EXTENDED XSI Curses functional-
        ity (including color support) is supported.
 
-       A  small  number of local differences (that is, individual
-       differences between the XSI Curses and ncurses calls)  are
-       described  in  PORTABILITY  sections  of  the  library man
+       A small number of local differences (that  is,  individual
+       differences  between the XSI Curses and ncurses calls) are
+       described in  PORTABILITY  sections  of  the  library  man
        pages.
 
+       Unlike  other  implementations, this one checks parameters
+       such as pointers to WINDOW structures to ensure  they  are
+       not  null.  The main reason for providing this behavior is
+       to guard against programmer error.  The standard interface
+       does not provide a way for the library to tell an applica-
+       tion which  of  several  possible  errors  were  detected.
+       Relying  on  this (or some other) extension will adversely
+       affect the portability of curses applications.
+
        This implementation also contains several extensions:
 
-            The routine has_key is not part of XPG4,  nor  is  it
-            present  in SVr4.  See the curs_getch(3x) manual page
-            for details.
+       o   The routine has_key is not part of  XPG4,  nor  is  it
+           present  in  SVr4.  See the curs_getch(3x) manual page
+           for details.
+
+       o   The routine slk_attr is not part of XPG4,  nor  is  it
+           present in SVr4.  See the curs_slk(3x) manual page for
+           details.
+
+       o   The routines getmouse, mousemask, ungetmouse, mousein-
+           terval, and wenclose relating to mouse interfacing are
+           not part of XPG4, nor are they present in  SVr4.   See
+           the curs_mouse(3x) manual page for details.
 
-            The routine slk_attr is not part of XPG4, nor  is  it
-            present  in  SVr4.   See the curs_slk(3x) manual page
-            for details.
+       o   The  routine  mcprint  was not present in any previous
+           curses implementation.  See the curs_print(3x)  manual
+           page for details.
 
-            The routines getmouse,  mousemask,  ungetmouse,  mou-
-            seinterval,  and wenclose relating to mouse interfac-
-            ing are not part of XPG4, nor  are  they  present  in
-            SVr4.    See   the  curs_mouse(3x)  manual  page  for
-            details.
+       o   The  routine  wresize  is  not part of XPG4, nor is it
+           present in SVr4.  See the wresize(3x) manual page  for
+           details.
 
-            The routine mcprint was not present in  any  previous
-            curses implementation.  See the curs_print(3x) manual
-            page for details.
+       o   The  WINDOW structure's internal details can be hidden
+           from application programs.   See  curs_opaque(3x)  for
+           the discussion of is_scrollok, etc.
 
-            The routine wresize is not part of XPG4,  nor  is  it
-            present in SVr4.  See the wresize(3x) manual page for
-            details.
+       o   This implementation can be configured to provide rudi-
+           mentary support for multi-threaded applications.   See
+           curs_threads(3x) for details.
 
-            The WINDOW structure's internal details can be hidden
-            from  application  programs.  See curs_opaque(3x) for
-            the discussion of is_scrollok, etc.
+       o   This  implementation can also be configured to provide
+           a set of functions which improve the ability to manage
+           multiple screens.  See curs_sp_funcs(3x) for details.
 
-       In historic curses versions, delays embedded in the  capa-
+       In  historic curses versions, delays embedded in the capa-
        bilities cr, ind, cub1, ff and tab activated corresponding
-       delay bits in the UNIX tty driver.   In  this  implementa-
-       tion,  all  padding  is  done  by sending NUL bytes.  This
-       method is slightly more expensive, but narrows the  inter-
-       face  to  the  UNIX kernel significantly and increases the
+       delay  bits  in  the UNIX tty driver.  In this implementa-
+       tion, all padding is done  by  sending  NUL  bytes.   This
+       method  is slightly more expensive, but narrows the inter-
+       face to the UNIX kernel significantly  and  increases  the
        package's portability correspondingly.
 
 
 
-

NOTES

-       The header  file  <curses.h>  automatically  includes  the
+

NOTES

+       The  header  file  <curses.h>  automatically  includes the
        header files <stdio.h> and <unctrl.h>.
 
-       If  standard  output from a ncurses program is re-directed
-       to something which is not a tty, screen  updates  will  be
+       If standard output from a ncurses program  is  re-directed
+       to  something  which  is not a tty, screen updates will be
        directed to standard error.  This was an undocumented fea-
        ture of AT&T System V Release 3 curses.
 
 
 
-

AUTHORS

-       Zeyd M. Ben-Halim, Eric  S.  Raymond,  Thomas  E.  Dickey.
+

AUTHORS

+       Zeyd  M.  Ben-Halim,  Eric  S.  Raymond, Thomas E. Dickey.
        Based on pcurses by Pavel Curtis.
 
 
 
                                                             ncurses(3x)
 
-
-
-Man(1) output converted with -man2html -
+