]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/ncurses.3x.html
ncurses 5.9 - patch 20110404
[ncurses.git] / doc / html / man / ncurses.3x.html
index e3d6d08b2d63250a520cc0b6c8877cad4f1a0b4c..576b1a15ec454a087103a28c4e2501e1708f009f 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: ncurses.3x,v 1.82 2006/12/24 14:44:05 tom Exp @
+  * @Id: ncurses.3x,v 1.103 2011/02/05 23:21:29 tom Exp @
 -->
 <HTML>
 <HEAD>
 -->
 <HTML>
 <HEAD>
        sonable   optimization.    This  implementation  is  ``new
        curses'' (ncurses) and is  the  approved  replacement  for
        4.4BSD  classic curses, which has been discontinued.  This
        sonable   optimization.    This  implementation  is  ``new
        curses'' (ncurses) and is  the  approved  replacement  for
        4.4BSD  classic curses, which has been discontinued.  This
-       describes <STRONG>ncurses</STRONG> version 5.6 (patch 20070303).
-
-       The <STRONG>ncurses</STRONG> routines emulate  the  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  library  of
-       System V Release 4 UNIX, and the XPG4 curses standard (XSI
-       curses) but the <STRONG>ncurses</STRONG> library is freely  redistributable
-       in source form.  Differences from the SVr4 curses are sum-
-       marized under  the  <STRONG>EXTENSIONS</STRONG>  and  <STRONG>PORTABILITY</STRONG>  sections
-       below  and  described  in  detail in the respective <STRONG>EXTEN-</STRONG>
-       <STRONG>SIONS</STRONG>, <STRONG>PORTABILITY</STRONG> and <STRONG>BUGS</STRONG>  sections  of  individual  man
-       pages.
+       describes <STRONG>ncurses</STRONG> version 5.9 (patch 20110404).
+
+       The <STRONG>ncurses</STRONG> 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  <STRONG>ncurses</STRONG>  library  is
+       freely redistributable in source form.   Differences  from
+       the  SVr4  curses  are summarized under the <STRONG>EXTENSIONS</STRONG> and
+       <STRONG>PORTABILITY</STRONG> sections below and described in detail in  the
+       respective  <STRONG>EXTENSIONS</STRONG>,  <STRONG>PORTABILITY</STRONG>  and <STRONG>BUGS</STRONG> sections of
+       individual man pages.
+
+       The <STRONG>ncurses</STRONG> 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
        <STRONG>-lncurses</STRONG> option, or (if it has been generated)  with  the
 
        A  program  using  these  routines must be linked with the
        <STRONG>-lncurses</STRONG> option, or (if it has been generated)  with  the
        lation; use of soft label keys; terminfo capabilities; and
        access to low-level terminal-manipulation routines.
 
        lation; use of soft label keys; terminfo capabilities; and
        access to low-level terminal-manipulation routines.
 
-       To initialize the routines, the routine <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>
-       must be called before any of the other routines that  deal
-       with  windows  and  screens  are used.  The routine <STRONG>endwin</STRONG>
-       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 <STRONG>setlocale</STRONG>:
+
+             <STRONG>setlocale(LC_ALL,</STRONG> <STRONG>"");</STRONG>
+
+       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 <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> must be called to initial-
+       ize the library before any of the other routines that deal
+       with windows and screens are  used.   The  routine  <STRONG>endwin</STRONG>
+       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:
 
              <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
 
 
              <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
 
        be created with <STRONG>newwin</STRONG>.
 
        Note  that  <STRONG>curses</STRONG>  does  not  handle overlapping windows,
        be created with <STRONG>newwin</STRONG>.
 
        Note  that  <STRONG>curses</STRONG>  does  not  handle overlapping windows,
-       that's done by the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library. This means that  you
+       that's done by the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library.  This means that you
        can either use <STRONG>stdscr</STRONG> or divide the screen into tiled win-
        can either use <STRONG>stdscr</STRONG> or divide the screen into tiled win-
-       dows and not using <STRONG>stdscr</STRONG> at  all.  Mixing  the  two  will
+       dows and not using <STRONG>stdscr</STRONG> at all.   Mixing  the  two  will
        result in unpredictable, and undesired, effects.
 
        Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>.
        result in unpredictable, and undesired, effects.
 
        Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>.
        If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
        if the program is executing in a window environment,  line
        and  column  information  in the environment will override
        If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
        if the program is executing in a window environment,  line
        and  column  information  in the environment will override
-       information read by <EM>terminfo</EM>.  This would effect a program
+       information read by <EM>terminfo</EM>.  This would affect a program
        running  in an AT&amp;T 630 layer, for example, where the size
        of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
 
        running  in an AT&amp;T 630 layer, for example, where the size
        of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
 
        <STRONG>DOW</STRONG>.
 
        Option setting routines require a Boolean flag <EM>bf</EM> with the
        <STRONG>DOW</STRONG>.
 
        Option setting routines require a Boolean flag <EM>bf</EM> with the
-       value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>.  The vari-
-       ables <EM>ch</EM> and <EM>attrs</EM> below are always of type  <STRONG>chtype</STRONG>.   The
-       types  <STRONG>WINDOW</STRONG>,  <STRONG>SCREEN</STRONG>,  <STRONG>bool</STRONG>,  and  <STRONG>chtype</STRONG> are defined in
-       <STRONG>&lt;curses.h&gt;</STRONG>.  The type <STRONG>TERMINAL</STRONG>  is  defined  in  <STRONG>&lt;term.h&gt;</STRONG>.
-       All other arguments are integers.
+       value  <STRONG>TRUE</STRONG>  or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>.  Most of
+       the data types used in the library routines, such as  <STRONG>WIN-</STRONG>
+       <STRONG>DOW</STRONG>,  <STRONG>SCREEN</STRONG>,  <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in <STRONG>&lt;curses.h&gt;</STRONG>.
+       Types used for the terminfo routines such as <STRONG>TERMINAL</STRONG>  are
+       defined in <STRONG>&lt;term.h&gt;</STRONG>.
+
+       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 <STRONG>chtype</STRONG>
+                   data.
+
+                   Attributes alone (no corresponding  character)
+                   may  be  stored  in  <STRONG>chtype</STRONG>  or the equivalent
+                   <STRONG>attr_t</STRONG> data.  In  either  case,  the  data  is
+                   stored in something like an integer.
+
+                   Each  cell  (row  and  column)  in a <STRONG>WINDOW</STRONG> is
+                   stored as a <STRONG>chtype</STRONG>.
+
+              ncursesw
+                   the so-called "wide"  library,  which  handles
+                   multibyte   characters  (see  the  section  on
+                   <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>).  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:
+
+                   <STRONG>cchar_t</STRONG>
+                        corresponds to <STRONG>chtype</STRONG>.  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 <STRONG>WINDOW</STRONG> is
+                        stored as a <STRONG>cchar_t</STRONG>.
+
+                   <STRONG>wchar_t</STRONG>
+                        stores a "wide" character.  Like  <STRONG>chtype</STRONG>,
+                        this may be an integer.
+
+                   <STRONG>wint_t</STRONG>
+                        stores  a <STRONG>wchar_t</STRONG> or <STRONG>WEOF</STRONG> - 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, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
+
 
    <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
        The following table lists each <STRONG>curses</STRONG> routine and the name
 
    <STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
        The following table lists each <STRONG>curses</STRONG> routine and the name
               --------------------------------------------
               COLOR_PAIR              <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
               PAIR_NUMBER             <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
               --------------------------------------------
               COLOR_PAIR              <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
               PAIR_NUMBER             <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              _nc_free_and_exit       <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
+
+              _nc_freeall             <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
               _nc_tracebits           <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               _traceattr              <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               _traceattr2             <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               _nc_tracebits           <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               _traceattr              <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               _traceattr2             <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               _tracedump              <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               _tracef                 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               _tracemouse             <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               _tracedump              <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               _tracef                 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
               _tracemouse             <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
-
               add_wch                 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
               add_wchnstr             <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
               add_wchstr              <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
               add_wch                 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
               add_wchnstr             <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
               add_wchstr              <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
               echo                    <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               echo_wchar              <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
               echochar                <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
               echo                    <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               echo_wchar              <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
               echochar                <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+
               endwin                  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
               erase                   <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
               erasechar               <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
               endwin                  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
               erase                   <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
               erasechar               <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
               flushinp                <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
               get_wch                 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
               get_wstr                <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
               flushinp                <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
               get_wch                 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
               get_wstr                <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+              getattrs                <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+              getbegx                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
+              getbegy                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
               getbegyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
               getbegyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
-
               getbkgd                 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
               getbkgrnd               <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
               getcchar                <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
               getch                   <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
               getbkgd                 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
               getbkgrnd               <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
               getcchar                <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
               getch                   <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+              getcurx                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
+              getcury                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
+              getmaxx                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
+              getmaxy                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
               getmaxyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
               getmouse                <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
               getn_wstr               <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
               getnstr                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
               getmaxyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
               getmouse                <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
               getn_wstr               <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
               getnstr                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+              getparx                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
+              getpary                 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
               getparyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
               getstr                  <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
               getsyx                  <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
               getparyx                <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
               getstr                  <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
               getsyx                  <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
               instr                   <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
               intrflush               <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               inwstr                  <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
               instr                   <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
               intrflush               <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               inwstr                  <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
+              is_cleared              <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+
+              is_idcok                <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+              is_idlok                <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+              is_immedok              <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+              is_keypad               <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+              is_leaveok              <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
               is_linetouched          <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
               is_linetouched          <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+              is_nodelay              <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+              is_notimeout            <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+              is_scrollok             <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+              is_syncok               <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
+              is_term_resized         <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>*
               is_wintouched           <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
               isendwin                <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
               key_defined             <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
               is_wintouched           <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
               isendwin                <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
               key_defined             <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
               mousemask               <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
               move                    <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
               mvadd_wch               <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
               mousemask               <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
               move                    <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
               mvadd_wch               <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
-
               mvadd_wchnstr           <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
               mvadd_wchstr            <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
               mvaddch                 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
               mvadd_wchnstr           <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
               mvadd_wchstr            <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
               mvaddch                 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
               mvinsch                 <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
               mvinsnstr               <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
               mvinsstr                <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
               mvinsch                 <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
               mvinsnstr               <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
               mvinsstr                <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+
               mvinstr                 <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
               mvinwstr                <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
               mvprintw                <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
               mvinstr                 <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
               mvinwstr                <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
               mvprintw                <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
               mvwin_wch               <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
               mvwin_wchnstr           <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
               mvwin_wchstr            <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
               mvwin_wch               <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
               mvwin_wchnstr           <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
               mvwin_wchstr            <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
-
               mvwinch                 <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
               mvwinchnstr             <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
               mvwinchstr              <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
               mvwinch                 <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
               mvwinchnstr             <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
               mvwinchstr              <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
               nocbreak                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               nodelay                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               noecho                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               nocbreak                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               nodelay                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               noecho                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+              nofilter                <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
               nonl                    <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
               noqiflush               <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               noraw                   <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               nonl                    <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
               noqiflush               <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               noraw                   <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               pair_content            <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
               pechochar               <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
               pnoutrefresh            <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
               pair_content            <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
               pechochar               <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
               pnoutrefresh            <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+
               prefresh                <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
               printw                  <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
               putp                    <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               prefresh                <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
               printw                  <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
               putp                    <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               setterm                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               setupterm               <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               slk_attr                <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
               setterm                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               setupterm               <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               slk_attr                <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
-
               slk_attr_off            <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
               slk_attr_on             <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
               slk_attr_set            <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
               slk_attr_off            <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
               slk_attr_on             <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
               slk_attr_set            <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
               tigetstr                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               timeout                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               touchline               <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
               tigetstr                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               timeout                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
               touchline               <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+
               touchwin                <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
               tparm                   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               tputs                   <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
               touchwin                <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
               tparm                   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               tputs                   <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
               use_default_colors      <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
               use_env                 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
               use_extended_names      <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
               use_default_colors      <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
               use_env                 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
               use_extended_names      <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
+              use_legacy_coding       <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
               vid_attr                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               vid_puts                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               vidattr                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               vid_attr                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               vid_puts                <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               vidattr                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               waddchnstr              <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
               waddchstr               <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
               waddnstr                <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
               waddchnstr              <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
               waddchstr               <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
               waddnstr                <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
-
               waddnwstr               <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
               waddstr                 <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
               waddwstr                <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
               waddnwstr               <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
               waddstr                 <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
               waddwstr                <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
               wgetbkgrnd              <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
               wgetch                  <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
               wgetn_wstr              <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
               wgetbkgrnd              <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
               wgetch                  <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
               wgetn_wstr              <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+
               wgetnstr                <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
               wgetstr                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
               whline                  <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
               wgetnstr                <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
               wgetstr                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
               whline                  <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
               wscanw                  <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
               wscrl                   <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
               wsetscrreg              <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
               wscanw                  <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
               wscrl                   <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
               wsetscrreg              <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
-
               wstandend               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
               wstandout               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
               wsyncdown               <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
               wstandend               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
               wstandout               <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
               wsyncdown               <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
             entries to the value of this symbol.  Very  few  ter-
             minfo entries provide this feature.
 
             entries to the value of this symbol.  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,  <STRONG>ncurses</STRONG>
+            ignores it if it does not happen to be a single char-
+            acter.
+
        COLUMNS
             Specify  the  width  of  the  screen  in  characters.
        COLUMNS
             Specify  the  width  of  the  screen  in  characters.
-            Applications running in a windowing environment  usu-
-            ally  are  able  to obtain the width of the window in
-            which they are executing.   If  neither  the  <STRONG>COLUMNS</STRONG>
-            value  nor  the  terminal's screen size is available,
-            <STRONG>ncurses</STRONG> uses the size which may be specified  in  the
+            Applications  running in a windowing environment usu-
+            ally are able to obtain the width of  the  window  in
+            which  they  are  executing.   If neither the <STRONG>COLUMNS</STRONG>
+            value nor the terminal's screen  size  is  available,
+            <STRONG>ncurses</STRONG>  uses  the size which may be specified in the
             terminfo database (i.e., the <STRONG>cols</STRONG> capability).
 
             terminfo database (i.e., the <STRONG>cols</STRONG> 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 <STRONG>COLUMNS</STRONG> and/or  <STRONG>LINES</STRONG>
+            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 <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG>
             overrides  the  library's  use  of  the  screen  size
             obtained from the operating system.
 
             overrides  the  library's  use  of  the  screen  size
             obtained from the operating system.
 
-            Either <STRONG>COLUMNS</STRONG> or  <STRONG>LINES</STRONG>  symbols  may  be  specified
-            independently.   This  is mainly useful to circumvent
-            legacy misfeatures of  terminal  descriptions,  e.g.,
+            Either  <STRONG>COLUMNS</STRONG>  or  <STRONG>LINES</STRONG>  symbols  may be specified
+            independently.  This is mainly useful  to  circumvent
+            legacy  misfeatures  of  terminal descriptions, e.g.,
             xterm which commonly specifies a 65 line screen.  For
             xterm which commonly specifies a 65 line screen.  For
-            best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be  specified
+            best  results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
             in a terminal description for terminals which are run
             as emulations.
 
             in a terminal description for terminals which are run
             as emulations.
 
             the screen size.
 
        ESCDELAY
             the screen size.
 
        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
             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.
 
             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
             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.
 
             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
             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.
 
             tion.
 
-       HOME Tells <STRONG>ncurses</STRONG> where your home directory is.  That  is
+       HOME Tells  <STRONG>ncurses</STRONG> where your home directory is.  That is
             where  it  may  read  and  write  auxiliary  terminal
             descriptions:
 
             where  it  may  read  and  write  auxiliary  terminal
             descriptions:
 
             $HOME/.terminfo
 
        LINES
             $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
 
        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
+            the order of buttons on the mouse.   OS/2  numbers  a
             3-button mouse inconsistently from other platforms:
 
             1 = left
             3-button mouse inconsistently from other platforms:
 
             1 = left
             3 = middle.
 
             This symbol lets you customize the mouse.  The symbol
             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,  <STRONG>ncurses</STRONG>  uses
+            must be three numeric digits 1-3 in any order,  e.g.,
+            123  or  321.   If  it is not specified, <STRONG>ncurses</STRONG> uses
             132.
 
        NCURSES_ASSUMED_COLORS
             132.
 
        NCURSES_ASSUMED_COLORS
-            Override  the  compiled-in assumption that the termi-
-            nal's  default   colors   are   white-on-black   (see
-            <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>).   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 <STRONG>max_col-</STRONG>
-            <STRONG>ors</STRONG> value is allowed.
+            Override the compiled-in assumption that  the  termi-
+            nal's   default   colors   are   white-on-black  (see
+            <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>).  You may set the foreground  and
+            background  color  values with this environment vari-
+            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 <STRONG>max_colors</STRONG> 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_NO_HARD_TABS
-            <STRONG>Ncurses</STRONG> may use tabs as part of the  cursor  movement
-            optimization.   In  some  cases, your terminal driver
-            may not handle these properly.  Set this  environment
+            <STRONG>Ncurses</STRONG>  may  use tabs as part of the cursor movement
+            optimization.  In some cases,  your  terminal  driver
+            may  not handle these properly.  Set this environment
             variable to disable the feature.  You can also adjust
             your <STRONG>stty</STRONG> settings to avoid the problem.
 
        NCURSES_NO_MAGIC_COOKIES
             Some  terminals  use  a  magic-cookie  feature  which
             variable to disable the feature.  You can also adjust
             your <STRONG>stty</STRONG> settings to avoid the problem.
 
        NCURSES_NO_MAGIC_COOKIES
             Some  terminals  use  a  magic-cookie  feature  which
-            requires  special  handling  to make highlighting and
-            other video attributes  display  properly.   You  can
-            suppress  the  highlighting entirely for these termi-
+            requires special handling to  make  highlighting  and
+            other  video  attributes  display  properly.  You can
+            suppress the highlighting entirely for  these  termi-
             nals by setting this environment variable.
 
        NCURSES_NO_PADDING
             nals 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  environment  and use curses-based applica-
-            tions.  Terminal emulators can duplicate all  of  the
+            Most  of  the  terminal  descriptions in the terminfo
+            database are written for real  "hardware"  terminals.
+            Many  people  use  terminal  emulators which run in a
+            windowing environment and use  curses-based  applica-
+            tions.   Terminal  emulators can duplicate all of the
             important aspects of a hardware terminal, but they do
             important aspects of a hardware terminal, but they do
-            not have the same limitations.  The chief  limitation
-            of  a  hardware  terminal from the standpoint of your
+            not  have the same limitations.  The chief limitation
+            of a hardware terminal from the  standpoint  of  your
             application is the management of dataflow, i.e., tim-
             ing.  Unless a hardware terminal is interfaced into a
             application is the management of dataflow, i.e., tim-
             ing.  Unless a hardware terminal is interfaced into a
-            terminal concentrator (which does flow  control),  it
-            (or  your application) must manage dataflow, prevent-
-            ing overruns.  The  cheapest  solution  (no  hardware
+            terminal  concentrator  (which does flow control), it
+            (or your application) must manage dataflow,  prevent-
+            ing  overruns.   The  cheapest  solution (no hardware
             cost) is for your program to do this by pausing after
             cost) is for your program to do this by pausing after
-            operations that the terminal  does  slowly,  such  as
+            operations  that  the  terminal  does slowly, such as
             clearing the display.
 
             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
+            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.
 
             performance penalty.
 
-            Set the NCURSES_NO_PADDING symbol to disable all  but
-            mandatory  padding.   Mandatory  padding is used as a
+            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 <EM>flash</EM>.
 
        NCURSES_NO_SETBUF
             part of special control sequences such as <EM>flash</EM>.
 
        NCURSES_NO_SETBUF
-            Normally <STRONG>ncurses</STRONG> enables buffered output during  ter-
-            minal  initialization.   This  is  done  (as  in SVr4
-            curses) for performance reasons.   For  testing  pur-
+            Normally  <STRONG>ncurses</STRONG> enables buffered output during ter-
+            minal initialization.   This  is  done  (as  in  SVr4
+            curses)  for  performance  reasons.  For testing pur-
             poses, both of <STRONG>ncurses</STRONG> and certain applications, this
             feature    is    made    optional.     Setting    the
             NCURSES_NO_SETBUF variable disables output buffering,
             poses, both of <STRONG>ncurses</STRONG> 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
+            leaving  the  output  in  the  original (usually line
             buffered) mode.
 
        NCURSES_NO_UTF8_ACS
             During initialization, the <STRONG>ncurses</STRONG> library checks for
             buffered) mode.
 
        NCURSES_NO_UTF8_ACS
             During initialization, the <STRONG>ncurses</STRONG> library checks for
-            special cases where VT100 line-drawing (and the  cor-
-            responding   alternate  character  set  capabilities)
-            described in the terminfo are known  to  be  missing.
-            Specifically,  when  running  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
+            special  cases where VT100 line-drawing (and the cor-
+            responding  alternate  character  set   capabilities)
+            described  in  the  terminfo are known to be missing.
+            Specifically, when running 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 the VT100 line-drawing glyphs.  That works for the
             special cases cited, and is likely to work for termi-
             nal emulators.
 
             to the VT100 line-drawing glyphs.  That works for the
             special cases cited, and is likely to work for termi-
             nal emulators.
 
-            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.
+            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".
+
+            As   an  alternative  to  the  environment  variable,
+            ncurses checks for an  extended  terminfo  capability
+            <STRONG>U8</STRONG>.   This  is a numeric capability which can be com-
+            piled using <STRONG>tic</STRONG> <STRONG>-x</STRONG>.  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 <STRONG>ncurses</STRONG> debugging  library
 
        NCURSES_TRACE
             During initialization, the <STRONG>ncurses</STRONG> debugging  library
             not  the  only way to change the list of directories.
             The complete list of directories in order follows:
 
             not  the  only way to change the list of directories.
             The complete list of directories in order follows:
 
-            -  the last directory to which <STRONG>ncurses</STRONG> wrote, if any,
-               is searched first
+            <STRONG>o</STRONG>   the last directory to  which  <STRONG>ncurses</STRONG>  wrote,  if
+                any, is searched first
 
 
-            -  the directory specified by the TERMINFO symbol
+            <STRONG>o</STRONG>   the directory specified by the TERMINFO symbol
 
 
-            -  $HOME/.terminfo
+            <STRONG>o</STRONG>   $HOME/.terminfo
 
 
-            -  directories listed in the TERMINFO_DIRS symbol
+            <STRONG>o</STRONG>   directories listed in the TERMINFO_DIRS symbol
 
 
-            -  one or more directories whose names are configured
-               and  compiled  into  the  ncurses  library,  e.g.,
-               /usr/share/terminfo
+            <STRONG>o</STRONG>   one  or  more directories whose names are config-
+                ured and compiled into the ncurses library, e.g.,
+                /usr/share/terminfo
 
        TERMINFO_DIRS
             Specifies  a list of directories to search for termi-
 
        TERMINFO_DIRS
             Specifies  a list of directories to search for termi-
 
        TERMPATH
             If TERMCAP does not hold a  file  name  then  <STRONG>ncurses</STRONG>
 
        TERMPATH
             If TERMCAP does not hold a  file  name  then  <STRONG>ncurses</STRONG>
-            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,  <STRONG>ncurses</STRONG>  looks  in  the  files
-            /etc/termcap,       /usr/share/misc/termcap       and
-            $HOME/.termcap, in that order.
+            checks  the TERMPATH symbol.  This is a list of file-
+            names separated by spaces or colons  (i.e.,  ":")  on
+            Unix, semicolons on OS/2 EMX.  If the TERMPATH symbol
+            is not set, <STRONG>ncurses</STRONG> 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),
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>  and  related  pages whose names begin "curs_"
        for detailed routine descriptions.
 <H2>SEE ALSO</H2><PRE>
        <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>  and  related  pages whose names begin "curs_"
        for detailed routine descriptions.
+       <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
 
 
 </PRE>
 
 
 </PRE>
        in core and startup cycles.
 
        The <STRONG>ncurses</STRONG>  library  includes  facilities  for  capturing
        in core and startup cycles.
 
        The <STRONG>ncurses</STRONG>  library  includes  facilities  for  capturing
-       mouse  events  on certain terminals (including xterm). See
+       mouse  events on certain terminals (including xterm).  See
        the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
 
        The <STRONG>ncurses</STRONG> library includes facilities for responding  to
        the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
 
        The <STRONG>ncurses</STRONG> library includes facilities for responding  to
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        The  <STRONG>ncurses</STRONG>  library is intended to be BASE-level confor-
 </PRE>
 <H2>PORTABILITY</H2><PRE>
        The  <STRONG>ncurses</STRONG>  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.
+       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 <STRONG>ncurses</STRONG> calls) are
-       described in  <STRONG>PORTABILITY</STRONG>  sections  of  the  library  man
+       A  small  number of local differences (that is, individual
+       differences between the XSI Curses and <STRONG>ncurses</STRONG> calls)  are
+       described  in  <STRONG>PORTABILITY</STRONG>  sections  of  the  library man
        pages.
 
        pages.
 
-       The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it present
-       in SVr4.  See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page for  details.
+       This implementation also contains several extensions:
+
+       <STRONG>o</STRONG>   The routine <STRONG>has_key</STRONG> is not part of  XPG4,  nor  is  it
+           present  in  SVr4.  See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page
+           for details.
+
+       <STRONG>o</STRONG>   The routine <STRONG>slk_attr</STRONG> is not part of XPG4,  nor  is  it
+           present in SVr4.  See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> manual page for
+           details.
+
+       <STRONG>o</STRONG>   The routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mousein-</STRONG>
+           <STRONG>terval</STRONG>, and <STRONG>wenclose</STRONG> relating to mouse interfacing are
+           not part of XPG4, nor are they present in  SVr4.   See
+           the <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
+
+       <STRONG>o</STRONG>   The  routine  <STRONG>mcprint</STRONG>  was not present in any previous
+           curses implementation.  See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>  manual
+           page for details.
 
 
-       The  routine  <STRONG>slk_attr</STRONG>  is  not  part  of  XPG4, nor is it
-       present in SVr4.  See the  <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>  manual  page  for
-       details.
+       <STRONG>o</STRONG>   The  routine  <STRONG>wresize</STRONG>  is  not part of XPG4, nor is it
+           present in SVr4.  See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page  for
+           details.
 
 
-       The  routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mouseinter-</STRONG>
-       <STRONG>val</STRONG>, and <STRONG>wenclose</STRONG> relating to mouse  interfacing  are  not
-       part  of  XPG4,  nor  are  they  present in SVr4.  See the
-       <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> manual page for details.
+       <STRONG>o</STRONG>   The  WINDOW structure's internal details can be hidden
+           from application programs.   See  <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>  for
+           the discussion of <STRONG>is_scrollok</STRONG>, etc.
 
 
-       The routine <STRONG>mcprint</STRONG> was not present in any previous curses
-       implementation.   See  the  <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for
-       details.
+       <STRONG>o</STRONG>   This implementation can be configured to provide rudi-
+           mentary support for multi-threaded applications.   See
+           <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> for details.
 
 
-       The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it present
-       in SVr4.  See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for details.
+       <STRONG>o</STRONG>   This  implementation can also be configured to provide
+           a set of functions which improve the ability to manage
+           multiple  screens.  See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
 
 
-       In  historic curses versions, delays embedded in the capa-
+       In historic curses versions, delays embedded in the  capa-
        bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding
        bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> 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.
+       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.
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
 
 
 </PRE>
 <H2>NOTES</H2><PRE>
-       The  header  file  <STRONG>&lt;curses.h&gt;</STRONG>  automatically  includes the
+       The header  file  <STRONG>&lt;curses.h&gt;</STRONG>  automatically  includes  the
        header files <STRONG>&lt;stdio.h&gt;</STRONG> and <STRONG>&lt;unctrl.h&gt;</STRONG>.
 
        header files <STRONG>&lt;stdio.h&gt;</STRONG> and <STRONG>&lt;unctrl.h&gt;</STRONG>.
 
-       If standard output from a <STRONG>ncurses</STRONG> program  is  re-directed
-       to  something  which  is not a tty, screen updates will be
+       If  standard  output from a <STRONG>ncurses</STRONG> 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&amp;T System V Release 3 curses.
 
 
 </PRE>
 <H2>AUTHORS</H2><PRE>
        directed to standard error.  This was an undocumented fea-
        ture of AT&amp;T System V Release 3 curses.
 
 
 </PRE>
 <H2>AUTHORS</H2><PRE>
-       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.
 
 
        Based on pcurses by Pavel Curtis.