]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/ncurses.3x.html
ncurses 5.6 - patch 20081011
[ncurses.git] / doc / html / man / ncurses.3x.html
index 321ccb23e5648ec2d4c1e5b64fb0448c66548438..8b1dee843247a8907e220114fabf8401d17d93d8 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+  * Copyright (c) 1998-2007,2008 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            *
@@ -28,7 +28,7 @@
   * 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.91 2008/10/11 20:43:11 tom Exp @
 -->
 <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
-       describes <STRONG>ncurses</STRONG> version 5.6 (patch 20061224).
-
-       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.6 (patch 20081011).
+
+       The <STRONG>ncurses</STRONG> library emulates  the  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  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
        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>
 
        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-
-       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>.
        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>).
 
        <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
               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_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>*
               _tracechar              <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>
               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>
               erasewchar              <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
               filter                  <STRONG><A HREF="curs_util.3x.html">curs_util(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>
-
               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>
+              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>
               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_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>*
               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>
               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>
               mvscanw                 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
               mvvline                 <STRONG><A HREF="curs_border.3x.html">curs_border(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>
               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>
               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>
               putwin                  <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
               qiflush                 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(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>
               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>
               tputs                   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
               trace                   <STRONG><A HREF="curs_trace.3x.html">curs_trace(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>
               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>
               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>
               whline_set              <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
               win_wch                 <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(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>
             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.
+            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
             <STRONG>Ncurses</STRONG> may use tabs as part of the  cursor  movement
             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
-            not have the same limitations.  The chief  limitation
-            of  a  hardware  terminal from the standpoint of your
-            application is the management of dataflow, i.e., tim-
-            ing.  Unless a hardware terminal is interfaced into a
-            terminal concentrator (which does flow  control),  it
-            (or  your application) must manage dataflow, prevent-
-            ing overruns.  The  cheapest  solution  (no  hardware
-            cost) is for your program to do this by pausing after
-            operations that the terminal  does  slowly,  such  as
-            clearing the display.
+            windowing    environment    and    use   curses-based
+            applications.  Terminal emulators can  duplicate  all
+            of  the important aspects of a hardware terminal, but
+            they do not have the  same  limitations.   The  chief
+            limitation of a hardware terminal from the standpoint
+            of your application is the  management  of  dataflow,
+            i.e.,  timing.   Unless a hardware terminal is inter-
+            faced into a terminal concentrator (which  does  flow
+            control),   it  (or  your  application)  must  manage
+            dataflow, preventing overruns.  The cheapest solution
+            (no  hardware cost) is for your program to do this by
+            pausing  after  operations  that  the  terminal  does
+            slowly, such as clearing the display.
 
             As  a  result,  many terminal descriptions (including
             the vt100) have delay times embedded.  You  may  wish
 
        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),
 
        --with-profile
             The  shared  and normal (static) library names differ
-            by   their   suffixes,   e.g.,   <STRONG>libncurses.so</STRONG>    and
-            <STRONG>libncurses.a</STRONG>.   The debug and profiling libraries add
-            a "_g" and a "_p" to  the  root  names  respectively,
-            e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
+            by their  suffixes,  e.g.,  <STRONG>libncurses.so</STRONG>  and  <STRONG>libn-</STRONG>
+            <STRONG>curses.a</STRONG>.   The  debug  and profiling libraries add a
+            "_g" and a "_p" to the root names respectively, e.g.,
+            <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>.
 
        --with-trace
             The  <STRONG>trace</STRONG>  function  normally  resides  in the debug
        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
 </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.
 
-       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:
+
+            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.
+
+            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.
 
-       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.
+            The routines <STRONG>getmouse</STRONG>,  <STRONG>mousemask</STRONG>,  <STRONG>ungetmouse</STRONG>,  <STRONG>mou-</STRONG>
+            <STRONG>seinterval</STRONG>,  and <STRONG>wenclose</STRONG> relating to mouse interfac-
+            ing 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.
 
-       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.
+            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>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>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 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 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.
 
-       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
-       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>
-       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>.
 
-       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>
-       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.