]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/ncurses.3x.html
ncurses 6.4 - patch 20240323
[ncurses.git] / doc / html / man / ncurses.3x.html
index 5a1ac23919121d4745dc582eba1a15f8ff0d64dc..330628ed92e770b9db38586389582d53aebea157 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: ncurses.3x,v 1.200 2024/02/24 20:03:50 tom Exp @
+  * @Id: ncurses.3x,v 1.204 2024/03/23 20:42:29 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>ncurses 3x 2024-02-24 ncurses 6.4 Library calls</TITLE>
+<TITLE>ncurses 3x 2024-03-23 ncurses 6.4 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">ncurses 3x 2024-02-24 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">ncurses 3x 2024-03-23 ncurses 6.4 Library calls</H1>
 <PRE>
 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>                      Library calls                     <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
 
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-       The  <EM>ncurses</EM>  library  routines  give  the  user a terminal-independent
-       method of updating  character  screens  with  reasonable  optimization.
-       This  implementation  is  "new  curses"  (<EM>ncurses</EM>)  and is the approved
-       replacement for 4.4BSD classic curses,  which  has  been  discontinued.
-       This describes <EM>ncurses</EM> version 6.4 (patch 20240302).
-
-       The  <EM>ncurses</EM>  library emulates the curses library of System V Release 4
-       Unix ("SVr4"), and XPG4 (X/Open Portability Guide) curses  (also  known
-       as  XSI  curses).   XSI  stands for X/Open System Interfaces Extension.
-       The <EM>ncurses</EM> library is freely redistributable in source form.
+       The  "new  curses" library offers the programmer a terminal-independent
+       means of reading keyboard and mouse input and  updating  character-cell
+       terminals  with  output  optimized to minimize screen updates.  <EM>ncurses</EM>
+       replaces the <EM>curses</EM> libraries from System V Release 4 Unix ("SVr4") and
+       4.4BSD  Unix,  the  development  of  which  ceased  in the 1990s.  This
+       describes <EM>ncurses</EM> version 6.4 (patch 20240323).
+
+       <EM>ncurses</EM> permits control of the terminal screen's contents;  abstraction
+       and  subdivision thereof with <EM>windows</EM> and <EM>pads</EM>; the reading of terminal
+       input; control of terminal input and output options; environment  query
+       routines;  color  manipulation;  the  definition  and use of <EM>soft</EM> <EM>label</EM>
+       keys; <EM>terminfo</EM> capabilities; a  <EM>termcap</EM>  compatibility  interface;  and
+       access to low-level terminal-manipulation routines.
+
+       <EM>ncurses</EM>  implements  the  standard interface described by X/Open Curses
+       Issue 7.  In  many  behavioral  details  not  standardized  by  X/Open,
+       <EM>ncurses</EM>  emulates  the  <EM>curses</EM>  library  of  SVr4 and provides numerous
+       useful extensions.
 
        <EM>ncurses</EM> man pages employ several sections to clarify matters  of  usage
        and interoperability with other <EM>curses</EM> implementations.
        directory)  that  describe  curses  actions.   See  section  "ALTERNATE
        CONFIGURATIONS" below.
 
-       The  <EM>ncurses</EM>  package  supports:  overall  screen,   window   and   pad
-       manipulation;  output  to  windows  and  pads;  reading terminal input;
-       control over terminal and <STRONG>curses</STRONG> input and output options;  environment
-       query  routines;  color  manipulation; use of soft label keys; terminfo
-       capabilities; and access to low-level terminal-manipulation routines.
-
 
 </PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
        The library uses the locale which the calling program has  initialized.
        Among those, the most basic are <STRONG><A HREF="curs_move.3x.html">move(3x)</A></STRONG> and <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>: these place the
        cursor and write a character  to  <STRONG>stdscr</STRONG>,  respectively.   As  a  rule,
        window-addressing  functions  feature  names  prefixed (or infixed, see
-       below) with "w"; these allow the user to specify a pointer to a <EM>WINDOW.</EM>
+       below) with "w"; these allow the user to specify a pointer to a <EM>WINDOW</EM>.
        Counterparts  not  thus  prefixed  (or infixed) affect <STRONG>stdscr</STRONG>.  Because
        moving the cursor prior to  another  operation  is  so  common,  <EM>curses</EM>
        generally  also provides functions with a "mv" prefix as a convenience.
 
        <EM>ncurses</EM>   is the library in its "non-wide" configuration, handling only
                  eight-bit  characters.   It  stores a character combined with
-                 attributes in a <EM>chtype</EM> datum, which is often an alias of <EM>int.</EM>
+                 attributes in a <EM>chtype</EM> datum, which is often an alias of <EM>int</EM>.
 
                  Attributes alone (with no  corresponding  character)  can  be
                  stored  in  variables  of  <EM>chtype</EM>  or <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> type.  In either
                  case, they are represented as an integral bit mask.
 
-                 Each cell of a <EM>WINDOW</EM> is stored as a <EM>chtype.</EM>
+                 Each cell of a <EM>WINDOW</EM> is stored as a <EM>chtype</EM>.
 
        <EM>ncursesw</EM>  is the library in its  "wide"  configuration,  which  handles
                  character encodings requiring a larger data type than <EM>char</EM> (a
                  calls  using  additional  data  types  that  can  store  such
                  <EM>multibyte</EM> characters.
 
-                 <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>  corresponds to the non-wide configuration's  <EM>chtype.</EM>
+                 <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>  corresponds to the non-wide configuration's  <EM>chtype</EM>.
                           It  always  a structure type, because it stores more
                           data than fits into an integral type.   A  character
-                          code  may  not  be  representable  as  a  <EM>char,</EM>  and
+                          code  may  not  be  representable  as  a  <EM>char</EM>,  and
                           moreover more than one character may occupy  a  cell
                           (as  with  accent marks and other diacritics).  Each
-                          character is of type <EM>wchar</EM><STRONG>_</STRONG><EM>t;</EM>  a  complex  character
+                          character is of type <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>;  a  complex  character
                           contains one spacing character and zero or more non-
                           spacing  characters  (see  below).   Attributes  and
                           color  data  are  stored  in  separate fields of the
-                          structure, not combined as in <EM>chtype.</EM>
+                          structure, not combined as in <EM>chtype</EM>.
 
-                 Each cell of a <EM>WINDOW</EM> is stored as a <EM>cchar</EM><STRONG>_</STRONG><EM>t.</EM>
+                 Each cell of a <EM>WINDOW</EM> is stored as a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>.
 
                  The  <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG>  and  <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG>  functions   store   and
                  retrieve the data from a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> structure.  The wide library
                  API of <EM>ncurses</EM> depends on two data types standardized by  ISO
                  C95.
 
-                 <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>  stores  a wide character.  Like <EM>chtype,</EM> it may be an
-                          alias of <EM>int.</EM>  Depending on the character  encoding,
-                          a  wide  character  may  be <EM>spacing,</EM> meaning that it
+                 <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>  stores  a wide character.  Like <EM>chtype</EM>, it may be an
+                          alias of <EM>int</EM>.  Depending on the character  encoding,
+                          a  wide  character  may  be <EM>spacing</EM>, meaning that it
                           occupies a character cell by  itself  and  typically
-                          accompanies   cursor  advancement,  or  <EM>non-spacing,</EM>
+                          accompanies   cursor  advancement,  or  <EM>non-spacing</EM>,
                           meaning that it occupies the same cell as a  spacing
                           character,  is often regarded as a "modifier" of the
                           base glyph with which  it  combines,  and  typically
                     ---------------------------------------------
                     COLOR_PAIR               <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                     PAIR_NUMBER              <STRONG><A HREF="curs_color.3x.html">curs_color(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>
                     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>
                     exit_curses              <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
-
                     exit_terminfo            <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
                     extended_color_content   <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
                     extended_pair_content    <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
                     extended_slk_color       <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
                     filter                   <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+
                     find_pair                <STRONG><A HREF="new_pair.3x.html">new_pair(3x)</A></STRONG>*
                     flash                    <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
                     flushinp                 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
                     insdelln                 <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
                     insertln                 <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
                     insnstr                  <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
-
                     insstr                   <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(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>
                     is_cbreak                <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>*
                     is_cleared               <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
                     is_echo                  <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(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>*
                     mvin_wch                 <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
                     mvin_wchnstr             <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
                     mvin_wchstr              <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
-
                     mvinch                   <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
                     mvinchnstr               <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
                     mvinchstr                <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
                     mvins_wch                <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
                     mvins_wstr               <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(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>
                     nl                       <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_inopts.3x.html">curs_inopts(3x)</A></STRONG>
                     pair_content             <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                     pecho_wchar              <STRONG><A HREF="curs_pad.3x.html">curs_pad(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>
                     start_color              <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                     subpad                   <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
                     subwin                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
-
                     syncok                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                     term_attrs               <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                     termattrs                <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
                     tigetnum                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(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>
+
                     tiparm                   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                     tiparm_s                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
                     tiscan_s                 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>*
                     wbkgrnd                  <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
                     wbkgrndset               <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
                     wborder                  <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
-
                     wborder_set              <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                     wchgat                   <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
                     wclear                   <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
                     werase                   <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
                     wget_wch                 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
                     wget_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>
                     wgetdelay                <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>*
        Many different <EM>ncurses</EM> configurations are possible, determined  by  the
        options  given  to the <EM>configure</EM> script when building the library.  Run
        the script with the <STRONG>--help</STRONG> option to peruse them all.   A  few  are  of
-       particular significance to the application developer employing <EM>ncurses.</EM>
+       particular significance to the application developer employing <EM>ncurses</EM>.
 
        --disable-overwrite
             The standard include for <EM>ncurses</EM> is as noted in <STRONG>SYNOPSIS</STRONG>:
 
 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
        <EM>ncurses</EM>  enables  an  application  to  capture  mouse events on certain
-       terminals, including <EM>xterm;</EM> see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>.
+       terminals, including <EM>xterm</EM>; see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>.
 
        <EM>ncurses</EM> provides a means of responding to window  resizing  events,  as
-       when  running in a GUI terminal emulator application such as <EM>xterm;</EM> see
+       when  running in a GUI terminal emulator application such as <EM>xterm</EM>; see
        <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
 
        <EM>ncurses</EM> allows an application to query the terminal for the presence of
 
        <STRONG>o</STRONG>   The compiler option <STRONG>-DUSE_GETCAP</STRONG> causes the library to fall back to
            reading <EM>/etc/termcap</EM> if the terminal setup code cannot find a <EM>term-</EM>
-           <EM>info</EM> entry corresponding to <EM>TERM.</EM>   Use  of  this  feature  is  not
+           <EM>info</EM> entry corresponding to <EM>TERM</EM>.   Use  of  this  feature  is  not
            recommended,  as it essentially includes an entire <EM>termcap</EM> compiler
            in the <EM>ncurses</EM>  startup  code,  at  a  cost  in  memory  usage  and
            application launch latency.
 
 
 
-ncurses 6.4                       2024-02-24                       <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+ncurses 6.4                       2024-03-23                       <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>