X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fncurses.3x.html;h=b670e16ed2b0ccc0134497db78645239f8964201;hp=321ccb23e5648ec2d4c1e5b64fb0448c66548438;hb=e2d7d0028f4298dca2b0edaf2dc8ce30518d9218;hpb=f70db18a0c3c6a828d8a5999be37239f01c9d98a diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html index 321ccb23..b670e16e 100644 --- a/doc/html/man/ncurses.3x.html +++ b/doc/html/man/ncurses.3x.html @@ -2,7 +2,7 @@ @@ -63,16 +63,22 @@ 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 20061224). - - The ncurses routines emulate the curses(3x) library of - System V Release 4 UNIX, and the XPG4 curses standard (XSI - curses) but the ncurses library is freely redistributable - in source form. Differences from the SVr4 curses are sum- - marized under the EXTENSIONS and PORTABILITY sections - below and described in detail in the respective EXTEN- - SIONS, PORTABILITY and BUGS sections of individual man - pages. + describes ncurses version 5.9 (patch 20130309). + + 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 + add-on library but which require access to the internals + of the library. A program using these routines must be linked with the -lncurses option, or (if it has been generated) with the @@ -90,13 +96,25 @@ lation; use of soft label keys; terminfo capabilities; and access to low-level terminal-manipulation routines. - To initialize the routines, the routine initscr or newterm - must be called before any of the other routines that deal - with windows and screens are used. The routine endwin - must be called before exiting. To get character-at-a-time - input without echoing (most interactive, screen oriented - programs want this), the following sequence should be - used: + 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. + + 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 + 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(); @@ -121,9 +139,9 @@ be created with newwin. Note that curses does not handle overlapping windows, - that's done by the panel(3x) library. This means that you + that's done by the panel(3x) library. This means that you can either use stdscr or divide the screen into tiled win- - dows and not using stdscr at all. Mixing the two will + dows and not using stdscr at all. Mixing the two will result in unpredictable, and undesired, effects. Windows are referred to by variables declared as WINDOW *. @@ -132,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 - information read by terminfo. This would effect a program - running in an AT&T 630 layer, for example, where the size + 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 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, @@ -182,60 +200,117 @@ /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- + 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. The vari- - ables ch and attrs below are always of type chtype. The - types WINDOW, SCREEN, bool, and chtype are defined in - <curses.h>. The type TERMINAL is defined in <term.h>. - All other arguments are integers. + 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 + 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 + data. + + 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 + stored as a chtype. + + ncursesw + 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 + 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- + 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- + 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, + this may be an integer. + + wint_t + 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 + 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 -------------------------------------------- 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)* _traceattr2 curs_trace(3x)* _tracechar curs_trace(3x)* @@ -244,7 +319,6 @@ _tracedump curs_trace(3x)* _tracef curs_trace(3x)* _tracemouse curs_trace(3x)* - add_wch curs_add_wch(3x) add_wchnstr curs_add_wchstr(3x) add_wchstr curs_add_wchstr(3x) @@ -302,6 +376,7 @@ echochar curs_addch(3x) endwin curs_initscr(3x) erase curs_clear(3x) + erasechar curs_termattrs(3x) erasewchar curs_termattrs(3x) filter curs_util(3x) @@ -309,16 +384,24 @@ 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)* getbegyx curs_getyx(3x) - getbkgd curs_bkgd(3x) getbkgrnd curs_bkgrnd(3x) getcchar curs_getcchar(3x) getch curs_getch(3x) + getcurx curs_legacy(3x)* + getcury curs_legacy(3x)* + getmaxx curs_legacy(3x)* + getmaxy curs_legacy(3x)* getmaxyx curs_getyx(3x) getmouse curs_mouse(3x)* getn_wstr curs_get_wstr(3x) getnstr curs_getstr(3x) + getparx curs_legacy(3x)* + getpary curs_legacy(3x)* getparyx curs_getyx(3x) getstr curs_getstr(3x) getsyx curs_kernel(3x) @@ -356,7 +439,19 @@ instr curs_instr(3x) intrflush curs_inopts(3x) inwstr curs_inwstr(3x) + is_cleared curs_opaque(3x)* + is_idcok curs_opaque(3x)* + is_idlok curs_opaque(3x)* + + is_immedok curs_opaque(3x)* + is_keypad curs_opaque(3x)* + is_leaveok curs_opaque(3x)* is_linetouched curs_touch(3x) + is_nodelay curs_opaque(3x)* + is_notimeout curs_opaque(3x)* + is_scrollok curs_opaque(3x)* + is_syncok curs_opaque(3x)* + is_term_resized resizeterm(3x)* is_wintouched curs_touch(3x) isendwin curs_initscr(3x) key_defined key_defined(3x)* @@ -376,7 +471,6 @@ mousemask curs_mouse(3x)* move curs_move(3x) mvadd_wch curs_add_wch(3x) - mvadd_wchnstr curs_add_wchstr(3x) mvadd_wchstr curs_add_wchstr(3x) mvaddch curs_addch(3x) @@ -414,6 +508,7 @@ mvinsstr curs_insstr(3x) mvinstr curs_instr(3x) mvinwstr curs_inwstr(3x) + mvprintw curs_printw(3x) mvscanw curs_scanw(3x) mvvline curs_border(3x) @@ -442,7 +537,6 @@ mvwin_wch curs_in_wch(3x) mvwin_wchnstr curs_in_wchstr(3x) mvwin_wchstr curs_in_wchstr(3x) - mvwinch curs_inch(3x) mvwinchnstr curs_inchstr(3x) mvwinchstr curs_inchstr(3x) @@ -468,6 +562,7 @@ nocbreak curs_inopts(3x) nodelay curs_inopts(3x) noecho curs_inopts(3x) + nofilter curs_util(3x)* nonl curs_outopts(3x) noqiflush curs_inopts(3x) noraw curs_inopts(3x) @@ -479,6 +574,7 @@ pnoutrefresh curs_pad(3x) prefresh curs_pad(3x) printw curs_printw(3x) + putp curs_terminfo(3x) putwin curs_util(3x) qiflush curs_inopts(3x) @@ -508,7 +604,6 @@ setterm curs_terminfo(3x) setupterm curs_terminfo(3x) slk_attr curs_slk(3x)* - slk_attr_off curs_slk(3x) slk_attr_on curs_slk(3x) slk_attr_set curs_slk(3x) @@ -545,6 +640,7 @@ touchline curs_touch(3x) touchwin curs_touch(3x) tparm curs_terminfo(3x) + tputs curs_termcap(3x) tputs curs_terminfo(3x) trace curs_trace(3x)* @@ -557,6 +653,8 @@ use_default_colors default_colors(3x)* 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) @@ -574,7 +672,6 @@ waddchnstr curs_addchstr(3x) waddchstr curs_addchstr(3x) waddnstr curs_addstr(3x) - waddnwstr curs_addwstr(3x) waddstr curs_addstr(3x) waddwstr curs_addwstr(3x) @@ -609,6 +706,7 @@ wgetch curs_getch(3x) wgetn_wstr curs_get_wstr(3x) wgetnstr curs_getstr(3x) + wgetstr curs_getstr(3x) whline curs_border(3x) whline_set curs_border_set(3x) @@ -640,7 +738,6 @@ wscanw curs_scanw(3x) wscrl curs_scroll(3x) wsetscrreg curs_outopts(3x) - wstandend curs_attr(3x) wstandout curs_attr(3x) wsyncdown curs_window(3x) @@ -654,11 +751,14 @@

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
        setscrreg, wsetscrreg, getyx, getbegyx, and getmaxyx.  The
        return  values  of setscrreg, wsetscrreg, getyx, getbegyx,
@@ -675,18 +775,24 @@
        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.
+            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.
 
        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.
+
        COLUMNS
             Specify  the  width  of  the  screen  in  characters.
             Applications running in a windowing environment  usu-
@@ -714,39 +820,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:
 
@@ -754,8 +863,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
@@ -766,22 +875,35 @@
             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-
             nal's  default   colors   are   white-on-black   (see
             default_colors(3x)).   You may set the foreground and
             background color values with this  environment  vari-
-            able     by     proving     a     2-element     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_col-
-            ors value is allowed.
+            able  by  proving  a 2-element list: foreground,back-
+            ground.  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  posi-
+            tive value from zero to the terminfo max_colors value
+            is allowed.
+
+       NCURSES_GPM_TERMS
+            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  envi-
+            ronment  variable is matched.  Setting it to an empty
+            value disables 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".
 
        NCURSES_NO_HARD_TABS
             Ncurses may use tabs as part of the  cursor  movement
@@ -820,19 +942,41 @@
             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
@@ -851,106 +995,147 @@
 
             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.
 
        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
+
+            o   the directory specified by the TERMINFO  environ-
+                ment variable
 
-            -  the directory specified by the TERMINFO symbol
+            o   $HOME/.terminfo
 
-            -  $HOME/.terminfo
+            o   directories  listed in the TERMINFO_DIRS environ-
+                ment variable
 
-            -  directories listed in the TERMINFO_DIRS symbol
+            o   one or more directories whose names  are  config-
+                ured and compiled into the ncurses library, i.e.,
 
-            -  one or more directories whose names are configured
-               and  compiled  into  the  ncurses  library,  e.g.,
-               /usr/share/terminfo
+                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
-            filenames 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 order.
+            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
+       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
@@ -960,16 +1145,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-shared
@@ -979,16 +1164,16 @@
        --with-debug
 
        --with-profile
-            The  shared  and normal (static) library names differ
-            by   their   suffixes,   e.g.,   libncurses.so    and
-            libncurses.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.
+            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.
 
@@ -996,15 +1181,16 @@
 

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)
 
 
 
@@ -1012,79 +1198,103 @@ 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-
-       mant with the  XSI  Curses  standard.   The  EXTENDED  XSI
-       Curses  functionality  (including  color  support) is sup-
-       ported.
+       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
        pages.
 
-       The routine has_key is not part of XPG4, nor is it present
-       in SVr4.  See the curs_getch(3x) manual page for  details.
+       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:
+
+       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.
+
+       o   The  routine  mcprint  was not present in any previous
+           curses implementation.  See the curs_print(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  wresize  is  not part of XPG4, nor is it
+           present in SVr4.  See the wresize(3x) manual page  for
+           details.
 
-       The  routines getmouse, mousemask, ungetmouse, mouseinter-
-       val, 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.
+       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 mcprint was not present in any previous curses
-       implementation.   See  the  curs_print(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 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 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-
        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 NUL sends.   This  method  is
-       slightly  more expensive, but narrows the interface to the
-       UNIX kernel  significantly  and  increases  the  package's
-       portability correspondingly.
+       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.