]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/ncurses.3x.html
ncurses 5.9 - patch 20120114
[ncurses.git] / doc / html / man / ncurses.3x.html
index 8b1dee843247a8907e220114fabf8401d17d93d8..530b293ac1c87f23be19f7ced997adcf50ff9ced 100644 (file)
@@ -2,7 +2,7 @@
 <!-- 
   * t
   ****************************************************************************
-  * Copyright (c) 1998-2007,2008 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            *
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: ncurses.3x,v 1.91 2008/10/11 20:43:11 tom Exp @
+  * @Id: ncurses.3x,v 1.106 2011/12/17 23:19:59 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 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.
+       describes <STRONG>ncurses</STRONG> version 5.9 (patch 20120107).
+
+       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
 
               ncursesw
                    the so-called "wide"  library,  which  handles
-                   multibyte   characters  (See  the  section  on
+                   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
               --------------------------------------------
               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>*
+              _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>*
               _tracechar              <STRONG><A HREF="curs_trace.3x.html">curs_trace(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>
               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>
               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>*
               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>
               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>
               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>
               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>
               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>
               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>*
               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>
               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>
        pletion, unless otherwise noted in  the  routine  descrip-
        tions.
 
-       All  macros  return  the  value  of  the <STRONG>w</STRONG> version, except
+       As a general rule, routines check for null pointers passed
+       as parameters, and handle this as an error.
+
+       All macros return the  value  of  the  <STRONG>w</STRONG>  version,  except
        <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>.  The
-       return  values  of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
+       return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>,  <STRONG>getyx</STRONG>,  <STRONG>getbegyx</STRONG>,
        and <STRONG>getmaxyx</STRONG> are undefined (i.e., these should not be used
        as the right-hand side of assignment statements).
 
        important ones have been already discussed in detail.
 
        BAUDRATE
-            The  debugging library checks this environment symbol
+            The debugging library checks this environment  symbol
             when the application has redirected output to a file.
-            The  symbol's numeric value is used for the baudrate.
+            The symbol's numeric value is used for the  baudrate.
             If no value is found, <STRONG>ncurses</STRONG> uses 9600.  This allows
-            testers  to construct repeatable test-cases that take
+            testers to construct repeatable test-cases that  take
             into account costs that depend on baudrate.
 
        CC   When set, change occurrences of the command_character
-            (i.e.,  the  <STRONG>cmdch</STRONG> capability) of the loaded terminfo
-            entries to the value of this symbol.  Very  few  ter-
+            (i.e., the <STRONG>cmdch</STRONG> capability) of the  loaded  terminfo
+            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.
             Applications running in a windowing environment  usu-
             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-
-            nals by setting this environment variable.
+            suppress   the   highlighting   entirely   for  these
+            terminals by setting this environment variable.
 
        NCURSES_NO_PADDING
             Most of the terminal  descriptions  in  the  terminfo
             database  are  written for real "hardware" terminals.
             Many people use terminal emulators  which  run  in  a
-            windowing    environment    and    use   curses-based
-            applications.  Terminal emulators can  duplicate  all
-            of  the important aspects of a hardware terminal, but
-            they do not have the  same  limitations.   The  chief
-            limitation of a hardware terminal from the standpoint
-            of your application is the  management  of  dataflow,
-            i.e.,  timing.   Unless a hardware terminal is inter-
-            faced into a terminal concentrator (which  does  flow
-            control),   it  (or  your  application)  must  manage
-            dataflow, preventing overruns.  The cheapest solution
-            (no  hardware cost) is for your program to do this by
-            pausing  after  operations  that  the  terminal  does
-            slowly, such as clearing the display.
+            windowing  environment  and use curses-based applica-
+            tions.  Terminal emulators can duplicate all  of  the
+            important aspects of a hardware terminal, but they do
+            not have the same limitations.  The chief  limitation
+            of  a  hardware  terminal from the standpoint of your
+            application is the management of dataflow, i.e., tim-
+            ing.  Unless a hardware terminal is interfaced into a
+            terminal concentrator (which does flow  control),  it
+            (or  your application) must manage dataflow, prevent-
+            ing overruns.  The  cheapest  solution  (no  hardware
+            cost) is for your program to do this by pausing after
+            operations that the terminal  does  slowly,  such  as
+            clearing the display.
 
             As  a  result,  many terminal descriptions (including
             the vt100) have delay times embedded.  You  may  wish
 
             When  setting  this  variable, you should set it to a
             nonzero value.  Setting it to zero (or to  a  nonnum-
-            ber) disables the special check for Linux and screen.
+            ber)  disables  the  special  check  for  "linux" and
+            "screen".
+
+            As  an  alternative  to  the  environment   variable,
+            ncurses  checks  for  an extended terminfo capability
+            <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
-            checks  the  NCURSES_TRACE symbol.  If it is defined,
+            During  initialization, the <STRONG>ncurses</STRONG> debugging library
+            checks the NCURSES_TRACE symbol.  If it  is  defined,
             to a numeric value, <STRONG>ncurses</STRONG> calls the <STRONG>trace</STRONG> function,
             using that value as the argument.
 
-            The  argument  values, which are defined in <STRONG>curses.h</STRONG>,
-            provide several types of information.   When  running
-            with  traces enabled, your application will write the
+            The argument values, which are defined  in  <STRONG>curses.h</STRONG>,
+            provide  several  types of information.  When running
+            with traces enabled, your application will write  the
             file <STRONG>trace</STRONG> to the current directory.
 
-       TERM Denotes your terminal type.  Each  terminal  type  is
+       TERM Denotes  your  terminal  type.  Each terminal type is
             distinct, though many are similar.
 
        TERMCAP
             If the <STRONG>ncurses</STRONG> library has been configured with <EM>term-</EM>
-            <EM>cap</EM> support, <STRONG>ncurses</STRONG>  will  check  for  a  terminal's
+            <EM>cap</EM>  support,  <STRONG>ncurses</STRONG>  will  check  for a terminal's
             description in termcap form if it is not available in
             the terminfo database.
 
-            The  TERMCAP  symbol  contains  either   a   terminal
-            description  (with  newlines stripped out), or a file
-            name telling where the  information  denoted  by  the
-            TERM  symbol  exists.   In  either  case,  setting it
-            directs <STRONG>ncurses</STRONG> to ignore the usual  place  for  this
+            The   TERMCAP   symbol  contains  either  a  terminal
+            description (with newlines stripped out), or  a  file
+            name  telling  where  the  information denoted by the
+            TERM symbol  exists.   In  either  case,  setting  it
+            directs  <STRONG>ncurses</STRONG>  to  ignore the usual place for this
             information, e.g., /etc/termcap.
 
        TERMINFO
             Overrides the directory in which <STRONG>ncurses</STRONG> searches for
             your terminal description.  This is the simplest, but
-            not  the  only way to change the list of directories.
+            not the only way to change the list  of  directories.
             The complete list of directories in order follows:
 
-            -  the last directory to which <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-
-            nal descriptions.  The list is  separated  by  colons
-            (i.e.,  ":") on Unix, semicolons on OS/2 EMX.  All of
+            Specifies a list of directories to search for  termi-
+            nal  descriptions.   The  list is separated by colons
+            (i.e., ":") on Unix, semicolons on OS/2 EMX.  All  of
             the terminal descriptions are in terminfo form, which
-            makes  a  subdirectory  named for the first letter of
+            makes a subdirectory named for the  first  letter  of
             the terminal names therein.
 
+            If <STRONG>ncurses</STRONG> is built with a hashed database, then each
+            entry in this list can also be the path of the corre-
+            sponding database file.
+
+            If  <STRONG>ncurses</STRONG> is built with a support for reading term-
+            cap files directly, then an entry in this list may be
+            the path of a termcap file.
+
        TERMPATH
-            If TERMCAP does not hold a  file  name  then  <STRONG>ncurses</STRONG>
-            checks  the TERMPATH symbol.  This is a list of file-
-            names separated by spaces or colons  (i.e.,  ":")  on
+            If  TERMCAP  does  not  hold a file name then <STRONG>ncurses</STRONG>
+            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
+            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),
-       or if the application uses setuid or  setgid  permissions:
+       The  library  may be configured to disregard the following
+       variables when the current user is the  superuser  (root),
+       or  if  the application uses setuid or setgid permissions:
        $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
 
 
 </PRE>
 <H2>ALTERNATE CONFIGURATIONS</H2><PRE>
-       Several  different  configurations are possible, depending
-       on  the  configure  script  options  used  when   building
-       <STRONG>ncurses</STRONG>.   There  are a few main options whose effects are
+       Several different configurations are  possible,  depending
+       on   the  configure  script  options  used  when  building
+       <STRONG>ncurses</STRONG>.  There are a few main options whose  effects  are
        visible to the applications developer using <STRONG>ncurses</STRONG>:
 
        --disable-overwrite
-            The standard include for <STRONG>ncurses</STRONG> is as noted in  <STRONG>SYN-</STRONG>
+            The  standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYN-</STRONG>
             <STRONG>OPSIS</STRONG>:
 
             <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
-            This  option is used to avoid filename conflicts when
-            <STRONG>ncurses</STRONG> is not the main implementation of  curses  of
-            the  computer.   If  <STRONG>ncurses</STRONG>  is  installed disabling
-            overwrite, it puts its  headers  in  a  subdirectory,
+            This option is used to avoid filename conflicts  when
+            <STRONG>ncurses</STRONG>  is  not the main implementation of curses of
+            the computer.   If  <STRONG>ncurses</STRONG>  is  installed  disabling
+            overwrite,  it  puts  its  headers in a subdirectory,
             e.g.,
 
             <STRONG>#include</STRONG> <STRONG>&lt;ncurses/curses.h&gt;</STRONG>
 
-            It  also  omits a symbolic link which would allow you
+            It also omits a symbolic link which would  allow  you
             to use <STRONG>-lcurses</STRONG> to build executables.
 
        --enable-widec
-            The configure script renames the library and (if  the
-            <STRONG>--disable-overwrite</STRONG>  option  is used) puts the header
+            The  configure script renames the library and (if the
+            <STRONG>--disable-overwrite</STRONG> option is used) puts  the  header
             files  in  a  different  subdirectory.   All  of  the
-            library  names  have  a  "w"  appended to them, i.e.,
+            library names have a  "w"  appended  to  them,  i.e.,
             instead of
 
             <STRONG>-lncurses</STRONG>
             <STRONG>-lncursesw</STRONG>
 
             You must also define <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> when com-
-            piling  for  the  wide-character  library  to use the
-            extended (wide-character)  functions.   The  <STRONG>curses.h</STRONG>
-            file   which  is  installed  for  the  wide-character
-            library is designed to be compatible with the  normal
+            piling for the  wide-character  library  to  use  the
+            extended  (wide-character)  functions.   The <STRONG>curses.h</STRONG>
+            file  which  is  installed  for  the   wide-character
+            library  is designed to be compatible with the normal
             library's header.  Only the size of the <STRONG>WINDOW</STRONG> struc-
-            ture differs, and very few applications require  more
-            than  a  pointer  to  <STRONG>WINDOW</STRONG>s.   If  the  headers are
-            installed  allowing  overwrite,  the   wide-character
-            library's  headers should be installed last, to allow
-            applications to be built using  either  library  from
+            ture  differs, and very few applications require more
+            than a  pointer  to  <STRONG>WINDOW</STRONG>s.   If  the  headers  are
+            installed   allowing  overwrite,  the  wide-character
+            library's headers should be installed last, to  allow
+            applications  to  be  built using either library from
             the same set of headers.
 
        --with-shared
        --with-debug
 
        --with-profile
-            The  shared  and normal (static) library names differ
-            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>.
+            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>.
 
        --with-trace
-            The  <STRONG>trace</STRONG>  function  normally  resides  in the debug
+            The <STRONG>trace</STRONG> function  normally  resides  in  the  debug
             library, but it is sometimes useful to configure this
-            in  the  shared  library.   Configure  scripts should
+            in the  shared  library.   Configure  scripts  should
             check for the function's existence rather than assum-
             ing it is always in the debug library.
 
 </PRE>
 <H2>FILES</H2><PRE>
        /usr/share/tabset
-            directory  containing  initialization  files  for the
+            directory containing  initialization  files  for  the
             terminal capability database /usr/share/terminfo ter-
             minal capability database
 
 
 </PRE>
 <H2>SEE ALSO</H2><PRE>
-       <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>  and  related  pages whose names begin "curs_"
+       <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>
        The  <STRONG>ncurses</STRONG>  library  can  be  compiled  with  an  option
        (<STRONG>-DUSE_GETCAP</STRONG>) that falls back to the old-style /etc/term-
        cap file if the terminal setup code cannot find a terminfo
-       entry  corresponding  to <STRONG>TERM</STRONG>.  Use of this feature is not
-       recommended, as it essentially includes an entire  termcap
-       compiler  in the <STRONG>ncurses</STRONG> startup code, at significant cost
+       entry corresponding to <STRONG>TERM</STRONG>.  Use of this feature  is  not
+       recommended,  as it essentially includes an entire termcap
+       compiler in the <STRONG>ncurses</STRONG> startup code, at significant  cost
        in core and startup cycles.
 
-       The <STRONG>ncurses</STRONG>  library  includes  facilities  for  capturing
-       mouse  events on certain terminals (including xterm).  See
+       The  <STRONG>ncurses</STRONG>  library  includes  facilities  for capturing
+       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
-       window  resizing  events,  e.g., when running in an xterm.
-       See the <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>  manual  pages  for
-       details.   In addition, the library may be configured with
+       The  <STRONG>ncurses</STRONG> library includes facilities for responding to
+       window resizing events, e.g., when running  in  an  xterm.
+       See  the  <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>  and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual pages for
+       details.  In addition, the library may be configured  with
        a SIGWINCH handler.
 
-       The <STRONG>ncurses</STRONG> library extends the fixed set of function  key
-       capabilities  of  terminals  by  allowing  the application
-       designer to define additional key  sequences  at  runtime.
+       The  <STRONG>ncurses</STRONG> library extends the fixed set of function key
+       capabilities of  terminals  by  allowing  the  application
+       designer  to  define  additional key sequences at runtime.
        See the <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> man-
        ual pages for details.
 
        The <STRONG>ncurses</STRONG> library can exploit the capabilities of termi-
-       nals  which  implement the ISO-6429 SGR 39 and SGR 49 con-
+       nals which implement the ISO-6429 SGR 39 and SGR  49  con-
        trols, which allow an application to reset the terminal to
-       its  original  foreground and background colors.  From the
-       users' perspective, the application is able to  draw  col-
-       ored  text  on  a  background  whose color is set indepen-
-       dently, providing better  control  over  color  contrasts.
+       its original foreground and background colors.   From  the
+       users'  perspective,  the application is able to draw col-
+       ored text on a background  whose  color  is  set  indepen-
+       dently,  providing  better  control  over color contrasts.
        See the <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> manual page for details.
 
-       The  <STRONG>ncurses</STRONG>  library  includes  a  function for directing
-       application output to a printer attached to  the  terminal
+       The <STRONG>ncurses</STRONG> library  includes  a  function  for  directing
+       application  output  to a printer attached to the terminal
        device.  See the <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> manual page for details.
 
 
 </PRE>
 <H2>PORTABILITY</H2><PRE>
-       The  <STRONG>ncurses</STRONG>  library is intended to be BASE-level confor-
+       The <STRONG>ncurses</STRONG> library is intended to be  BASE-level  confor-
        mant with XSI Curses.  The EXTENDED XSI Curses functional-
        ity (including color support) is supported.
 
-       A  small  number of local differences (that is, individual
-       differences between the XSI Curses and <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.
 
+       Unlike  other  implementations, this one checks parameters
+       such as pointers to WINDOW structures to ensure  they  are
+       not  null.  The main reason for providing this behavior is
+       to guard against programmer error.  The standard interface
+       does not provide a way for the library to tell an applica-
+       tion which  of  several  possible  errors  were  detected.
+       Relying  on  this (or some other) extension will adversely
+       affect the portability of curses applications.
+
        This implementation also contains several extensions:
 
-            The routine <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>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.
 
-            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>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 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.
+       <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 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>   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>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 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 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.
+       <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-
        bilities <STRONG>cr</STRONG>, <STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding