X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fncurses.3x.html;h=504ac48a0ade730a1258eedca75405e013f77ca0;hp=e7c39f3e7007af47f24c69d357803cabe6b137e1;hb=ce4803687b821efbc5fb2c5a5f06d69cd4dc2656;hpb=aa70bf3c762c5b6407bf34812d63c20f7ac8ffdd diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html index e7c39f3e..504ac48a 100644 --- a/doc/html/man/ncurses.3x.html +++ b/doc/html/man/ncurses.3x.html @@ -1,7 +1,7 @@ @@ -60,7 +60,7 @@ 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 20160730). + ncurses version 6.0 (patch 20170218). The ncurses library emulates the curses library of System V Release 4 UNIX, and XPG4 (X/Open Portability Guide) @@ -98,37 +98,34 @@ The library uses the locale which the calling program has initialized. That is normally done with setlocale: - setlocale(LC_ALL, ""); - - If the locale is not initialized, the library assumes that - characters are printable as in ISO-8859-1, to work with - certain legacy programs. You should initialize the locale - and not rely on specific details of the library when the - locale has not been setup. + setlocale(LC_ALL, ""); + If the locale is not initialized, the library assumes that + characters are printable as in ISO-8859-1, to work with cer- + tain legacy programs. You should initialize the locale and + not rely on specific details of the library when the locale + has not been setup. The function initscr or newterm must be called to initial- ize the library before any of the other routines that deal - with windows and screens are used. The routine endwin + with windows and screens are used. The routine endwin(3x) must be called before exiting. To get character-at-a-time input without echoing (most interactive, screen oriented programs want this), the fol- lowing sequence should be used: - initscr(); cbreak(); noecho(); - - Most programs would additionally use the sequence: + initscr(); cbreak(); noecho(); + Most programs would additionally use the sequence: nonl(); intrflush(stdscr, FALSE); keypad(stdscr, TRUE); - - Before a curses program is run, the tab stops of the ter- - minal should be set and its initialization strings, if - defined, must be output. This can be done by executing - the tput init command after the shell environment variable - TERM has been exported. tset(1) is usually responsible - for doing this. [See terminfo(5) for further details.] + Before a curses program is run, the tab stops of the terminal + should be set and its initialization strings, if defined, must + be output. This can be done by executing the tput init com- + mand after the shell environment variable TERM has been + exported. tset(1) is usually responsible for doing this. + [See terminfo(5) for further details.]

Datatypes

@@ -153,12 +150,12 @@
        names beginning with w, allowing the  user  to  specify  a
        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
-       each character.
+       After  using  routines to manipulate a window, refresh(3x)
+       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.
        These are windows which are not constrained to the size of
@@ -191,96 +188,92 @@
        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
-       set to $HOME/myterms, curses first checks
+               /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  set
+     to $HOME/myterms, curses first checks
 
              $HOME/myterms/a/att4424,
+   and if that fails, it then checks
 
-       and if that fails, it then checks
-
-             /usr/share/terminfo/a/att4424.
+           /usr/share/terminfo/a/att4424.
+ This  is  useful for developing experimental definitions or when
+ write permission in /usr/share/terminfo is not available.
 
-       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-
+       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  charac-
-               ters.   The  normal (8-bit) library stores charac-
+               the  "normal" library, which handles 8-bit charac-
+               ters.  The normal (8-bit) library  stores  charac-
                ters combined with attributes in chtype data.
 
-               Attributes alone (no corresponding character)  may
+               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
+               In  either  case,  the data is stored in something
                like an integer.
 
-               Each  cell  (row and column) in a WINDOW is stored
+               Each cell (row and column) in a WINDOW  is  stored
                as a chtype.
 
           ncursesw
                the so-called "wide" library, which handles multi-
                byte characters (see the section on ALTERNATE CON-
-               FIGURATIONS).  The "wide" library includes all  of
-               the  calls  from  the  "normal"  library.  It adds
-               about one third more calls using data types  which
+               FIGURATIONS).   The "wide" library includes all of
+               the calls from  the  "normal"  library.   It  adds
+               about  one third more calls using data types which
                store multibyte characters:
 
                cchar_t
                     corresponds  to  chtype.   However  it  is  a
-                    structure, because more data is  stored  than
-                    can  fit into an integer.  The characters are
-                    large enough to require a full integer  value
-                    -  and  there  may be more than one character
+                    structure,  because  more data is stored than
+                    can fit into an integer.  The characters  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 separate fields of the structure.
 
-                    Each  cell  (row  and  column) in a WINDOW is
+                    Each cell (row and column)  in  a  WINDOW  is
                     stored as a cchar_t.
 
                wchar_t
@@ -288,21 +281,21 @@
                     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  "normal"
+               The  "wide"  library  provides new functions which
+               are  analogous  to  functions  in   the   "normal"
                library.   There  is  a  naming  convention  which
-               relates  many  of the normal/wide variants: a "_w"
-               is inserted into the name.   For  example,  waddch
+               relates many of the normal/wide variants:  a  "_w"
+               is  inserted  into  the name.  For example, waddch
                becomes wadd_wch.
 
 
 

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
@@ -315,11 +308,11 @@
               _traceattr              curs_trace(3x)*
               _traceattr2             curs_trace(3x)*
               _tracechar              curs_trace(3x)*
-
               _tracechtype            curs_trace(3x)*
               _tracechtype2           curs_trace(3x)*
               _tracedump              curs_trace(3x)*
               _tracef                 curs_trace(3x)*
+
               _tracemouse             curs_trace(3x)*
               add_wch                 curs_add_wch(3x)
               add_wchnstr             curs_add_wchstr(3x)
@@ -382,10 +375,10 @@
               erasewchar              curs_termattrs(3x)
               filter                  curs_util(3x)
               flash                   curs_beep(3x)
-
               flushinp                curs_util(3x)
               get_wch                 curs_get_wch(3x)
               get_wstr                curs_get_wstr(3x)
+
               getattrs                curs_attr(3x)
               getbegx                 curs_legacy(3x)*
               getbegy                 curs_legacy(3x)*
@@ -449,9 +442,9 @@
               is_leaveok              curs_opaque(3x)*
               is_linetouched          curs_touch(3x)
               is_nodelay              curs_opaque(3x)*
-
               is_notimeout            curs_opaque(3x)*
               is_pad                  curs_opaque(3x)*
+
               is_scrollok             curs_opaque(3x)*
               is_subwin               curs_opaque(3x)*
               is_syncok               curs_opaque(3x)*
@@ -516,8 +509,8 @@
               mvscanw                 curs_scanw(3x)
               mvvline                 curs_border(3x)
               mvvline_set             curs_border_set(3x)
-
               mvwadd_wch              curs_add_wch(3x)
+
               mvwadd_wchnstr          curs_add_wchstr(3x)
               mvwadd_wchstr           curs_add_wchstr(3x)
               mvwaddch                curs_addch(3x)
@@ -649,8 +642,8 @@
               tputs                   curs_termcap(3x)
               tputs                   curs_terminfo(3x)
               trace                   curs_trace(3x)*
-              typeahead               curs_inopts(3x)
 
+              typeahead               curs_inopts(3x)
               unctrl                  curs_util(3x)
               unget_wch               curs_get_wch(3x)
               ungetch                 curs_getch(3x)
@@ -715,9 +708,9 @@
               wgetnstr                curs_getstr(3x)
               wgetparent              curs_opaque(3x)*
               wgetscrreg              curs_opaque(3x)*
+
               wgetstr                 curs_getstr(3x)
               whline                  curs_border(3x)
-
               whline_set              curs_border_set(3x)
               win_wch                 curs_in_wch(3x)
               win_wchnstr             curs_in_wchstr(3x)
@@ -759,17 +752,17 @@
 
 
 

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-
+       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
+       All  macros  return  the  value  of  the w version, except
        setscrreg, wsetscrreg, getyx, getbegyx, and getmaxyx.  The
-       return values of setscrreg, wsetscrreg,  getyx,  getbegyx,
+       return  values  of setscrreg, wsetscrreg, getyx, getbegyx,
        and getmaxyx are undefined (i.e., these should not be used
        as the right-hand side of assignment statements).
 
@@ -782,80 +775,80 @@
        important ones have been already discussed in detail.
 
    CC
-       When set,  change  occurrences  of  the  command_character
+       When  set,  change  occurrences  of  the command_character
        (i.e.,  the  cmdch  capability)  of  the  loaded  terminfo
-       entries to the value of this variable.  Very few  terminfo
+       entries  to the value of this variable.  Very few terminfo
        entries provide this feature.
 
        Because this name is also used in development environments
-       to represent the C compiler's name, ncurses ignores it  if
+       to  represent the C compiler's name, ncurses ignores it if
        it does not happen to be a single character.
 
 
 

BAUDRATE

-       The  debugging  library  checks  this environment variable
+       The debugging library  checks  this  environment  variable
        when the application has redirected output to a file.  The
-       variable's  numeric value is used for the baudrate.  If no
+       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
+       construct repeatable test-cases  that  take  into  account
        costs that depend on baudrate.
 
 
 

COLUMNS

-       Specify the width of the screen in  characters.   Applica-
-       tions  running in a windowing environment usually are able
-       to obtain the width of the window in which they  are  exe-
-       cuting.   If  neither the COLUMNS value nor the terminal's
-       screen size is available, ncurses uses the size which  may
-       be  specified  in  the  terminfo  database (i.e., the cols
+       Specify  the  width of the screen in characters.  Applica-
+       tions running in a windowing environment usually are  able
+       to  obtain  the width of the window in which they are exe-
+       cuting.  If neither the COLUMNS value nor  the  terminal's
+       screen  size is available, ncurses uses the size which may
+       be specified in the  terminfo  database  (i.e.,  the  cols
        capability).
 
-       It is important that your application use a  correct  size
-       for  the screen.  This is not always possible because your
-       application may be running on a host which does not  honor
-       NAWS  (Negotiations About Window Size), or because you are
-       temporarily running as  another  user.   However,  setting
-       COLUMNS  and/or  LINES  overrides the library's use of the
+       It  is  important that your application use a correct size
+       for the screen.  This is not always possible because  your
+       application  may be running on a host which does not honor
+       NAWS (Negotiations About Window Size), or because you  are
+       temporarily  running  as  another  user.  However, setting
+       COLUMNS and/or LINES overrides the library's  use  of  the
        screen size obtained from the operating system.
 
-       Either COLUMNS or LINES symbols may be specified  indepen-
-       dently.   This  is mainly useful to circumvent legacy mis-
-       features of terminal descriptions, e.g., xterm which  com-
+       Either  COLUMNS or LINES symbols may be specified indepen-
+       dently.  This is mainly useful to circumvent  legacy  mis-
+       features  of terminal descriptions, e.g., xterm which com-
        monly specifies a 65 line screen.  For best results, lines
        and cols should not be specified in a terminal description
        for terminals which are run as emulations.
 
-       Use  the  use_env  function to disable all use of external
-       environment (but not including system calls) to  determine
-       the  screen  size.   Use the use_tioctl function to update
-       COLUMNS or LINES to match the screen  size  obtained  from
+       Use the use_env function to disable all  use  of  external
+       environment  (but not including system calls) to determine
+       the screen size.  Use the use_tioctl  function  to  update
+       COLUMNS  or  LINES  to match the screen size obtained from
        system calls or the terminal database.
 
 
 

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, is enough for
-       most uses.  However, it is made a variable to  accommodate
+       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 variable 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  net-
-       work.   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
+       value  is to work with slow hosts, e.g., running on a net-
+       work.  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  character
-       sequences  received  from  the xterm.  If your application
-       makes heavy use of  multiple-clicking,  you  may  wish  to
+       Note  that  xterm mouse events are built up from character
+       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 well as  the  individual
+       the  composed  multi-click event as well as the individual
        clicks.
 
-       In  addition to the environment variable, this implementa-
-       tion provides a global variable with the same name.   Por-
-       table  applications  should  not rely upon the presence of
+       In addition to the environment variable, this  implementa-
+       tion  provides a global variable with the same name.  Por-
+       table applications should not rely upon  the  presence  of
        ESCDELAY in either form, but setting the environment vari-
        able rather than the global variable does not create prob-
        lems when compiling an application.
@@ -870,95 +863,95 @@
 
 
 

LINES

-       Like  COLUMNS, specify the height of the screen in charac-
+       Like COLUMNS, specify the height of the screen in  charac-
        ters.  See COLUMNS for a detailed description.
 
 
 

MOUSE_BUTTONS_123

-       This applies only to the OS/2 EMX port.  It specifies  the
-       order  of  buttons  on the mouse.  OS/2 numbers a 3-button
+       This  applies only to the OS/2 EMX port.  It specifies the
+       order of buttons on the mouse.  OS/2  numbers  a  3-button
        mouse inconsistently from other platforms:
 
        1 = left
        2 = right
        3 = middle.
 
-       This variable lets you customize the mouse.  The  variable
-       must  be  three numeric digits 1-3 in any order, e.g., 123
+       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  terminal's
-       default   colors   are  white-on-black  (see  default_col-
+       Override  the  compiled-in  assumption that the terminal's
+       default  colors  are  white-on-black   (see   default_col-
        ors(3x)).  You may set the foreground and background color
-       values  with this environment variable by proving a 2-ele-
-       ment list: foreground,background.  For  example,  to  tell
-       ncurses  to not assume anything about the colors, set this
-       to "-1,-1".  To make it green-on-black, set it  to  "2,0".
-       Any  positive  value  from zero to the terminfo max_colors
+       values with this environment variable by proving a  2-ele-
+       ment  list:  foreground,background.   For example, to tell
+       ncurses to not assume anything about the colors, set  this
+       to  "-1,-1".   To make it green-on-black, set it to "2,0".
+       Any positive 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  Console
+       The  Console2  program's handling of the Microsoft Console
        API call CreateConsoleScreenBuffer is defective.  Applica-
-       tions which use this will hang.  However, it  is  possible
-       to  simulate  the  action  of this call by mapping coordi-
+       tions  which  use this will hang.  However, it is possible
+       to simulate the action of this  call  by  mapping  coordi-
        nates, explicitly saving and restoring the original screen
-       contents.   Setting the environment variable NCGDB has the
+       contents.  Setting the environment variable NCGDB has  the
        same effect.
 
 
 

NCURSES_GPM_TERMS

-       This applies only to ncurses configured  to  use  the  GPM
+       This  applies  only  to  ncurses configured to use the GPM
        interface.
 
-       If  present,  the environment variable is a list of one or
-       more terminal names against  which  the  TERM  environment
-       variable  is  matched.   Setting it to an empty value dis-
-       ables the GPM interface; using the  built-in  support  for
+       If present, the environment variable is a list of  one  or
+       more  terminal  names  against  which the TERM environment
+       variable is matched.  Setting it to an  empty  value  dis-
+       ables  the  GPM  interface; using the built-in support for
        xterm, etc.
 
        If  the  environment  variable  is  absent,  ncurses  will
-       attempt to open GPM if TERM contains "linux".
+       attempt to open GPM if TERM contains "linux".
 
 
 

NCURSES_NO_HARD_TABS

-       Ncurses may use tabs as part of the cursor movement  opti-
-       mization.   In  some  cases,  your terminal driver may not
-       handle these properly.  Set this environment  variable  to
-       disable  the  feature.  You can also adjust your stty set-
-       tings to avoid the problem.  NCURSES_NO_MAGIC_COOKIE  Some
-       terminals  use  a magic-cookie feature which requires spe-
-       cial  handling  to  make  highlighting  and  other   video
-       attributes  display  properly.  You can suppress the high-
-       lighting entirely for  these  terminals  by  setting  this
+       Ncurses  may use tabs as part of the cursor movement opti-
+       mization.  In some cases, your  terminal  driver  may  not
+       handle  these  properly.  Set this environment variable to
+       disable the feature.  You can also adjust your  stty  set-
+       tings  to avoid the problem.  NCURSES_NO_MAGIC_COOKIE Some
+       terminals use a magic-cookie feature which  requires  spe-
+       cial   handling  to  make  highlighting  and  other  video
+       attributes display properly.  You can suppress  the  high-
+       lighting  entirely  for  these  terminals  by setting this
        environment variable.
 
 
 

NCURSES_NO_PADDING

        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 environ-
-       ment and use curses-based applications.   Terminal  emula-
+       are  written  for  real "hardware" terminals.  Many people
+       use terminal emulators which run in a  windowing  environ-
+       ment  and  use curses-based applications.  Terminal emula-
        tors can duplicate all of the important aspects of a hard-
-       ware terminal, but they do not have the same  limitations.
-       The  chief  limitation  of  a  hardware  terminal from the
+       ware  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
-       interfaced 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
+       dataflow, i.e., timing.  Unless  a  hardware  terminal  is
+       interfaced  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.
 
-       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
+       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 environment variable to disable
@@ -973,49 +966,49 @@
 
           o   continued though 5.9 patch 20130126
 
-       ncurses enabled buffered output during  terminal  initial-
-       ization.   This  was  done (as in SVr4 curses) for perfor-
-       mance reasons.  For testing purposes, both of ncurses  and
-       certain  applications,  this  feature  was  made optional.
-       Setting the  NCURSES_NO_SETBUF  variable  disabled  output
-       buffering,  leaving  the  output  in the original (usually
+       ncurses  enabled  buffered output during terminal initial-
+       ization.  This was done (as in SVr4  curses)  for  perfor-
+       mance  reasons.  For testing purposes, both of ncurses and
+       certain applications,  this  feature  was  made  optional.
+       Setting  the  NCURSES_NO_SETBUF  variable  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
+       In  the  current  implementation, ncurses performs its own
+       buffering and does not require this workaround.   It  does
        not modify the buffering of the standard output.
 
-       The reason for the change was to  make  the  behavior  for
+       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-
+       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 spe-
        cial cases where VT100 line-drawing (and the corresponding
-       alternate character set  capabilities)  described  in  the
+       alternate  character  set  capabilities)  described in the
        terminfo are known to be missing.  Specifically, when run-
        ning in a UTF-8 locale, the Linux console emulator and the
-       GNU  screen program ignore these.  Ncurses checks the TERM
-       environment variable for these.  For other special  cases,
-       you  should  set  this  environment  variable.  Doing this
-       tells ncurses to use Unicode values  which  correspond  to
+       GNU screen program ignore these.  Ncurses checks the  TERM
+       environment  variable for these.  For other special cases,
+       you should set  this  environment  variable.   Doing  this
+       tells  ncurses  to  use Unicode values which correspond to
        the VT100 line-drawing glyphs.  That works for the special
        cases cited, and is likely to work for terminal emulators.
 
        When setting this variable, you should set it to a nonzero
-       value.   Setting  it  to zero (or to a nonnumber) disables
+       value.  Setting it to zero (or to  a  nonnumber)  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  compiled  using  tic -x.
+       As  an  alternative  to  the environment variable, ncurses
+       checks for an extended terminfo capability U8.  This is  a
+       numeric  capability  which  can  be compiled using tic -x.
        For example
 
           # linux console, if patched to provide working
@@ -1028,18 +1021,18 @@
                   U8#1, use=xterm,
 
        The name "U8" is chosen to be two characters, to permit it
-       to be used  by  applications  that  use  ncurses'  termcap
+       to  be  used  by  applications  that  use ncurses' termcap
        interface.
 
 
 

NCURSES_TRACE

-       During   initialization,  the  ncurses  debugging  library
-       checks the NCURSES_TRACE environment variable.  If  it  is
+       During  initialization,  the  ncurses  debugging   library
+       checks  the  NCURSES_TRACE environment variable.  If it is
        defined, to a numeric value, ncurses calls the trace func-
        tion, using that value as the argument.
 
-       The argument values, which are defined in  curses.h,  pro-
-       vide  several  types  of  information.   When running with
+       The  argument  values, which are defined in curses.h, pro-
+       vide several types  of  information.   When  running  with
        traces enabled, your application will write the file trace
        to the current directory.
 
@@ -1047,57 +1040,101 @@
 
 
 

TERM

-       Denotes  your  terminal  type.  Each terminal type is dis-
+       Denotes your terminal type.  Each terminal  type  is  dis-
        tinct, though many are similar.
 
-       TERM is commonly set by terminal emulators to help  appli-
-       cations  find  a  workable  terminal description.  Some of
-       those  choose  a  popular  approximation,  e.g.,   "ansi",
-       "vt100",  "xterm"  rather  than  an exact fit.  Not infre-
-       quently, your application will  have  problems  with  that
+       TERM  is commonly set by terminal emulators to help appli-
+       cations find a workable  terminal  description.   Some  of
+       those   choose  a  popular  approximation,  e.g.,  "ansi",
+       "vt100", "xterm" rather than an  exact  fit.   Not  infre-
+       quently,  your  application  will  have problems with that
        approach, e.g., incorrect function-key definitions.
 
-       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 terminal.  Likewise,
+       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 terminal.   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
+       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 termcap
-       support, ncurses will check for a  terminal's  description
-       in  termcap  form  if  it is not available in the terminfo
+       If the ncurses library has been  configured  with  termcap
+       support,  ncurses  will check for a terminal's description
+       in termcap form if it is not  available  in  the  terminfo
        database.
 
-       The TERMCAP environment variable contains either a  termi-
-       nal  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  infor-
+       The  TERMCAP environment variable contains either a termi-
+       nal 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 infor-
        mation, 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.  The complete
-       list of directories in order follows:
+       ncurses can be configured to read from  multiple  terminal
+       databases.   The  TERMINFO variable overrides the location
+       for the default terminal database.  Terminal  descriptions
+       (in terminal format) are stored in terminal databases:
 
-          o   the last directory to which ncurses wrote, if  any,
-              is searched first
+       o   Normally  these  are stored in a directory tree, using
+           subdirectories named by the first letter of the termi-
+           nal names therein.
 
-          o   the directory specified by the TERMINFO environment
+           This is the scheme used in System V, which legacy Unix
+           systems use, and the  TERMINFO  variable  is  used  by
+           curses  applications  on those systems to override the
+           default location of the terminal database.
+
+       o   If ncurses is built to use hashed databases, then each
+           entry  in  this list may be the path of a hashed data-
+           base file, e.g.,
+
+             /usr/share/terminfo.db
+
+           rather than
+
+             /usr/share/terminfo/
+
+           The hashed database uses less disk-space and is a lit-
+           tle  faster  than  the  directory tree.  However, some
+           applications assume the  existence  of  the  directory
+           tree,  reading  it directly rather than using the ter-
+           minfo library calls.
+
+       o   If ncurses is built with a support for reading termcap
+           files  directly, then an entry in this list may be the
+           path of a termcap file.
+
+       o   If the TERMINFO variable begins with "hex:" or "b64:",
+           ncurses  uses the remainder of that variable as a com-
+           piled terminal description.   You  might  produce  the
+           base64 format using infocmp(1m):
+
+             TERMINFO="$(infocmp -0 -Q2 -q)"
+             export TERMINFO
+
+           The  compiled description is used if it corresponds to
+           the terminal identified by the TERM variable.
+
+       Setting TERMINFO is the simplest, but not the only way  to
+       set  location  of the default terminal database.  The com-
+       plete list of database locations in order follows:
+
+          o   the last terminal database to which ncurses  wrote,
+              if any, is searched first
+
+          o   the  location specified by the TERMINFO environment
               variable
 
           o   $HOME/.terminfo
 
-          o   directories listed in the TERMINFO_DIRS environment
+          o   locations listed in the  TERMINFO_DIRS  environment
               variable
 
-          o   one  or more directories whose names are configured
+          o   one  or  more  locations whose names are configured
               and compiled into the ncurses library, i.e.,
 
              o   /usr/local/ncurses/share/ter-
@@ -1109,69 +1146,64 @@
 
 
 

TERMINFO_DIRS

-       Specifies  a  list  of  directories to search for terminal
-       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  sub-
-       directories  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 correspond-
-       ing database file.
+       Specifies  a  list  of  locations  to  search for terminal
+       descriptions.  Each location in the  list  is  a  terminal
+       database as described in the section on the TERMINFO vari-
+       able.  The list is separated  by  colons  (i.e.,  ":")  on
+       Unix, semicolons on OS/2 EMX.
 
-       If ncurses is built with a  support  for  reading  termcap
-       files directly, then an entry in this list may be the path
-       of a termcap file.
+       There is no corresponding feature in System V terminfo; it
+       is an extension developed for ncurses.
 
 
 

TERMPATH

-       If TERMCAP does not hold a file name then  ncurses  checks
-       the  TERMPATH  environment  variable.   This  is a list of
+       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.
+       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),
+       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.
+         $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
+       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
@@ -1181,16 +1213,16 @@
           -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
@@ -1198,10 +1230,10 @@
             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
+            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
@@ -1211,29 +1243,29 @@
        --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

        /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_"
+       terminfo(5) and related pages whose  names  begin  "curs_"
        for detailed routine descriptions.
        curs_variables(3x)
 
@@ -1242,116 +1274,116 @@
        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-
+       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
+       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
+       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:
 
-       o   The  routine  has_key  is  not part of XPG4, nor is it
-           present in SVr4.  See the curs_getch(3x)  manual  page
+       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
+       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
+           not part of XPG4, nor are they present in  SVr4.   See
            the curs_mouse(3x) manual page for details.
 
-       o   The routine mcprint was not present  in  any  previous
-           curses  implementation.  See the curs_print(3x) manual
+       o   The  routine  mcprint  was not present in any previous
+           curses implementation.  See the curs_print(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
+       o   The  routine  wresize  is  not part of XPG4, nor is it
+           present in SVr4.  See the wresize(3x) manual page  for
            details.
 
-       o   The WINDOW structure's internal details can be  hidden
-           from  application  programs.   See curs_opaque(3x) for
+       o   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 be configured to provide rudi-
-           mentary  support for multi-threaded applications.  See
+           mentary support for multi-threaded applications.   See
            curs_threads(3x) for details.
 
-       o   This implementation can also be configured to  provide
+       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
+       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.
+       Zeyd  M.  Ben-Halim,  Eric  S.  Raymond, Thomas E. Dickey.
        Based on pcurses by Pavel Curtis.