]> ncurses.scripts.mit.edu Git - ncurses.git/commitdiff
ncurses 6.5 - patch 20240511
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 12 May 2024 00:16:58 +0000 (00:16 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 12 May 2024 00:16:58 +0000 (00:16 +0000)
+ improve formatting/style of manpages (patches by Branden Robinson).
+ limit value from ESCDELAY environment variable to 30 seconds, like
  other delay limits.
+ limit values from LINES and COLUMNS environment variables to 512
  (report by Miroslav Lichvar).

72 files changed:
NEWS
VERSION
dist.mk
doc/html/man/curs_add_wch.3x.html
doc/html/man/curs_add_wchstr.3x.html
doc/html/man/curs_addch.3x.html
doc/html/man/curs_addchstr.3x.html
doc/html/man/curs_attr.3x.html
doc/html/man/curs_delch.3x.html
doc/html/man/curs_get_wch.3x.html
doc/html/man/curs_getch.3x.html
doc/html/man/curs_getstr.3x.html
doc/html/man/curs_getyx.3x.html
doc/html/man/curs_inch.3x.html
doc/html/man/curs_mouse.3x.html
doc/html/man/curs_outopts.3x.html
doc/html/man/curs_sp_funcs.3x.html
doc/html/man/curs_termattrs.3x.html
doc/html/man/curs_util.3x.html
doc/html/man/infocmp.1m.html
doc/html/man/infotocap.1m.html
doc/html/man/ncurses.3x.html
doc/html/man/ncursesw6-config.1.html
doc/html/man/term.5.html
doc/html/man/term.7.html
doc/html/man/terminfo.5.html
doc/html/man/tic.1m.html
doc/html/man/toe.1m.html
doc/html/man/tput.1.html
doc/html/man/tset.1.html
man/MKncu_config.in
man/curs_add_wch.3x
man/curs_add_wchstr.3x
man/curs_addch.3x
man/curs_addchstr.3x
man/curs_attr.3x
man/curs_delch.3x
man/curs_get_wch.3x
man/curs_getch.3x
man/curs_getstr.3x
man/curs_getyx.3x
man/curs_inch.3x
man/curs_mouse.3x
man/curs_outopts.3x
man/curs_sp_funcs.3x
man/curs_termattrs.3x
man/curs_util.3x
man/infocmp.1m
man/infotocap.1m
man/man_db.renames.in
man/manhtml.aliases
man/manhtml.externs
man/ncurses.3x
man/term.5
man/term.7
man/terminfo.head
man/terminfo.tail
man/tic.1m
man/toe.1m
man/tput.1
man/tset.1
ncurses/base/lib_newterm.c
ncurses/curses.priv.h
ncurses/tinfo/lib_setup.c
ncurses/tinfo/tinfo_driver.c
package/debian-mingw/changelog
package/debian-mingw64/changelog
package/debian/changelog
package/mingw-ncurses.nsi
package/mingw-ncurses.spec
package/ncurses.spec
package/ncursest.spec

diff --git a/NEWS b/NEWS
index 144f70b40120e24e89720841e0164d817bbd78b0..99f97ee0eeca1a278b705efa22e8cbc739472368 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -26,7 +26,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.4117 2024/05/04 18:43:01 tom Exp $
+-- $Id: NEWS,v 1.4119 2024/05/11 21:38:14 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -46,6 +46,13 @@ See the AUTHORS file for the corresponding full names.
 Changes through 1.9.9e did not credit all contributions;
 it is not possible to add this information.
 
+20240511
+       + improve formatting/style of manpages (patches by Branden Robinson).
+       + limit value from ESCDELAY environment variable to 30 seconds, like
+         other delay limits.
+       + limit values from LINES and COLUMNS environment variables to 512
+         (report by Miroslav Lichvar).
+
 20240504
        + update ncurses/wcwidth.c, for MinGW ports, from xterm.
        + trim obsolete comment about tack from INSTALL.
diff --git a/VERSION b/VERSION
index b98d7203f44caba7d3a452012f3eaa36dd2e1f25..2e2f7c02f829a8eb59c431f899029b817fb61763 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5:0:10 6.5     20240504
+5:0:10 6.5     20240511
diff --git a/dist.mk b/dist.mk
index 78d06b88ae6f1ceea1d2df3b7680cc09518bfdaa..97db5c372fa7ba64fe12457491a90c0ed6e656fa 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -26,7 +26,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.1611 2024/05/04 10:21:09 tom Exp $
+# $Id: dist.mk,v 1.1612 2024/05/11 10:20:08 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
@@ -38,7 +38,7 @@ SHELL = /bin/sh
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 6
 NCURSES_MINOR = 5
-NCURSES_PATCH = 20240504
+NCURSES_PATCH = 20240511
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index 64c645d5ad022464fe8ca6b46cd448f04d758849..a7dee58c93d89beb36793260b181be5ccb51ef3c 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_add_wch.3x,v 1.62 2024/04/20 21:20:07 tom Exp @
+  * @Id: curs_add_wch.3x,v 1.63 2024/05/11 21:31:45 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>curs_add_wch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_add_wch 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_add_wch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_add_wch 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>                 Library calls                <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
 
@@ -49,7 +49,7 @@
 
 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
        <STRONG>add_wch</STRONG>, <STRONG>wadd_wch</STRONG>, <STRONG>mvadd_wch</STRONG>, <STRONG>mvwadd_wch</STRONG>, <STRONG>echo_wchar</STRONG>, <STRONG>wecho_wchar</STRONG> - add
-       a <EM>curses</EM> complex character to a window and advance the cursor
+       a <EM>curses</EM> complex character to a window, possibly advancing the cursor
 
 
 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
 
-</PRE><H3><a name="h3-add_wch">add_wch</a></H3><PRE>
-       The <STRONG>add_wch</STRONG>, <STRONG>wadd_wch</STRONG>, <STRONG>mvadd_wch</STRONG>,  and  <STRONG>mvwadd_wch</STRONG>  functions  put  the
-       complex  character  <EM>wch</EM>  into the given window at its current position,
-       which is then advanced.  These functions perform wrapping and  special-
-       character processing as follows:
-
-       <STRONG>o</STRONG>   If  <EM>wch</EM>  refers to a spacing character, then any previous character
-           at that location is removed.  A new character specified by  <EM>wch</EM>  is
-           placed  at  that  location  with  rendition  specified by <EM>wch</EM>.  The
-           cursor then advances after this spacing character, to  prepare  for
-           writing the next character on the screen.
-
-           The newly added spacing character is the base of the active complex
-           character.  Subsequent non-spacing characters can be combined  with
-           this base until another spacing character is written to the screen,
-           or the cursor is moved, e.g., using <STRONG>wmove</STRONG>.
-
-       <STRONG>o</STRONG>   If <EM>wch</EM> refers to a non-spacing character, it  is  appended  to  the
-           active complex character, retaining the previous characters at that
-           location.  The rendition specified by <EM>wch</EM> is ignored.
-
-           The cursor is not advanced after adding  a  non-spacing  character.
-           Subsequent calls to add non-spacing characters will update the same
-           position.
+</PRE><H3><a name="h3-wadd_wch">wadd_wch</a></H3><PRE>
+       <STRONG>wadd_wch</STRONG> writes the complex character <EM>wch</EM> to the window <EM>win</EM>,  then  may
+       advance  the  cursor  position, analogously to the standard C library's
+       <STRONG>putwchar(3)</STRONG>.  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of this function.
+
+       Much behavior depends on whether the wide characters in <EM>wch</EM> are spacing
+       or non-spacing; see subsection "Complex Characters" below.
+
+       <STRONG>o</STRONG>   If  <EM>wch</EM>  contains  a  spacing  character, then any character at the
+           cursor is first removed.   The  complex  character  <EM>wch</EM>,  with  its
+           attributes  and  color  pair  identifier,  becomes  the <EM>base</EM> of the
+           <EM>active</EM> <EM>complex</EM> <EM>character</EM>.
+
+       <STRONG>o</STRONG>   If <EM>wch</EM> contains only non-spacing characters, they are combined with
+           the  active  complex  character.  <EM>curses</EM> ignores its attributes and
+           color pair identifier, and does not advance the cursor.
+
+       Further non-spacing characters added with <STRONG>wadd_wch</STRONG> are not  written  at
+       the  new  cursor position but combine with the active complex character
+       until another spacing character is written to the window or the  cursor
+       is moved.
+
+       If advancement occurs at the right margin,
+
+       <STRONG>o</STRONG>   the  cursor  automatically wraps to the beginning of the next line,
+           then,
+
+       <STRONG>o</STRONG>   if  it  was  at  the  bottom  of  the  scrolling  region,  and   if
+           <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>  is  enabled  for <EM>win</EM>, the scrolling region scrolls up
+           one line.
 
-       <STRONG>o</STRONG>   If the character part of <EM>wch</EM> is a tab, newline, backspace or  other
-           control character, the window is updated and the cursor moves as if
-           <STRONG>addch</STRONG> were called.
+       If <EM>wch</EM> is a backspace, carriage return, line feed, or tab,  the  cursor
+       moves appropriately within the window.
 
+       <STRONG>o</STRONG>   Backspace  moves  the cursor one character left; at the left margin
+           of a window, it does nothing.
 
-</PRE><H3><a name="h3-echo_wchar">echo_wchar</a></H3><PRE>
-       The <STRONG>echo_wchar</STRONG> function is functionally equivalent to a call to <STRONG>add_wch</STRONG>
-       followed  by  a  call  to  <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>.   Similarly, the <STRONG>wecho_wchar</STRONG> is
-       functionally equivalent to a call to <STRONG>wadd_wch</STRONG> followed  by  a  call  to
-       <STRONG>wrefresh</STRONG>.   The  knowledge that only a single character is being output
-       is  taken  into  consideration  and,  for  non-control  characters,   a
-       considerable  performance  gain  might  be  seen  by  using  the *<STRONG>echo</STRONG>*
-       functions instead of their equivalents.
+       <STRONG>o</STRONG>   Carriage return moves the cursor to the left margin on the  current
+           line of the window.
 
+       <STRONG>o</STRONG>   Line  feed  does a <STRONG><A HREF="curs_clear.3x.html">clrtoeol(3x)</A></STRONG>, then advances as if from the right
+           margin.
 
-</PRE><H3><a name="h3-Line-Graphics">Line Graphics</a></H3><PRE>
-       Like <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>, <STRONG>addch_wch</STRONG> accepts symbols which make it simple to  draw
-       lines  and  other  frequently  used  special characters.  These symbols
-       correspond to the same VT100 line-drawing set as <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>.
+       <STRONG>o</STRONG>   Tab advances the cursor to the next tab stop (possibly on the  next
+           line);  these  are placed at every eighth column by default.  Alter
+           the   tab   interval    with    the    <STRONG>TABSIZE</STRONG>    extension;    see
+           <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
 
-                       <STRONG>Unicode</STRONG>   <STRONG>ASCII</STRONG>     <STRONG>acsc</STRONG>
+       If  <EM>wch</EM>  is  any other nonprintable character, it is drawn in printable
+       form using the same convention as <STRONG><A HREF="curs_util.3x.html">wunctrl(3x)</A></STRONG>.
 
+       Calling <STRONG><A HREF="curs_in_wch.3x.html">win_wch(3x)</A></STRONG> on the location of a  nonprintable  character  does
+       not return the character itself, but its <STRONG><A HREF="curs_util.3x.html">wunctrl(3x)</A></STRONG> representation.
 
-       <STRONG>ACS</STRONG> <STRONG>Name</STRONG>        <STRONG>Default</STRONG>   <STRONG>Default</STRONG>   <STRONG>Char</STRONG>   <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
+
+</PRE><H3><a name="h3-wecho_wchar">wecho_wchar</a></H3><PRE>
+       <STRONG>echo_wchar</STRONG>   and  <STRONG>wecho_wchar</STRONG>  are  equivalent  to  calling  (<STRONG>w</STRONG>)<STRONG>add_wch</STRONG>
+       followed by (<STRONG>w</STRONG>)<STRONG>refresh</STRONG>.  <EM>curses</EM> interprets these functions  as  a  hint
+       that only a single (complex) character is being output; for non-control
+       characters, a considerable performance gain may be enjoyed by employing
+       them.
+
+
+</PRE><H3><a name="h3-Forms-Drawing-Characters">Forms-Drawing Characters</a></H3><PRE>
+       <EM>curses</EM>  defines  macros  starting  with  <STRONG>WACS_</STRONG>  that  can  be used with
+       <STRONG>wadd_wch</STRONG> to write line-drawing and  other  special  characters  to  the
+       screen.  <EM>ncurses</EM> terms these <EM>forms-drawing</EM> <EM>characters.</EM>  The ACS default
+       listed below is used if the <STRONG>acs_chars</STRONG> (<STRONG>acsc</STRONG>) <EM>terminfo</EM>  capability  does
+       not  define  a terminal-specific replacement for it, or if the terminal
+       and locale configuration requires Unicode to  access  these  characters
+       but  the  library  is  unable  to  use Unicode.  The "acsc char" column
+       corresponds to how the characters are specified in the <STRONG>acs_chars</STRONG> (<STRONG>acsc</STRONG>)
+       string capability, and the characters in it may appear on the screen if
+       the terminal type's database entry incorrectly advertises ACS  support.
+       The name "ACS" originates in the Alternate Character Set feature of the
+       DEC VT100 terminal.
+
+                       <STRONG>Unicode</STRONG>   <STRONG>ACS</STRONG>       <STRONG>acsc</STRONG>
+       <STRONG>Symbol</STRONG>          <STRONG>Default</STRONG>   <STRONG>Default</STRONG>   <STRONG>char</STRONG>   <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
        ------------------------------------------------------------------------
        <STRONG>WACS_BLOCK</STRONG>      0x25ae    #         0      solid square block
        <STRONG>WACS_BOARD</STRONG>      0x2592    #         h      board of squares
        <STRONG>WACS_D_LTEE</STRONG>       0x2560    +         F      double tee pointing right
        <STRONG>WACS_D_PLUS</STRONG>       0x256c    +         E      double large plus
        <STRONG>WACS_D_RTEE</STRONG>       0x2563    +         G      double tee pointing left
-
        <STRONG>WACS_D_TTEE</STRONG>       0x2566    +         I      double tee pointing down
        <STRONG>WACS_D_ULCORNER</STRONG>   0x2554    +         C      double upper left corner
        <STRONG>WACS_D_URCORNER</STRONG>   0x2557    +         B      double upper right corner
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
-       All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
+       These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.   In  <EM>ncurses</EM>,
+       <STRONG>wadd_wch</STRONG> returns <STRONG>ERR</STRONG> if
 
-       X/Open  Curses  does  not   specify   any   error   conditions.    This
-       implementation returns an error
+       <STRONG>o</STRONG>   <EM>win</EM> is <STRONG>NULL</STRONG>,
 
-       <STRONG>o</STRONG>   if the window pointer is null or
+       <STRONG>o</STRONG>   wrapping  to  a new line is impossible because <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG> has not
+           been called on <EM>win</EM> when writing to its  bottom  right  location  is
+           attempted, or
 
-       <STRONG>o</STRONG>   if it is not possible to add a complete character in the window.
+       <STRONG>o</STRONG>   it  is  not  possible  to  add  a  complete character at the cursor
+           position.
 
-       The latter may be due to different causes:
+       Functions prefixed with "mv" first perform cursor movement and fail  if
+       the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
 
-       <STRONG>o</STRONG>   If  <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>  is  not enabled, writing a character at the lower
-           right margin succeeds.  However, an error is returned because it is
-           not possible to wrap to a new line.
 
-       <STRONG>o</STRONG>   If  an error is detected when converting a multibyte character to a
-           sequence of bytes, or if it is not  possible  to  add  all  of  the
-           resulting bytes in the window, an error is returned.
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+       <STRONG>add_wch</STRONG>,  <STRONG>mvadd_wch</STRONG>,  <STRONG>mvwadd_wch</STRONG>,  and <STRONG>echo_wchar</STRONG> may be implemented as
+       macros.
 
-       Functions  prefixed with "mv" first perform cursor movement and fail if
-       the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
 
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
 
-</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
-       Note that <STRONG>add_wch</STRONG>, <STRONG>mvadd_wch</STRONG>, <STRONG>mvwadd_wch</STRONG>, and <STRONG>echo_wchar</STRONG> may be macros.
+</PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
+       The <STRONG>TABSIZE</STRONG> variable is implemented  in  SVr4  and  other  versions  of
+       <EM>curses</EM>, but is not specified by X/Open Curses (see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>).
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       These functions are described in X/Open Curses, Issue 4.  The  defaults
-       specified for line-drawing characters apply in the POSIX locale.
+       These  functions are described in X/Open Curses, Issue 4.  It specifies
+       no error conditions for them.
 
+       SVr4 <EM>curses</EM> describes a successful return value  only  as  "an  integer
+       value other than <STRONG>ERR</STRONG>".
 
-</PRE><H3><a name="h3-WACS-Symbols">WACS Symbols</a></H3><PRE>
-       X/Open  Curses  makes it clear that the WACS_ symbols should be defined
-       as a pointer to <STRONG>cchar_t</STRONG> data, e.g., in the discussion of <STRONG>border_set</STRONG>.  A
-       few implementations are problematic:
+       The  defaults specified for forms-drawing characters apply in the POSIX
+       locale.  X/Open Curses makes it clear that the WACS_ symbols should  be
+       defined  as  a  pointer  to  <STRONG>cchar_t</STRONG>  data,  e.g., in the discussion of
+       <STRONG>border_set</STRONG>.  A few implementations are problematic:
 
        <STRONG>o</STRONG>   NetBSD curses defines the symbols as a <STRONG>wchar_t</STRONG> within a <STRONG>cchar_t</STRONG>.
 
-       <STRONG>o</STRONG>   HP-UX  curses  equates  some  of  the <STRONG>ACS_</STRONG> symbols to the analogous
-           <STRONG>WACS_</STRONG> symbols as if the <STRONG>ACS_</STRONG> symbols  were  wide  characters.   The
-           misdefined  symbols  are the arrows and other symbols which are not
+       <STRONG>o</STRONG>   HP-UX curses equates some of the  <STRONG>ACS_</STRONG>  symbols  to  the  analogous
+           <STRONG>WACS_</STRONG>  symbols  as  if  the <STRONG>ACS_</STRONG> symbols were wide characters.  The
+           misdefined symbols are the arrows and other symbols which  are  not
            used for line-drawing.
 
-       X/Open Curses does not specify  symbols  for  thick-  or  double-lines.
+       X/Open  Curses  does  not  specify  symbols for thick- or double-lines.
        SVr4 curses implementations defined their line-drawing symbols in terms
-       of intermediate symbols.  This implementation  extends  those  symbols,
+       of  intermediate  symbols.   This implementation extends those symbols,
        providing new definitions which are not in the SVr4 implementations.
 
-       Not  all  Unicode-capable  terminals  provide  support  for VT100-style
-       alternate character  sets  (i.e.,  the  <STRONG>acsc</STRONG>  capability),  with  their
-       corresponding  line-drawing  characters.  X/Open Curses did not address
-       the  aspect  of  integrating  Unicode  with  line-drawing   characters.
-       Existing  implementations of Unix curses (AIX, HP-UX, Solaris) use only
+       Not all  Unicode-capable  terminals  provide  support  for  VT100-style
+       alternate  character  sets  (i.e.,  the  <STRONG>acsc</STRONG>  capability),  with their
+       corresponding line-drawing characters.  X/Open Curses did  not  address
+       the   aspect  of  integrating  Unicode  with  line-drawing  characters.
+       Existing implementations of Unix curses (AIX, HP-UX, Solaris) use  only
        the <STRONG>acsc</STRONG> character-mapping to provide this feature.  As a result, those
        implementations  can  only  use  single-byte  line-drawing  characters.
-       <EM>ncurses</EM> 5.3 (2002) provided a table of Unicode values  to  solve  these
+       <EM>ncurses</EM>  5.3  (2002)  provided a table of Unicode values to solve these
        problems.  NetBSD curses incorporated that table in 2010.
 
-       In  this  implementation,  the  Unicode  values are used instead of the
+       In this implementation, the Unicode values  are  used  instead  of  the
        terminal description's <STRONG>acsc</STRONG> mapping as discussed in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> for the
-       environment  variable  <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>UTF8</EM><STRONG>_</STRONG><EM>ACS</EM>.   In contrast, for the same
+       environment variable <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>UTF8</EM><STRONG>_</STRONG><EM>ACS</EM>.  In contrast,  for  the  same
        cases, the line-drawing characters described in <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG> will use only
        the ASCII default values.
 
-       Having  Unicode available does not solve all of the problems with line-
+       Having Unicode available does not solve all of the problems with  line-
        drawing for curses:
 
-       <STRONG>o</STRONG>   The closest Unicode equivalents to the VT100 graphics  <EM>S1</EM>,  <EM>S3</EM>,  <EM>S7</EM>
-           and  <EM>S9</EM> frequently are not displayed at the regular intervals which
+       <STRONG>o</STRONG>   The  closest  Unicode  equivalents to the VT100 graphics <EM>S1</EM>, <EM>S3</EM>, <EM>S7</EM>
+           and <EM>S9</EM> frequently are not displayed at the regular intervals  which
            the terminal used.
 
-       <STRONG>o</STRONG>   The <EM>lantern</EM> is a special case.  It originated with  the  AT&amp;T  4410
-           terminal  in the early 1980s.  There is no accessible documentation
+       <STRONG>o</STRONG>   The  <EM>lantern</EM>  is  a special case.  It originated with the AT&amp;T 4410
+           terminal in the early 1980s.  There is no accessible  documentation
            depicting the lantern symbol on the AT&amp;T terminal.
 
            Lacking documentation, most readers assume that a <EM>storm</EM> <EM>lantern</EM> was
            intended.  But there are several possibilities, all with problems.
 
-           Unicode  6.0  (2010)  does provide two lantern symbols: U+1F383 and
-           U+1F3EE.  Those were not available  in  2002,  and  are  irrelevant
-           since  they  lie  outside the BMP and as a result are not generally
+           Unicode 6.0 (2010) does provide two lantern  symbols:  U+1F383  and
+           U+1F3EE.   Those  were  not  available  in 2002, and are irrelevant
+           since they lie outside the BMP and as a result  are  not  generally
            available in terminals.  They are not storm lanterns, in any case.
 
            Most <EM>storm</EM> <EM>lanterns</EM> have a tapering glass chimney (to guard against
            tipping); some have a wire grid protecting the chimney.
 
-           For  the  tapering  appearance,   U+2603 was adequate.  In use on a
+           For the tapering appearance,  U+2603 was adequate.   In  use  on  a
            terminal, no one can tell what the image represents.  Unicode calls
            it a snowman.
 
            Others have suggested these alternatives: &lt;section&gt; U+00A7 (section
-           mark), &lt;Theta&gt; U+0398 (theta), &lt;Phi&gt; U+03A6 (phi),  &lt;delta&gt;  U+03B4
+           mark),  &lt;Theta&gt;  U+0398 (theta), &lt;Phi&gt; U+03A6 (phi), &lt;delta&gt; U+03B4
            (delta),  U+2327 (x in a rectangle),  U+256C (forms double vertical
            and horizontal), and  U+2612 (ballot box with x).
 
 
 </PRE><H3><a name="h3-Complex-Characters">Complex Characters</a></H3><PRE>
-       The complex character  type  <STRONG>cchar_t</STRONG>  can  store  more  than  one  wide
-       character  (<STRONG>wchar_t</STRONG>).   The  X/Open Curses description does not mention
-       this possibility, describing only the cases  where  <EM>wch</EM>  is  a  spacing
-       character or a non-spacing character.
+       The  complex  character  type  <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>  can  store  more  than one wide
+       character (<EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>).  X/Open Curses does not mention this  possibility,
+       specifying  behavior  only  where  <EM>wch</EM>  is  a  single character, either
+       spacing or non-spacing.
 
-       This implementation assumes that <EM>wch</EM> is constructed using <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG>,
-       and in turn that the result
+       <EM>ncurses</EM> assumes that <EM>wch</EM> is constructed using <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG>, and in turn
+       that the result
 
-       <STRONG>o</STRONG>   contains at most one spacing character in the beginning of its list
-           of wide characters, and zero or more non-spacing characters or
+       <STRONG>o</STRONG>   contains at most one spacing character at the beginning of its list
+           of wide characters, and zero or more non-spacing characters, or
 
-       <STRONG>o</STRONG>   may hold one non-spacing character.
+       <STRONG>o</STRONG>   holds one non-spacing character.
 
-       In  the  latter  case,  <EM>ncurses</EM>  adds  the non-spacing character to the
-       active (base) spacing character.
-
-
-</PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
-       The <STRONG>TABSIZE</STRONG> variable is implemented  in  SVr4  and  other  versions  of
-       <EM>curses</EM>, but is not specified by X/Open Curses (see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>).
+       In the latter case, <EM>ncurses</EM>  adds  the  non-spacing  character  to  the
+       active complex character.
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
 
 
 
-ncurses 6.5                       2024-04-20                  <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                  <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
@@ -336,18 +363,21 @@ ncurses 6.5                       2024-04-20                  <STRONG><A HREF="c
 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
 <ul>
-<li><a href="#h3-add_wch">add_wch</a></li>
-<li><a href="#h3-echo_wchar">echo_wchar</a></li>
-<li><a href="#h3-Line-Graphics">Line Graphics</a></li>
+<li><a href="#h3-wadd_wch">wadd_wch</a></li>
+<li><a href="#h3-wecho_wchar">wecho_wchar</a></li>
+<li><a href="#h3-Forms-Drawing-Characters">Forms-Drawing Characters</a></li>
 </ul>
 </li>
 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
 <li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a>
+<ul>
+<li><a href="#h3-TABSIZE">TABSIZE</a></li>
+</ul>
+</li>
 <li><a href="#h2-PORTABILITY">PORTABILITY</a>
 <ul>
-<li><a href="#h3-WACS-Symbols">WACS Symbols</a></li>
 <li><a href="#h3-Complex-Characters">Complex Characters</a></li>
-<li><a href="#h3-TABSIZE">TABSIZE</a></li>
 </ul>
 </li>
 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
index f554061d849d037fe0e17e49cef2682f0da1e0a2..8d7b7c2c1a7b42afbab7be473a39461e7249ad0c 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_add_wchstr.3x,v 1.39 2024/04/20 21:20:07 tom Exp @
+  * @Id: curs_add_wchstr.3x,v 1.40 2024/05/11 20:39:53 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>curs_add_wchstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_add_wchstr 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_add_wchstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_add_wchstr 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>              Library calls             <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
 
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-       These  functions copy the (null-terminated) array of complex characters
-       <EM>wchstr</EM> into the window image structure starting at the  current  cursor
-       position.
+       <STRONG>wadd_wchstr</STRONG>  copies  the  string  of  complex  characters <EM>wchstr</EM> to the
+       window <EM>win</EM>.  A null complex character  terminates  the  string.   If  a
+       complex  character  does  completely fit at the end of the line, <EM>curses</EM>
+       fills the remaining columns with the window background; see <STRONG><A HREF="curs_bkgrnd.3x.html">bkgrnd(3x)</A></STRONG>.
+       <STRONG>wadd_wchnstr</STRONG> does the same, but copies at most <EM>n</EM> characters, or as many
+       as possible if <EM>n</EM> is <STRONG>-1</STRONG>.  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the  variants  of  these
+       functions.
 
-       The four functions with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements,
-       but no more than will fit on the line.  If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is
-       copied, to the maximum number of characters that will fit on the line.
+       Because  these  functions do not call <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG> internally, they are
+       faster than <STRONG><A HREF="curs_addwstr.3x.html">waddwstr(3x)</A></STRONG> and <STRONG><A HREF="curs_addwstr.3x.html">waddnwstr(3x)</A></STRONG>.  On the other hand, they
 
-       The  window  cursor  is  <EM>not</EM> advanced.  These functions are faster than
-       <STRONG>waddnstr</STRONG>.  On the other hand:
+       <STRONG>o</STRONG>   do  not  treat  the  backspace,  carriage  return,  or  line   feed
+           characters specially;
 
-       <STRONG>o</STRONG>   they do not perform checking (such as for the  newline,  backspace,
-           or carriage return characters),
+       <STRONG>o</STRONG>   do not represent unprintable characters with <STRONG><A HREF="curs_util.3x.html">wunctrl(3x)</A></STRONG>;
 
-       <STRONG>o</STRONG>   they do not advance the current cursor position,
+       <STRONG>o</STRONG>   do  not  update  the  cursor  position to follow the last character
+           written;
 
-       <STRONG>o</STRONG>   they do not expand other control characters to ^-escapes, and
-
-       <STRONG>o</STRONG>   they  truncate  the  string  if it crosses the right margin, rather
-           than wrapping it around to the new line.
-
-       These functions end successfully on encountering  a  null  <STRONG>cchar_t</STRONG>,  or
-       when  they have filled the current line.  If a complex character cannot
-       completely fit at the end of the current line,  the  remaining  columns
-       are filled with the background character and rendition.
+       <STRONG>o</STRONG>   truncate the string at  the  window's  right  margin,  rather  than
+           wrapping it to the next line and potentially scrolling.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
-       All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
+       These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
 
-       X/Open   Curses   does   not   specify   any  error  conditions.   This
-       implementation returns an error
+       X/Open  Curses  does not specify any error conditions.  <EM>ncurses</EM> returns
+       <STRONG>ERR</STRONG> if
 
-       <STRONG>o</STRONG>   if the <EM>win</EM> parameter is null or
+       <STRONG>o</STRONG>   <EM>win</EM> is <STRONG>NULL</STRONG> or
 
-       <STRONG>o</STRONG>   if the <EM>wchstr</EM> parameter is null.
+       <STRONG>o</STRONG>   <EM>wchstr</EM> is <STRONG>NULL</STRONG>.
 
        Functions prefixed with "mv" first perform cursor movement and fail  if
        the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
 
 
 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
-       All functions except <STRONG>wadd_wchnstr</STRONG> may be macros.
+       All  of  these  functions  except  <STRONG>wadd_wchnstr</STRONG>  may  be implemented as
+       macros.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       These functions are described in X/Open Curses, Issue 4.
+       X/Open Curses, Issue 4 describes these functions.
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
 
 
 
-ncurses 6.5                       2024-04-20               <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11               <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 0a0622e39af3697f505e199c916f7cbcd56b3c7b..2e8bbe8363869f0a6c73b75ff2b1e7057d6c03ea 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_addch.3x,v 1.85 2024/04/20 19:03:47 tom Exp @
+  * @Id: curs_addch.3x,v 1.86 2024/05/11 20:39:53 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>curs_addch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_addch 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_addch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_addch 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>                   Library calls                  <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
 
-</PRE><H3><a name="h3-Adding-Characters">Adding Characters</a></H3><PRE>
-       <STRONG>waddch</STRONG> puts the character <EM>ch</EM> at the cursor position of window <EM>win</EM>, then
-       advances  the  cursor position, analogously to the standard C library's
+</PRE><H3><a name="h3-waddch">waddch</a></H3><PRE>
+       <STRONG>waddch</STRONG> writes the <EM>curses</EM> character <EM>ch</EM> to the window <EM>win</EM>, then  advances
+       the   cursor   position,   analogously  to  the  standard  C  library's
        <STRONG>putchar(3)</STRONG>.  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of this function.
 
        If advancement occurs at the right margin,
 
-       <STRONG>o</STRONG>   the cursor automatically wraps to the beginning of the  next  line;
-           and
+       <STRONG>o</STRONG>   the cursor automatically wraps to the beginning of the  next  line,
+           then,
 
-       <STRONG>o</STRONG>   at  the bottom of the current scrolling region, and if <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>
-           is enabled for <EM>win</EM>, the scrolling region scrolls up one line.
+       <STRONG>o</STRONG>   if   it  was  at  the  bottom  of  the  scrolling  region,  and  if
+           <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG> is enabled for <EM>win</EM>, the scrolling  region  scrolls  up
+           one line.
 
-       If <EM>ch</EM> is a backspace, carriage return, line feed, or  tab,  the  cursor
+       If  <EM>ch</EM>  is  a backspace, carriage return, line feed, or tab, the cursor
        moves appropriately within the window.
 
-       <STRONG>o</STRONG>   Backspace  moves  the cursor one character left; at the left margin
+       <STRONG>o</STRONG>   Backspace moves the cursor one character left; at the  left  margin
            of a window, it does nothing.
 
-       <STRONG>o</STRONG>   Carriage return moves the cursor to the left margin on the  current
+       <STRONG>o</STRONG>   Carriage  return moves the cursor to the left margin on the current
            line of the window.
 
-       <STRONG>o</STRONG>   Line  feed  does  a <STRONG><A HREF="curs_clear.3x.html">clrtoeol(3x)</A></STRONG>, then moves the cursor to the left
-           margin on the next line of  the  window,  and  if  <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>  is
-           enabled  for  <EM>win</EM>,  scrolls the window if the cursor was already on
-           the last line.
+       <STRONG>o</STRONG>   Line feed does a <STRONG><A HREF="curs_clear.3x.html">clrtoeol(3x)</A></STRONG>, then advances as if from  the  right
+           margin.
 
-       <STRONG>o</STRONG>   Tab advances the cursor to the next tab stop (possibly on the  next
-           line);  these  are placed at every eighth column by default.  Alter
-           the   tab   interval    with    the    <STRONG>TABSIZE</STRONG>    extension;    see
+       <STRONG>o</STRONG>   Tab  advances the cursor to the next tab stop (possibly on the next
+           line); these are placed at every eighth column by  default.   Alter
+           the    tab    interval    with    the    <STRONG>TABSIZE</STRONG>   extension;   see
            <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
 
-       If  <EM>ch</EM>  is  any  other nonprintable character, it is drawn in printable
-       form, using the same convention as <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>.
+       If <EM>ch</EM> is any other nonprintable character, it  is  drawn  in  printable
+       form using the same convention as <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>.
 
-       Calling <STRONG><A HREF="curs_inch.3x.html">winch(3x)</A></STRONG> on the location of a nonprintable character does  not
+       Calling  <STRONG><A HREF="curs_inch.3x.html">winch(3x)</A></STRONG> on the location of a nonprintable character does not
        return the character itself, but its <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG> representation.
 
-       <EM>ch</EM>  may  contain  rendering  and/or color attributes, and others can be
-       combined with the parameter by logically "or"ing with it.  (A character
-       with  its  attributes can be copied from place to place using <STRONG><A HREF="curs_inch.3x.html">winch(3x)</A></STRONG>
-       and  <STRONG>waddch</STRONG>.)   See  <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>  for  values  of  predefined   video
-       attribute constants that can be usefully "or"ed with characters.
+       The object or expression <EM>ch</EM> may contain attributes and/or a color  pair
+       identifier.   (A character with its attributes can be copied from place
+       to place using <STRONG><A HREF="curs_inch.3x.html">winch(3x)</A></STRONG> and <STRONG>waddch</STRONG>.)  See <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> for values  of
+       predefined  video  attribute constants that can be usefully "or"ed with
+       characters.
 
 
-</PRE><H3><a name="h3-Echoing-Characters">Echoing Characters</a></H3><PRE>
-       <STRONG>echochar</STRONG>  and  <STRONG>wechochar</STRONG> are equivalent to calling (<STRONG>w</STRONG>)<STRONG>addch</STRONG> followed by
-       (<STRONG>w</STRONG>)<STRONG>refresh</STRONG>.  <EM>curses</EM> interprets these functions as a hint  that  only  a
+</PRE><H3><a name="h3-wechochar">wechochar</a></H3><PRE>
+       <STRONG>echochar</STRONG> and <STRONG>wechochar</STRONG> are equivalent to calling (<STRONG>w</STRONG>)<STRONG>addch</STRONG>  followed  by
+       (<STRONG>w</STRONG>)<STRONG>refresh</STRONG>.   <EM>curses</EM>  interprets  these functions as a hint that only a
        single  character  is  being  output;  for  non-control  characters,  a
        considerable performance gain may be enjoyed by employing them.
 
 
 </PRE><H3><a name="h3-Forms-Drawing-Characters">Forms-Drawing Characters</a></H3><PRE>
-       <EM>curses</EM> defines macros starting with <STRONG>ACS_</STRONG> that can be used  with  <STRONG>waddch</STRONG>
-       to  write  line-drawing  and  other  special  characters to the screen.
-       <EM>ncurses</EM> terms these <EM>forms-drawing</EM> <EM>characters.</EM>  The ACS  default  listed
-       below  is  used  if  the  <STRONG>acs_chars</STRONG> (<STRONG>acsc</STRONG>) <EM>terminfo</EM> capability does not
-       define a terminal-specific replacement for it, or if the  terminal  and
-       locale  configuration  requires  Unicode to access these characters but
+       <EM>curses</EM>  defines  macros starting with <STRONG>ACS_</STRONG> that can be used with <STRONG>waddch</STRONG>
+       to write line-drawing and  other  special  characters  to  the  screen.
+       <EM>ncurses</EM>  terms  these <EM>forms-drawing</EM> <EM>characters.</EM>  The ACS default listed
+       below is used if the <STRONG>acs_chars</STRONG>  (<STRONG>acsc</STRONG>)  <EM>terminfo</EM>  capability  does  not
+       define  a  terminal-specific replacement for it, or if the terminal and
+       locale configuration requires Unicode to access  these  characters  but
        the  library  is  unable  to  use  Unicode.   The  "acsc  char"  column
-       corresponds to how the characters are specified in the <STRONG>acs_chars</STRONG> string
-       capability, and the characters in it may appear on the  screen  if  the
-       terminal's database entry incorrectly advertises ACS support.  The name
-       "ACS" originates in the Alternate Character  Set  feature  of  the  DEC
-       VT100 terminal.
+       corresponds to how the characters are specified in the <STRONG>acs_chars</STRONG> (<STRONG>acsc</STRONG>)
+       string capability, and the characters in it may appear on the screen if
+       the terminal type's database entry incorrectly advertises ACS  support.
+       The name "ACS" originates in the Alternate Character Set feature of the
+       DEC VT100 terminal.
 
                       <STRONG>ACS</STRONG>       <STRONG>acsc</STRONG>
        <STRONG>Symbol</STRONG>         <STRONG>Default</STRONG>   <STRONG>char</STRONG>   <STRONG>Glyph</STRONG> <STRONG>Name</STRONG>
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
        These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
 
-       In  <EM>ncurses</EM>, <STRONG>waddch</STRONG> returns <STRONG>ERR</STRONG> if it is not possible to add a complete
-       character at the cursor position, as when  conversion  of  a  multibyte
-       character  to  a  byte sequence fails, or at least one of the resulting
-       bytes cannot be added to the window.  See section  "PORTABILITY"  below
-       regarding the use of <STRONG>waddch</STRONG> with multibyte characters.
+       In <EM>ncurses</EM>, <STRONG>waddch</STRONG> returns <STRONG>ERR</STRONG> if
 
-       <STRONG>waddch</STRONG>  can successfully write a character at the bottom right location
-       of the window.  However, <EM>ncurses</EM> returns <STRONG>ERR</STRONG>  if  <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>  is  not
-       enabled  in  that  event,  because  it is not possible to wrap to a new
-       line.
+       <STRONG>o</STRONG>   <EM>win</EM> is <STRONG>NULL</STRONG>,
+
+       <STRONG>o</STRONG>   wrapping to a new line is impossible because <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>  has  not
+           been  called  on  <EM>win</EM>  when a write to its bottom right location is
+           attempted, or
+
+       <STRONG>o</STRONG>   it is not possible to  add  a  complete  character  at  the  cursor
+           position.
+
+       The last may be due to different causes:
+
+       <STRONG>o</STRONG>   conversion of a multibyte character to a byte sequence can fail, or
+
+       <STRONG>o</STRONG>   at  least  one  of  the  bytes  resulting  from  conversion  from a
+           multibyte sequence cannot be added  to  the  window.   See  section
+           "PORTABILITY"  below  regarding  the  use  of <STRONG>waddch</STRONG> with multibyte
+           characters.
 
        Functions prefixed with "mv" first perform cursor movement and fail  if
        the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
        <STRONG>addch</STRONG>, <STRONG>mvaddch</STRONG>, <STRONG>mvwaddch</STRONG>, and <STRONG>echochar</STRONG> may be implemented as macros.
 
 
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+
+</PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
+       SVr4  and  other versions of <EM>curses</EM> implement the <STRONG>TABSIZE</STRONG> variable, but
+       X/Open Curses does not specify it; see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+
+
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       X/Open  Curses,  Issue  4  describes  these functions.  It specifies no
+       X/Open Curses, Issue 4 describes  these  functions.   It  specifies  no
        error conditions for them.
 
-       SVr4 <EM>curses</EM> describes a successful return value  only  as  "an  integer
+       SVr4  <EM>curses</EM>  describes  a  successful return value only as "an integer
        value other than <STRONG>ERR</STRONG>".
 
-       The  defaults specified for forms-drawing characters apply in the POSIX
+       The defaults specified for forms-drawing characters apply in the  POSIX
        locale.
 
 
 
        Some implementations are problematic.
 
-       <STRONG>o</STRONG>   Solaris <EM>curses</EM>, for example, define the ACS symbols  as  constants;
+       <STRONG>o</STRONG>   Solaris  <EM>curses</EM>, for example, defines the ACS symbols as constants;
            others define them as elements of an array.
 
-           This  implementation  uses  an  array, <STRONG>acs_map</STRONG>, as did SVr4 <EM>curses</EM>.
+           This implementation uses an array, <STRONG>acs_map</STRONG>,  as  did  SVr4  <EM>curses</EM>.
            NetBSD also uses an array, actually named <STRONG>_acs_char</STRONG>, with a <STRONG>#define</STRONG>
            for compatibility.
 
-       <STRONG>o</STRONG>   HP-UX  <EM>curses</EM>  equates  some  of  the <STRONG>ACS_</STRONG> symbols to the analogous
-           <STRONG>WACS_</STRONG> symbols as if the <STRONG>ACS_</STRONG>  symbols  were  wide  characters  (see
-           <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>).   The  misdefined  symbols  are  the  arrows and
+       <STRONG>o</STRONG>   HP-UX <EM>curses</EM> equates some of the  <STRONG>ACS_</STRONG>  symbols  to  the  analogous
+           <STRONG>WACS_</STRONG>  symbols  as  if  the  <STRONG>ACS_</STRONG> symbols were wide characters (see
+           <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>).  The  misdefined  symbols  are  the  arrows  and
            others that are not used for line drawing.
 
-       <STRONG>o</STRONG>   X/Open Curses (Issues 2 through 7) has a  typographical  error  for
-           the  <STRONG>ACS_LANTERN</STRONG>  symbol,  equating  its  "VT100+ Character" to "I"
-           (capital I), while the header  files  for  SVr4  <EM>curses</EM>  and  other
+       <STRONG>o</STRONG>   X/Open  Curses  (Issues  2 through 7) has a typographical error for
+           the <STRONG>ACS_LANTERN</STRONG> symbol, equating  its  "VT100+  Character"  to  "I"
+           (capital  I),  while  the  header  files  for SVr4 <EM>curses</EM> and other
            implementations use "i" (small i).
 
-           None  of  the terminal descriptions on Unix platforms use uppercase
-           I, except  for  Solaris  (in  its  <EM>terminfo</EM>  entry  for  <STRONG>screen(1)</STRONG>,
-           apparently  based on the X/Open documentation around 1995).  On the
-           other hand, its <STRONG>gs6300</STRONG> (AT&amp;T PC6300 with EMOTS  Terminal  Emulator)
+           None of the terminal descriptions on Unix platforms  use  uppercase
+           I,  except  for  Solaris  (in  its  <EM>terminfo</EM>  entry  for <STRONG>screen(1)</STRONG>,
+           apparently based on the X/Open documentation around 1995).  On  the
+           other  hand,  its <STRONG>gs6300</STRONG> (AT&amp;T PC6300 with EMOTS Terminal Emulator)
            description uses lowercase i.
 
-       Some  ACS  symbols  (<STRONG>ACS_S3</STRONG>,  <STRONG>ACS_S7</STRONG>,  <STRONG>ACS_LEQUAL</STRONG>,  <STRONG>ACS_GEQUAL</STRONG>, <STRONG>ACS_PI</STRONG>,
-       <STRONG>ACS_NEQUAL</STRONG>, and <STRONG>ACS_STERLING</STRONG>)  were  not  documented  in  any  publicly
-       released  System V.   However, many publicly available <EM>terminfo</EM> entries
-       include <STRONG>acsc</STRONG> strings  in  which  their  key  characters  <STRONG>(</STRONG>pryz{|}<STRONG>)</STRONG>  are
-       embedded,  and  a  second-hand list of their character descriptions has
-       come to light.  The <EM>ncurses</EM> developers invented ACS-prefixed names  for
+       Some ACS  symbols  (<STRONG>ACS_S3</STRONG>,  <STRONG>ACS_S7</STRONG>,  <STRONG>ACS_LEQUAL</STRONG>,  <STRONG>ACS_GEQUAL</STRONG>,  <STRONG>ACS_PI</STRONG>,
+       <STRONG>ACS_NEQUAL</STRONG>,  and  <STRONG>ACS_STERLING</STRONG>)  were  not  documented  in any publicly
+       released System V.  However, many publicly available  <EM>terminfo</EM>  entries
+       include  <STRONG>acsc</STRONG>  capabilities in which their key characters (<STRONG>pryz{|}</STRONG>) are
+       embedded, and a second-hand list of their  character  descriptions  has
+       come  to light.  The <EM>ncurses</EM> developers invented ACS-prefixed names for
        them.
 
        The <EM>displayed</EM> values of <STRONG>ACS_</STRONG> constants depend on
 
        <STRONG>o</STRONG>   the  <EM>ncurses</EM>  ABI--for  example,  wide-character  versus  non-wide-
-           character configurations  (the  former  is  capable  of  displaying
+           character  configurations  (the  former  is  capable  of displaying
            Unicode while the latter is not), and
 
        <STRONG>o</STRONG>   whether the locale uses UTF-8 encoding.
 
-       In  certain  cases,  the  terminal  is  unable to display forms-drawing
-       characters  <EM>except</EM>  by  using  UTF-8;  see  the   discussion   of   the
-       <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>UTF8</EM><STRONG>_</STRONG><EM>ACS</EM> environment variable in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>).
+       In certain cases, the  terminal  is  unable  to  display  forms-drawing
+       characters   <EM>except</EM>   by   using  UTF-8;  see  the  discussion  of  the
+       <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>UTF8</EM><STRONG>_</STRONG><EM>ACS</EM> environment variable in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
 
 
 </PRE><H3><a name="h3-Character-Set">Character Set</a></H3><PRE>
-       X/Open  Curses  assumes  that the parameter passed to <STRONG>waddch</STRONG> contains a
-       single character.  As discussed in <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>,  that  character  may
-       have  been more than eight bits wide in an SVr3 or SVr4 implementation,
-       but in the X/Open  Curses  model,  the  details  are  not  given.   The
-       important distinction between SVr4 <EM>curses</EM> and X/Open Curses is that the
-       latter separates non-character information (attributes and color)  from
-       the  character  code,  which  SVr4  packs  into a <EM>chtype</EM> for passage to
-       <STRONG>waddch</STRONG>.
-
-       In <EM>ncurses</EM>, <EM>chtype</EM> holds  an  eight-bit  character.   But  the  library
-       allows  a  multibyte character to be passed in a succession of calls to
-       <STRONG>waddch</STRONG>.  Other implementations do not; a <STRONG>waddch</STRONG> call transmits  exactly
-       one  character,  which  may be rendered in one or more screen locations
-       depending on whether it is printable.
-
-       Depending on the locale settings, <EM>ncurses</EM> inspects the byte  passed  in
-       each  <STRONG>waddch</STRONG>  call,  and  checks  whether  the  latest call continues a
-       multibyte sequence.  When a character is <EM>complete</EM>, <EM>ncurses</EM> displays the
-       character and advances the cursor.
-
-       If  the  calling  application  interrupts  the succession of bytes in a
-       multibyte character sequence  by  changing  the  current  location--for
+       X/Open Curses assumes that the parameter passed to  <STRONG>waddch</STRONG>  contains  a
+       single  character.   That  character may have been more than eight bits
+       wide in an SVr3 or SVr4 implementation, but X/Open  Curses  leaves  the
+       width  of  a non-wide character code unspecified.  The standard further
+       does not specify the internal structure of a <EM>chtype</EM>, though the use  of
+       bit  operations  to  combine  the  character code with attributes and a
+       color pair identifier into a <EM>chtype</EM> for passage to <STRONG>waddch</STRONG> is common.  A
+       portable application uses only the macros discussed in <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> to
+       manipulate a <EM>chtype</EM>.
+
+       In <EM>ncurses</EM>, <EM>chtype</EM> holds an eight-bit character, but the library allows
+       a  multibyte character to be passed in a succession of calls to <STRONG>waddch</STRONG>.
+       Other implementations do not;  a  <STRONG>waddch</STRONG>  call  transmits  exactly  one
+       character,  which  may  be  rendered  in  one  or more screen locations
+       depending on whether it is printable (see  <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>).   Depending  on
+       the  locale,  <EM>ncurses</EM>  inspects the byte passed in each <STRONG>waddch</STRONG> call and
+       checks whether the latest call continues a multibyte sequence.  When  a
+       character  is <EM>complete</EM>, <EM>ncurses</EM> displays the character and advances the
+       cursor.  If the calling application interrupts the succession of  bytes
+       in a multibyte character sequence by changing the current location--for
        example, with <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG>--<EM>ncurses</EM> discards the incomplete character.
 
-       For  portability  to  other  implementations,  do  not  rely  upon this
-       behavior.  Check whether a character can be  represented  as  a  single
-       byte in the current locale.
+       For  portability  to  other  implementations,  do  not  rely  upon  the
+       foregoing  behavior.  Check whether a character can be represented as a
+       single byte in the current locale.
 
        <STRONG>o</STRONG>   If it can, call either <STRONG>waddch</STRONG> or <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>.
 
        <STRONG>o</STRONG>   If it cannot, use only <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>.
 
 
-</PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
-       SVr4  and  other versions of <EM>curses</EM> implement the <STRONG>TABSIZE</STRONG> variable, but
-       X/Open Curses does not specify it (see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>).
-
-
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM>  library
        in its wide-character configuration (<EM>ncursesw</EM>).
 
 
 
-ncurses 6.5                       2024-04-20                    <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                    <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
@@ -308,18 +316,22 @@ ncurses 6.5                       2024-04-20                    <STRONG><A HREF=
 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
 <ul>
-<li><a href="#h3-Adding-Characters">Adding Characters</a></li>
-<li><a href="#h3-Echoing-Characters">Echoing Characters</a></li>
+<li><a href="#h3-waddch">waddch</a></li>
+<li><a href="#h3-wechochar">wechochar</a></li>
 <li><a href="#h3-Forms-Drawing-Characters">Forms-Drawing Characters</a></li>
 </ul>
 </li>
 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
 <li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a>
+<ul>
+<li><a href="#h3-TABSIZE">TABSIZE</a></li>
+</ul>
+</li>
 <li><a href="#h2-PORTABILITY">PORTABILITY</a>
 <ul>
 <li><a href="#h3-ACS-Symbols">ACS Symbols</a></li>
 <li><a href="#h3-Character-Set">Character Set</a></li>
-<li><a href="#h3-TABSIZE">TABSIZE</a></li>
 </ul>
 </li>
 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
index a3441e6c9a1d1184905077499b33cbd37c6003c4..0616c9bc5db740df505a7c77ca77894cd3d90f15 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_addchstr.3x,v 1.45 2024/04/20 21:20:07 tom Exp @
+  * @Id: curs_addchstr.3x,v 1.46 2024/05/11 20:39:53 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>curs_addchstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_addchstr 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_addchstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_addchstr 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>                Library calls               <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
 
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-       These functions copy the (null-terminated) <EM>chstr</EM> array into the  window
-       image structure starting at the current cursor position.
+       <STRONG>waddchstr</STRONG> copies the string of <EM>curses</EM> characters <EM>chstr</EM>  to  the  window
+       <EM>win</EM>.   A  null <EM>curses</EM> character terminates the string.  <STRONG>waddchnstr</STRONG> does
+       the same, but copies at most <EM>n</EM> characters, or as many as possible if  <EM>n</EM>
+       is <STRONG>-1</STRONG>.  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of these functions.
 
-       The four functions with <EM>n</EM> as the last argument copy at most <EM>n</EM> elements,
-       but no more than will fit on the line.  If <STRONG>n</STRONG>=<STRONG>-1</STRONG> then the whole array is
-       copied, to the maximum number of characters that will fit on the line.
+       Because  these  functions  do  not call <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> internally, they are
+       faster than <STRONG><A HREF="curs_addstr.3x.html">waddstr(3x)</A></STRONG> and <STRONG><A HREF="curs_addstr.3x.html">waddnstr(3x)</A></STRONG>.  On the other hand, they
 
-       The  window  cursor  is  <EM>not</EM> advanced.  These functions are faster than
-       <STRONG>waddnstr</STRONG>.  On the other hand:
+       <STRONG>o</STRONG>   do  not  treat  the  backspace,  carriage  return,  or  line   feed
+           characters specially;
 
-       <STRONG>o</STRONG>   they do not perform checking (such as for the  newline,  backspace,
-           or carriage return characters),
+       <STRONG>o</STRONG>   do not represent unprintable characters with <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>;
 
-       <STRONG>o</STRONG>   they do not advance the current cursor position,
+       <STRONG>o</STRONG>   do  not  update  the  cursor  position to follow the last character
+           written;
 
-       <STRONG>o</STRONG>   they do not expand other control characters to ^-escapes, and
-
-       <STRONG>o</STRONG>   they  truncate  the  string  if it crosses the right margin, rather
-           than wrapping it around to the new line.
+       <STRONG>o</STRONG>   truncate the string at  the  window's  right  margin,  rather  than
+           wrapping it to the next line and potentially scrolling.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
-       All functions return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> on success.
+       These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
 
-       X/Open  Curses  does  not   specify   any   error   conditions.    This
-       implementation returns an error
+       X/Open  Curses  does not specify any error conditions.  <EM>ncurses</EM> returns
+       <STRONG>ERR</STRONG> if
 
-       <STRONG>o</STRONG>   if the <EM>win</EM> parameter is null or
+       <STRONG>o</STRONG>   <EM>win</EM> is <STRONG>NULL</STRONG> or
 
-       <STRONG>o</STRONG>   if the <EM>wchstr</EM> parameter is null.
+       <STRONG>o</STRONG>   <EM>chstr</EM> is <STRONG>NULL</STRONG>.
 
-       Functions  prefixed with "mv" first perform cursor movement and fail if
+       Functions prefixed with "mv" first perform cursor movement and fail  if
        the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
 
 
 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
-       All functions except <STRONG>waddchnstr</STRONG> may be macros.
+       All of these functions except <STRONG>waddchnstr</STRONG> may be implemented as macros.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       These functions are described in X/Open Curses, Issue 4.
+       X/Open Curses, Issue 4 describes these functions.
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
 
 
 
-ncurses 6.5                       2024-04-20                 <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                 <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index bc1fd859d06aca7119b5cc6e60657de460f3ee47..b995aecac0f7a888321c63597a91f8f2aa5434e7 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_attr.3x,v 1.105 2024/04/27 17:54:42 tom Exp @
+  * @Id: curs_attr.3x,v 1.106 2024/05/11 20:39:53 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>curs_attr 3x 2024-04-27 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_attr 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_attr 3x 2024-04-27 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_attr 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>                    Library calls                   <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
 
               <STRONG>A_CHARTEXT</STRONG>     Bit-mask to extract a character
               <STRONG>A_COLOR</STRONG>        Bit-mask to extract a color (legacy routines)
 
+       You can thus use <STRONG>A_CHARTEXT</STRONG> to extract the  character  from  a  <EM>chtype</EM>,
+       <STRONG>A_ATTRIBUTES</STRONG>  to  obtain  its rendering attributes, and <STRONG>A_COLOR</STRONG> to find
+       the color pair it uses.
+
        These video attributes are supported by <STRONG>attr_on</STRONG> and  related  functions
        (which also support the attributes recognized by <STRONG>attron</STRONG>, etc.):
 
               <STRONG>WA_BLINK</STRONG>        Blinking
               <STRONG>WA_DIM</STRONG>          Half bright
               <STRONG>WA_BOLD</STRONG>         Extra bright or bold
-
               <STRONG>WA_ALTCHARSET</STRONG>   Alternate character set
 
        X/Open Curses does not assign values to  these  symbols,  nor  does  it
 
 
 
-ncurses 6.5                       2024-04-27                     <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                     <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index ca638df7ce2ead323d574e90f5a6e4e91eaaf4e8..5196e418a75f7749c2234b1094194e9eb079bb6e 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_delch.3x,v 1.34 2024/04/20 19:24:14 tom Exp @
+  * @Id: curs_delch.3x,v 1.35 2024/05/11 20:39:53 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>curs_delch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_delch 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_delch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_delch 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>                   Library calls                  <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
 
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-       <STRONG>wdelch</STRONG>  deletes  the  character  at  the  cursor   position   in   <EM>win</EM>.
-       <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of this function.
-
-       <STRONG>wdelch</STRONG> moves all characters to the right of the cursor on the same line
-       to the left one position and replaces the  contents  of  the  rightmost
-       position  on  the  line with the window's blank character; see <STRONG><A HREF="curs_bkgd.3x.html">bkgd(3x)</A></STRONG>
-       (wide-character API users may consult <STRONG><A HREF="curs_bkgrnd.3x.html">bkgrnd(3x)</A></STRONG> instead).  The  cursor
-       position does not change (after moving to (<EM>y</EM>, <EM>x</EM>), if specified).
+       <STRONG>wdelch</STRONG> deletes the character at the cursor position in <EM>win</EM>.   It  moves
+       all  characters to the right of the cursor on the same line to the left
+       one position and replaces the contents of the rightmost position on the
+       line  with  the  window's blank character; see <STRONG><A HREF="curs_bkgd.3x.html">bkgd(3x)</A></STRONG> (wide-character
+       API users: <STRONG><A HREF="curs_bkgrnd.3x.html">bkgrnd(3x)</A></STRONG>).  The cursor position  does  not  change  (after
+       moving to (<EM>y</EM>, <EM>x</EM>), if specified).  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of
+       this function.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
 
        Functions taking a <EM>WINDOW</EM> pointer argument fail if the pointer is <STRONG>NULL</STRONG>.
 
-       Functions  prefixed with "mv" first perform cursor movement and fail if
+       Functions prefixed with "mv" first perform cursor movement and fail  if
        the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
 
 
 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
        <STRONG>delch</STRONG>, <STRONG>mvdelch</STRONG>, and <STRONG>mvwdelch</STRONG> may be implemented as macros.
 
-       A terminal's <STRONG>delete_character</STRONG>  (<STRONG>dch1</STRONG>)  capability  is  not  necessarily
+       A  terminal's  <STRONG>delete_character</STRONG>  (<STRONG>dch1</STRONG>)  capability  is not necessarily
        employed.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       X/Open Curses, Issue 4 describes these functions.
+       X/Open Curses, Issue 4 describes  these  functions.   It  specifies  no
+       error conditions for them.
 
        SVr4  <EM>curses</EM>  describes  a  successful return value only as "an integer
        value other than <STRONG>ERR</STRONG>".
@@ -99,7 +99,7 @@
 
 
 
-ncurses 6.5                       2024-04-20                    <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                    <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 291ef67f1c0a84a513b51b133da935374485363c..a8149fb9286ca996a2a659ebbf377fd0f66fc209 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_get_wch.3x,v 1.40 2024/04/20 19:23:03 tom Exp @
+  * @Id: curs_get_wch.3x,v 1.41 2024/05/11 20:39:53 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>curs_get_wch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_get_wch 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_get_wch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_get_wch 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>                 Library calls                <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
 
 </PRE><H3><a name="h3-Reading-Characters">Reading Characters</a></H3><PRE>
-       <STRONG>wget_wch</STRONG> gathers a key stroke <EM>wch</EM> from the terminal keyboard associated
-       with  a  <EM>curses</EM>  window  <EM>win</EM>, returning <STRONG>OK</STRONG> if a wide character is read,
+       <STRONG>wget_wch</STRONG> gathers a key event from the terminal keyboard associated with
+       a  <EM>curses</EM>  window  <EM>win</EM>,  returning  <STRONG>OK</STRONG>  if  a  wide  character is read,
        <STRONG>KEY_CODE_YES</STRONG> if a function key is read, and <STRONG>ERR</STRONG>  if  no  key  event  is
        available.  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of this function.
 
        When  input  is pending, <STRONG>wget_wch</STRONG> stores an integer identifying the key
-       stroke in <EM>wch</EM>;  for  alphanumeric  and  punctuation  keys,  this  value
+       event in  <EM>wch</EM>;  for  alphanumeric  and  punctuation  keys,  this  value
        corresponds to the character encoding used by the terminal.  Use of the
-       control key as a modifier  often  results  in  a  distinct  code.   The
-       behavior  of  other  keys depends on whether <EM>win</EM> is in keypad mode; see
-       subsections "Keypad Mode" and "Predefined Key Codes" in <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>.
-
-       If no input is pending, then if the no-delay flag is set in the  window
-       (see  <STRONG><A HREF="nodelay.3x.html">nodelay(3x)</A></STRONG>),  the  function returns <STRONG>ERR</STRONG>; otherwise, <EM>curses</EM> waits
-       until the terminal has input.  If  <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG>  has  been  called,  this
-       happens  after one character is read.  If <STRONG><A HREF="curs_inopts.3x.html">nocbreak(3x)</A></STRONG> has been called,
-       it occurs when the next newline is read.   If  <STRONG><A HREF="curs_inopts.3x.html">halfdelay(3x)</A></STRONG>  has  been
-       called,  <EM>curses</EM> waits until a character is typed or the specified delay
+       control key as a modifier,  by  holding  it  down  while  pressing  and
+       releasing  another key, often results in a distinct code.  The behavior
+       of other keys depends on whether <EM>win</EM> is in keypad mode; see subsections
+       "Keypad Mode" and "Predefined Key Codes" in <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>.
+
+       If  no input is pending, then if the no-delay flag is set in the window
+       (see <STRONG><A HREF="nodelay.3x.html">nodelay(3x)</A></STRONG>), the function returns <STRONG>ERR</STRONG>;  otherwise,  <EM>curses</EM>  waits
+       until  the  terminal  has  input.   If <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG> has been called, this
+       happens after one character is read.  If <STRONG><A HREF="curs_inopts.3x.html">nocbreak(3x)</A></STRONG> has been  called,
+       it  occurs  when  the  next newline is read.  If <STRONG><A HREF="curs_inopts.3x.html">halfdelay(3x)</A></STRONG> has been
+       called, <EM>curses</EM> waits until input is available or  the  specified  delay
        elapses.
 
        If <STRONG><A HREF="curs_inopts.3x.html">echo(3x)</A></STRONG> has been called, and the window is not a pad, <EM>curses</EM> writes
        <EM>wch</EM> to the window (at the cursor position) per the following rules.
 
-       <STRONG>o</STRONG>   If  <EM>wch</EM>  matches  the  terminal's erase character, the cursor moves
-           leftward one  position  and  the  new  position  is  erased  as  if
-           <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG>  and  then  <STRONG><A HREF="curs_delch.3x.html">wdelch(3x)</A></STRONG>  were  called.   When the window's
-           keypad mode is enabled (see below), <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG>  are
+       <STRONG>o</STRONG>   If <EM>wch</EM> matches the terminal's erase  character,  the  cursor  moves
+           leftward  one  position  and  the  new  position  is  erased  as if
+           <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG> and then  <STRONG><A HREF="curs_delch.3x.html">wdelch(3x)</A></STRONG>  were  called.   When  the  window's
+           keypad  mode is enabled (see below), <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are
            handled the same way.
 
        <STRONG>o</STRONG>   <EM>curses</EM> writes any other <EM>wch</EM> to the window, as with <STRONG><A HREF="curs_add_wch.3x.html">wecho_wchar(3x)</A></STRONG>.
 
-       <STRONG>o</STRONG>   If  the  window  has  been moved or modified since the last call to
-           <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>, <EM>curses</EM> calls <STRONG>wrefresh</STRONG>.
+       <STRONG>o</STRONG>   If the window <EM>win</EM> has been moved or modified since the last call to
+           <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>, <EM>curses</EM> calls <STRONG>wrefresh</STRONG> on it.
 
-       If <EM>wch</EM> is a carriage return and <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> has been called,  <STRONG>wgetch</STRONG>  stores
-       the the character code for newline (line feed) in <EM>wch</EM> instead.
+       If  <EM>wch</EM>  is a carriage return and <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> has been called, <STRONG>wgetch</STRONG> stores
+       the the character code for line feed in <EM>wch</EM> instead.
 
 
 </PRE><H3><a name="h3-Ungetting-Characters">Ungetting Characters</a></H3><PRE>
-       <STRONG>unget_wch</STRONG>  places  <EM>wch</EM>  into the input queue to be returned by the next
-       call to <STRONG>wget_wch</STRONG>.  A single input queue serves all windows.
+       <STRONG>unget_wch</STRONG> places <EM>wch</EM> into the input queue to be returned  by  the  next
+       call  to  <STRONG>wget_wch</STRONG>.  A single input queue serves all windows associated
+       with the terminal.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
        input character in an additional <EM>wch</EM> parameter instead  of  the  return
        value.
 
-       Unlike   <STRONG>ungetch</STRONG>,  <STRONG>unget_wch</STRONG>  cannot  distinguish  function  key  codes
-       <STRONG>wget_wch</STRONG>  from  conventional  character  codes.   An  application   can
-       overcome this limitation by pushing function key codes with <STRONG>ungetch</STRONG> and
-       subsequently checking the return value of <STRONG>wget_wch</STRONG>  for  a  match  with
-       <STRONG>KEY_CODE_YES</STRONG>.
+       Unlike  <STRONG>ungetch</STRONG>,  <STRONG>unget_wch</STRONG>  cannot distinguish function key codes from
+       conventional  character  codes.   An  application  can  overcome   this
+       limitation  by pushing function key codes with <STRONG>ungetch</STRONG> and subsequently
+       checking the return value of <STRONG>wget_wch</STRONG> for a match with <STRONG>KEY_CODE_YES</STRONG>.
 
 
 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
        Applications employing <EM>ncurses</EM> extensions should condition their use on
        the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
 
-       X/Open Curses, Issue 4 describes  these  functions.   It  specifies  no
+       X/Open  Curses,  Issue  4  describes  these functions.  It specifies no
        error conditions for them.
 
-       See  the  "PORTABILITY" section of <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> regarding the interaction
+       See the "PORTABILITY" section of <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> regarding  the  interaction
        of <STRONG>wget_wch</STRONG> with signal handlers.
 
 
        <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library in
        its non-wide-character configuration.
 
-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,     <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>,    <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>,    <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>,
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,    <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>,    <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>,     <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>,
        <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
 
 
 
-ncurses 6.5                       2024-04-20                  <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                  <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index fd8a8909f3e7040f679472f1641d7999c5ccbee8..15ca56f819a56307422633fe206f0e3114a86252 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_getch.3x,v 1.87 2024/04/20 19:18:18 tom Exp @
+  * @Id: curs_getch.3x,v 1.88 2024/05/11 20:39:53 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>curs_getch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_getch 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_getch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_getch 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>                   Library calls                  <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
 
 </PRE><H3><a name="h3-Reading-Characters">Reading Characters</a></H3><PRE>
-       <STRONG>wgetch</STRONG> gathers a key stroke from the terminal keyboard associated  with
-       a  <EM>curses</EM>  window  <EM>win</EM>.   <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>  describes  the  variants of this
+       <STRONG>wgetch</STRONG> gathers a key event from the terminal keyboard associated with a
+       <EM>curses</EM>   window  <EM>win</EM>.   <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>  describes  the  variants  of  this
        function.
 
        When input is pending, <STRONG>wgetch</STRONG> returns an integer  identifying  the  key
-       stroke;  for  alphanumeric and punctuation keys, this value corresponds
-       to the character encoding used by the terminal.  Use of the control key
-       as  a modifier often results in a distinct code.  The behavior of other
-       keys depends on whether <EM>win</EM> is in keypad mode; see  subsection  "Keypad
-       Mode" below.
-
-       If  no input is pending, then if the no-delay flag is set in the window
-       (see <STRONG><A HREF="nodelay.3x.html">nodelay(3x)</A></STRONG>), the function returns <STRONG>ERR</STRONG>;  otherwise,  <EM>curses</EM>  waits
-       until  the  terminal  has  input.   If <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG> has been called, this
-       happens after one character is read.  If <STRONG><A HREF="curs_inopts.3x.html">nocbreak(3x)</A></STRONG> has been  called,
-       it  occurs  when  the  next newline is read.  If <STRONG><A HREF="curs_inopts.3x.html">halfdelay(3x)</A></STRONG> has been
-       called, <EM>curses</EM> waits until a character is typed or the specified  delay
+       event; for alphanumeric and punctuation keys, this value corresponds to
+       the character encoding used by the terminal.  Use of the control key as
+       a  modifier,  by  holding  it down while pressing and releasing another
+       key, often results in a distinct code.   The  behavior  of  other  keys
+       depends  on whether <EM>win</EM> is in keypad mode; see subsection "Keypad Mode"
+       below.
+
+       If no input is pending, then if the no-delay flag is set in the  window
+       (see  <STRONG><A HREF="nodelay.3x.html">nodelay(3x)</A></STRONG>),  the  function returns <STRONG>ERR</STRONG>; otherwise, <EM>curses</EM> waits
+       until the terminal has input.  If  <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG>  has  been  called,  this
+       happens  after one character is read.  If <STRONG><A HREF="curs_inopts.3x.html">nocbreak(3x)</A></STRONG> has been called,
+       it occurs when the next newline is read.   If  <STRONG><A HREF="curs_inopts.3x.html">halfdelay(3x)</A></STRONG>  has  been
+       called,  <EM>curses</EM>  waits  until input is available or the specified delay
        elapses.
 
        If <STRONG><A HREF="curs_inopts.3x.html">echo(3x)</A></STRONG> has been called, and the window is not a pad, <EM>curses</EM> writes
        the returned character <EM>c</EM> to the window (at the cursor position) per the
        following rules.
 
-       <STRONG>o</STRONG>   If  <EM>c</EM>  matches  the  terminal's  erase  character, the cursor moves
-           leftward one  position  and  the  new  position  is  erased  as  if
-           <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG>  and  then  <STRONG><A HREF="curs_delch.3x.html">wdelch(3x)</A></STRONG>  were  called.   When the window's
-           keypad mode is enabled (see below), <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG>  are
+       <STRONG>o</STRONG>   If <EM>c</EM> matches the  terminal's  erase  character,  the  cursor  moves
+           leftward  one  position  and  the  new  position  is  erased  as if
+           <STRONG><A HREF="curs_move.3x.html">wmove(3x)</A></STRONG> and then  <STRONG><A HREF="curs_delch.3x.html">wdelch(3x)</A></STRONG>  were  called.   When  the  window's
+           keypad  mode is enabled (see below), <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are
            handled the same way.
 
        <STRONG>o</STRONG>   <EM>curses</EM> writes any other <EM>c</EM> to the window, as with <STRONG><A HREF="curs_addch.3x.html">wechochar(3x)</A></STRONG>.
 
-       <STRONG>o</STRONG>   If  the  window  has  been moved or modified since the last call to
-           <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>, <EM>curses</EM> calls <STRONG>wrefresh</STRONG>.
+       <STRONG>o</STRONG>   If the window <EM>win</EM> has been moved or modified since the last call to
+           <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>, <EM>curses</EM> calls <STRONG>wrefresh</STRONG> on it.
 
-       If <EM>c</EM> is a carriage return and <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> has been  called,  <STRONG>wgetch</STRONG>  returns
+       If  <EM>c</EM>  is  a carriage return and <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> has been called, <STRONG>wgetch</STRONG> returns
        the character code for line feed instead.
 
 
 </PRE><H3><a name="h3-Keypad-Mode">Keypad Mode</a></H3><PRE>
-       To  <EM>curses</EM>, key strokes not from the alphabetic section of the keyboard
+       To <EM>curses</EM>, key strokes not from the alphabetic section of the  keyboard
        (those    corresponding    to    the    ECMA-6    character    set--see
-       <STRONG>ascii(7)</STRONG>--optionally  modified by either the control or shift keys) are
+       <STRONG>ascii(7)</STRONG>--optionally modified by either the control or shift keys)  are
        treated as <EM>function</EM> keys.  (In <EM>curses</EM>, the term "function key" includes
-       but  is  not  limited to keycaps engraved with "F1", "PF1", and so on.)
-       If the  window  is  in  keypad  mode,  these  produce  a  numeric  code
-       corresponding  to the <STRONG>KEY_</STRONG> symbols listed in subsection "Predefined Key
-       Codes" below; otherwise, they transmit a sequence  of  codes  typically
-       starting  with  the  escape character, and which must be collected with
+       but is not limited to keycaps engraved with "F1", "PF1",  and  so  on.)
+       If  the  window  is  in  keypad  mode,  these  produce  a  numeric code
+       corresponding to the <STRONG>KEY_</STRONG> symbols listed in subsection "Predefined  Key
+       Codes"  below;  otherwise,  they transmit a sequence of codes typically
+       starting with the escape character, and which must  be  collected  with
        multiple <STRONG>wgetch</STRONG> calls.
 
-       <STRONG>o</STRONG>   The <EM>curses.h</EM> header file declares  many  <EM>predefined</EM>  <EM>function</EM>  <EM>keys</EM>
-           whose  names  begin with <STRONG>KEY_</STRONG>; these object-like macros have values
+       <STRONG>o</STRONG>   The  <EM>curses.h</EM>  header  file  declares many <EM>predefined</EM> <EM>function</EM> <EM>keys</EM>
+           whose names begin with <STRONG>KEY_</STRONG>; these object-like macros  have  values
            outside the range of eight-bit character codes.
 
-       <STRONG>o</STRONG>   In  <EM>ncurses</EM>,  <EM>user-defined</EM>  <EM>function</EM>  <EM>keys</EM>  are   configured   with
-           <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>;  they  have no names, but are also expected to have
+       <STRONG>o</STRONG>   In   <EM>ncurses</EM>,   <EM>user-defined</EM>  <EM>function</EM>  <EM>keys</EM>  are  configured  with
+           <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>; they have no names, but are also expected  to  have
            values outside the range of eight-bit codes.
 
-       A variable intended to hold a function key code must thus  be  of  type
+       A  variable  intended  to hold a function key code must thus be of type
        <EM>short</EM> or larger.
 
-       Most  terminals  one  encounters follow the ECMA-48 standard insofar as
-       their function keys  produce  character  sequences  prefixed  with  the
-       escape  character  ESC.   This  fact  implies  that  <EM>curses</EM> cannot know
-       whether the terminal has sent an ESC key stroke or the beginning  of  a
-       function  key's  character  sequence without waiting to see if, and how
-       soon, further input arrives.   When  <EM>curses</EM>  reads  such  an  ambiguous
-       character,  it sets a timer.  If the remainder of the sequence does not
-       arrive within the designated time, <STRONG>wgetch</STRONG> returns the prefix character;
-       otherwise, it returns the function key code corresponding to the unique
-       sequence defined by the terminal.  Consequently, a  user  of  a  <EM>curses</EM>
-       application  may  experience  a  delay  after pressing ESC while <EM>curses</EM>
-       disambiguates the input; see section "EXTENSIONS" below.  If the window
-       is  in "no time-out" mode, the timer does not expire; it is an infinite
-       (or very  large)  value.   See  <STRONG><A HREF="notimeout.3x.html">notimeout(3x)</A></STRONG>.   Because  function  key
-       sequences  usually  begin  with  an  escape character, the terminal may
-       appear to hang in no time-out mode after  the  user  has  pressed  ESC.
-       Generally, further typing "awakens" <EM>curses</EM>.
+       Most terminals one encounters follow the ECMA-48  standard  insofar  as
+       their  function  keys  produce  character  sequences  prefixed with the
+       escape character ESC.  This fact implies that <EM>curses</EM> cannot distinguish
+       a  user's  press  of  the  escape  key (assuming it sends ESC) from the
+       beginning of a function key's character sequence without waiting to see
+       if,  and  how  soon,  further input arrives.  When <EM>curses</EM> reads such an
+       ambiguous character, it sets a timer.  If the remainder of the sequence
+       does  not  arrive within the designated time, <STRONG>wgetch</STRONG> returns the prefix
+       character; otherwise, it returns the function key code corresponding to
+       the unique sequence defined by the terminal.  Consequently, a user of a
+       <EM>curses</EM> application may experience a delay  after  they  escape  key  is
+       pressed  while <EM>curses</EM> disambiguates the input; see section "EXTENSIONS"
+       below.  If the window is in "no time-out"  mode,  the  timer  does  not
+       expire;  it  is  an infinite (or very large) value.  See <STRONG><A HREF="notimeout.3x.html">notimeout(3x)</A></STRONG>.
+       Because function key sequences usually begin with ESC, the terminal may
+       appear  to  hang  in no time-out mode after the user presses the escape
+       key.  Generally, further typing "awakens" <EM>curses</EM>.
 
 
 </PRE><H3><a name="h3-Ungetting-Characters">Ungetting Characters</a></H3><PRE>
-       <STRONG>ungetch</STRONG>  places  <EM>c</EM> into the input queue to be returned by the next call
-       to <STRONG>wgetch</STRONG>.  A single input queue serves all windows.
+       <STRONG>ungetch</STRONG> places <EM>c</EM> into the input queue to be returned by the  next  call
+       to <STRONG>wgetch</STRONG>.  A single input queue serves all windows associated with the
+       terminal.
 
 
 </PRE><H3><a name="h3-Predefined-Key-Codes">Predefined Key Codes</a></H3><PRE>
               <STRONG>KEY_RIGHT</STRONG>
               <STRONG>KEY_HOME</STRONG>        Home key (upward+left arrow)
               <STRONG>KEY_BACKSPACE</STRONG>   Backspace
+
               <STRONG>KEY_F0</STRONG>          Function keys; space for 64 keys is reserved
               <STRONG>KEY_F(</STRONG><EM>n</EM><STRONG>)</STRONG>        Function key <EM>n</EM> where 0 &lt;= <EM>n</EM> &lt;= 63
-
               <STRONG>KEY_DL</STRONG>          Delete line
               <STRONG>KEY_IL</STRONG>          Insert line
               <STRONG>KEY_DC</STRONG>          Delete character
               <STRONG>KEY_SCREATE</STRONG>     Shifted create key
               <STRONG>KEY_SDC</STRONG>         Shifted delete character key
               <STRONG>KEY_SDL</STRONG>         Shifted delete line key
+
               <STRONG>KEY_SEND</STRONG>        Shifted end key
               <STRONG>KEY_SEOL</STRONG>        Shifted clear line key
-
               <STRONG>KEY_SEXIT</STRONG>       Shifted exit key
               <STRONG>KEY_SFIND</STRONG>       Shifted find key
               <STRONG>KEY_SHELP</STRONG>       Shifted help key
        <EM>curses</EM>  distinguishes  the  Enter  keys  in  the alphabetic and numeric
        keypad sections of a keyboard because (most) terminals  do.   <STRONG>KEY_ENTER</STRONG>
        refers  to the key on the numeric keypad and, like other function keys,
-       and is reliably recognized only if the window's keypad mode is enabled.
+       is reliably recognized only if the window's keypad mode is enabled.
 
        <STRONG>o</STRONG>   The <EM>terminfo</EM> <STRONG>key_enter</STRONG> (<STRONG>kent</STRONG>) capability  describes  the  character
            (sequence)  sent  by  the  Enter  key  of  a terminal's numeric (or
        function  key character sequence from a series of key strokes beginning
        with ESC typed by the user; see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
 
-       <STRONG>has_key</STRONG> was designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and is not found in SVr4  <EM>curses</EM>,
-       4.4BSD <EM>curses</EM>, or any other previous curses implementation.
+       <STRONG>has_key</STRONG> was designed for <EM>ncurses</EM>, and is  not  found  in  SVr4  <EM>curses</EM>,
+       4.4BSD <EM>curses</EM>, or any other previous <EM>curses</EM> implementation.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
        The   behavior  of  <STRONG>wgetch</STRONG>  in  the  presence  of  signal  handlers  is
        unspecified in the SVr4 documentation and X/Open Curses.  In historical
        <EM>curses</EM>  implementations,  it  varied depending on whether the operating
-       system's dispatch of a signal to a handler interrupting a <STRONG>read(2)</STRONG>  call
+       system's dispatch of a signal to a handler interrupted a  <STRONG>read(2)</STRONG>  call
        in  progress,  and  also  (in  some  implementations)  whether an input
-       timeout or non-blocking mode has been set.  Programmers concerned about
+       timeout or non-blocking mode had been set.  Programmers concerned about
        portability  should  be  prepared  for  either of two cases: (a) signal
        receipt does not interrupt <STRONG>wgetch</STRONG>; or  (b)  signal  receipt  interrupts
        <STRONG>wgetch</STRONG> and causes it to return <STRONG>ERR</STRONG> with <STRONG>errno</STRONG> set to <STRONG>EINTR</STRONG>.
 
 
 
-ncurses 6.5                       2024-04-20                    <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                    <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 0142df971c21880a1569f57059ab36a80b3186b5..d157fecf8bacb644515a15578f9a9ffa1f032dd9 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_getstr.3x,v 1.58 2024/04/20 19:18:18 tom Exp @
+  * @Id: curs_getstr.3x,v 1.59 2024/05/11 20:39:53 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>curs_getstr 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_getstr 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_getstr 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_getstr 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>                  Library calls                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
 
        documented in SVr4.
 
        X/Open Curses, Issue 5 (2007) stated that these functions "read at most
-       <EM>n</EM> bytes" but did not state whether the terminating NUL  is  counted  in
+       <EM>n</EM> bytes" but did not state whether the terminating NUL  counted  toward
        that  limit.   X/Open  Curses,  Issue 7 (2009) changed that to say they
        "read at most <EM>n</EM>-1 bytes" to allow for the terminating NUL.  As of 2018,
        some implementations count it, some do not:
 
 
 
-ncurses 6.5                       2024-04-20                   <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                   <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 1857170022bd379b9e6c69cd1fa41b2505369005..fa30badb4cd8371baacf790a17f751f4335fb66b 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_getyx.3x,v 1.44 2024/04/20 21:20:07 tom Exp @
+  * @Id: curs_getyx.3x,v 1.45 2024/05/11 20:39:53 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>curs_getyx 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_getyx 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_getyx 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_getyx 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>                   Library calls                  <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
 
        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
        <STRONG>void</STRONG> <STRONG>getyx(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>);</STRONG>
-       <STRONG>void</STRONG> <STRONG>getparyx(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>);</STRONG>
        <STRONG>void</STRONG> <STRONG>getbegyx(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>);</STRONG>
        <STRONG>void</STRONG> <STRONG>getmaxyx(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>);</STRONG>
 
+       <STRONG>void</STRONG> <STRONG>getparyx(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>);</STRONG>
+
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-       The <STRONG>getyx</STRONG> macro places the current cursor position of the given  window
-       in the two integer variables <EM>y</EM> and <EM>x</EM>.
-
-       If  <EM>win</EM>  is  a  subwindow,  the  <STRONG>getparyx</STRONG>  macro  places  the beginning
-       coordinates of the subwindow relative to the  parent  window  into  two
-       integer variables <EM>y</EM> and <EM>x</EM>.  Otherwise, <STRONG>-1</STRONG> is placed into <EM>y</EM> and <EM>x</EM>.
+       These macros obtain the cursor position and  bounds  information  of  a
+       <EM>curses</EM> window <EM>win</EM>.  <STRONG>getyx</STRONG> stores <EM>win</EM>'s cursor position in the variables
+       <EM>y</EM> and <EM>x</EM>.  <STRONG>getmaxyx</STRONG> stores <EM>win</EM>'s maximum valid row and column numbers in
+       <EM>y</EM> and <EM>x</EM>, respectively.  <STRONG>getbegyx</STRONG> similarly stores the position of <EM>win</EM>'s
+       origin relative to that of the screen (for  <STRONG>stdscr</STRONG>,  these  coordinates
+       are always <STRONG>0</STRONG>).
 
-       Like  <STRONG>getyx</STRONG>,  the  <STRONG>getbegyx</STRONG>  and  <STRONG>getmaxyx</STRONG>  macros  store  the  current
-       beginning coordinates and size of the specified window.
+       If  <EM>win</EM>  is a subwindow (see <STRONG><A HREF="subwin.3x.html">subwin(3x)</A></STRONG>), the <STRONG>getparyx</STRONG> macro places the
+       coordinates of its origin relative to its parent window into <EM>y</EM>  and  <EM>x</EM>,
+       and <STRONG>-1</STRONG> into both if it is not.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
-       The return values of these macros are undefined (i.e., they should  not
-       be used as the right-hand side of assignment statements).
+       No return values are defined for macros.  Do not use them as the right-
+       hand side of assignment statements.
 
 
 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
-       All  of these interfaces are macros.  A "&amp;" is not necessary before the
-       variables <EM>y</EM> and <EM>x</EM>.
+       All of these interfaces are implemented as macros.  An "&amp;" operator  is
+       not necessary before the variables <EM>y</EM> and <EM>x</EM>.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       The <STRONG>getyx</STRONG>, <STRONG>getparyx</STRONG>, <STRONG>getbegyx</STRONG> and  <STRONG>getmaxyx</STRONG>  macros  are  described  in
-       X/Open Curses, Issue 4.
+       These macros are described in X/Open Curses, Issue 4.
 
-       This  implementation also provides functions <STRONG>getbegx</STRONG>, <STRONG>getbegy</STRONG>, <STRONG>getcurx</STRONG>,
-       <STRONG>getcury</STRONG>, <STRONG>getmaxx</STRONG>, <STRONG>getmaxy</STRONG>, <STRONG>getparx</STRONG> and <STRONG>getpary</STRONG> for  compatibility  with
-       older versions of <EM>curses</EM>; see <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>.
+       <EM>ncurses</EM>  also  provides  functions  <STRONG>getbegx</STRONG>, <STRONG>getbegy</STRONG>, <STRONG>getcurx</STRONG>, <STRONG>getcury</STRONG>,
+       <STRONG>getmaxx</STRONG>, <STRONG>getmaxy</STRONG>, <STRONG>getparx</STRONG>, and <STRONG>getpary</STRONG>  for  compatibility  with  older
+       versions of <EM>curses</EM>; see <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>.
 
-       Although  X/Open  Curses  does  not  address this, many implementations
-       provide members of the <STRONG>WINDOW</STRONG> structure containing values corresponding
-       to  these  macros.  For best portability, do not rely on using the data
-       in <STRONG>WINDOW</STRONG>, since some implementations make <STRONG>WINDOW</STRONG> opaque (do not  allow
-       direct use of its members).
+       Although X/Open Curses does not address the issue, many implementations
+       expose members of the <EM>WINDOW</EM> structure containing values  corresponding
+       to   these   macros.    Do   not   rely  on  their  availability;  some
+       implementations make <EM>WINDOW</EM> opaque (that is, they do not  allow  direct
+       access to its members).
 
        Besides the problem of opaque structures, the data stored in like-named
-       members may not have like-values  in  different  implementations.   For
-       example,  the  <STRONG>WINDOW._maxx</STRONG> and <STRONG>WINDOW._maxy</STRONG> values in <EM>ncurses</EM> have (at
-       least  since  release  1.8.1)  differed  by   one   from   some   other
-       implementations.   The  difference  is  hidden  by  means  of the macro
-       <STRONG>getmaxyx</STRONG>.
+       members  may  not  have  values   of   the   same   meaning   different
+       implementations.    For   example,   the  values  of  <STRONG>WINDOW._maxx</STRONG>  and
+       <STRONG>WINDOW._maxy</STRONG> in <EM>ncurses</EM> have long  differed  by  one  from  some  other
+       implementations.  The <STRONG>getmaxyx</STRONG> macro hides this difference.
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
 
 
 
-ncurses 6.5                       2024-04-20                    <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                    <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 15bd134e9b760bff440799924c331a7d7e3234ba..e2a00a6258683c149f212a34d64884a4774fae1b 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_inch.3x,v 1.51 2024/04/20 21:20:07 tom Exp @
+  * @Id: curs_inch.3x,v 1.52 2024/05/11 20:39:53 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>curs_inch 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_inch 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_inch 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_inch 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>                    Library calls                   <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
 
 
        <STRONG>chtype</STRONG> <STRONG>inch(void);</STRONG>
        <STRONG>chtype</STRONG> <STRONG>winch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
-
        <STRONG>chtype</STRONG> <STRONG>mvinch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>);</STRONG>
        <STRONG>chtype</STRONG> <STRONG>mvwinch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>);</STRONG>
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-       These  routines  return  the  character, of type <STRONG>chtype</STRONG>, at the current
-       position in the named window.  If  any  attributes  are  set  for  that
-       position,  their  values  are OR'ed into the value returned.  Constants
-       defined in <STRONG>&lt;curses.h&gt;</STRONG> can be used with the <STRONG>&amp;</STRONG> (logical AND) operator  to
-       extract the character or attributes alone.
-
-
-</PRE><H3><a name="h3-Attributes">Attributes</a></H3><PRE>
-       The  following  bit  masks  may  be  AND-ed with characters returned by
-       <STRONG>winch</STRONG>.
-
-       <STRONG>Name</STRONG>           <STRONG>Description</STRONG>
-       ------------------------------------------------------------------------
-       <STRONG>A_CHARTEXT</STRONG>     Extract character
-       <STRONG>A_ATTRIBUTES</STRONG>   Extract attributes
-       <STRONG>A_COLOR</STRONG>        Extract color pair information
+       <STRONG>winch</STRONG>  returns the <EM>curses</EM> character, including rendering attributes and
+       color pair identifier, at  the  cursor  position  in  the  window  <EM>win</EM>.
+       Subsection  "Video  Attributes"  of  <STRONG><A HREF="curs_attr.3x.html">attron(3x)</A></STRONG> explains how to extract
+       these data from a <EM>chtype</EM>.  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants  of  this
+       function.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
-       Functions prefixed with "mv" first perform cursor movement and fail  if
+       Functions  prefixed with "mv" first perform cursor movement and fail if
        the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
 
-       The  <STRONG>winch</STRONG>  function  does  not  return an error if the window contains
-       characters larger than 8-bits (255).  Only the low-order 8 bits of  the
-       character are used by <STRONG>winch</STRONG>.
+       These functions do not return an error if the window comprises cells of
+       <EM>curses</EM>  complex characters (that is, they contain characters with codes
+       wider than eight bits, or greater  than  255  as  an  unsigned  decimal
+       integer).   They  instead  extract  only  the  low-order  eight bits of
+       character data in the cell.
 
 
 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
-       Note that all of these routines may be macros.
+       <STRONG>inch</STRONG>, <STRONG>mvinch</STRONG>, and <STRONG>mvwinch</STRONG> may be implemented as macros.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-       These functions are described in X/Open Curses, Issue 4.
+       X/Open Curses, Issue 4 describes  these  functions.   It  specifies  no
+       error conditions for them.
 
-       Very  old systems (before standardization) provide a different function
-       with the same name:
 
-       <STRONG>o</STRONG>   The <STRONG>winch</STRONG> function was part of the  original  BSD  curses  library,
-           which   stored   a  7-bit  character  combined  with  the  <EM>standout</EM>
-           attribute.
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+       <STRONG>winch</STRONG>  was  implemented  in  the original 4BSD <EM>curses</EM> library (November
+       1980).  It returned only the character code (as an  integer)  with  the
+       "standout"  attribute bit (the only one it supported) cleared.  Because
+       7-bit ASCII was the only character  encoding  supported,  4BSD's  <STRONG>winch</STRONG>
+       returned a <EM>char</EM> type.
 
-           In BSD curses, <STRONG>winch</STRONG> returned only the character  (as  an  integer)
-           with the <EM>standout</EM> attribute removed.
+       System V  <EM>curses</EM>  (1983)  permitted  several rendering attributes to be
+       combined with a character in a window.   Reflecting  this  improvement,
+       <STRONG>winch</STRONG>  returned  an <EM>int</EM> in SVr3.2 (1988) and switched to <EM>chtype</EM> in SVr4
+       (1989).
 
-       <STRONG>o</STRONG>   System  V  curses  added support for several video attributes which
-           could be combined with characters in the window.
-
-           Reflecting this improvement, the function was altered to return the
-           character combined with all video attributes in a <STRONG>chtype</STRONG> value.
-
-       X/Open Curses does not specify the size and layout of attributes, color
-       and character values in <STRONG>chtype</STRONG>; it is  implementation-dependent.   This
-       implementation  uses 8 bits for character values.  An application using
-       more bits,  e.g.,  a  Unicode  value,  should  use  the  wide-character
-       equivalents to these functions.
+       X/Open Curses does not specify the sizes of the character code or color
+       pair  identifier,  nor  the  quantity  of  rendering attribute bits, in
+       <EM>chtype</EM>; these are implementation-dependent.  <EM>ncurses</EM>  uses  eight  bits
+       for  the  character  code.   An application requiring a wider character
+       type, for instance to handle Unicode,  should  use  the  wide-character
+       counterparts of these functions.
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
 
 
 
-ncurses 6.5                       2024-04-20                     <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                     <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
 <li><a href="#h2-NAME">NAME</a></li>
 <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
-<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
-<ul>
-<li><a href="#h3-Attributes">Attributes</a></li>
-</ul>
-</li>
+<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
 <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
 <li><a href="#h2-NOTES">NOTES</a></li>
 <li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
 <li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
 </ul>
 </div>
index cdb42f278832c476d6f929d5b0e31a50daf0e90c..1b266fd4bd03dec8e947ce7a4116e2cdf16ad6b7 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_mouse.3x,v 1.98 2024/04/20 19:02:07 tom Exp @
+  * @Id: curs_mouse.3x,v 1.99 2024/05/11 20:39:53 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>curs_mouse 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_mouse 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_mouse 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_mouse 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>                   Library calls                  <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
 
        been  enabled  by  <STRONG>mousemask</STRONG>.  Instead, the <EM>xterm</EM> mouse report sequence
        appears in the string read.
 
-       Mouse event reports from <EM>xterm</EM> are not detected correctly in  a  window
-       with  keypad application mode disabled, since they are interpreted as a
-       variety of function key.  Set the terminal's <EM>terminfo</EM> capability  <STRONG>kmous</STRONG>
-       to  "\E[M" (the beginning of the response from <EM>xterm</EM> for mouse clicks).
-       Other values of <STRONG>kmous</STRONG> are permitted under the same assumption, that is,
-       the report begins with that sequence.
+       An <EM>ncurses</EM> window must enable <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG>  to  correctly  receive  mouse
+       event  reports  from  <EM>xterm</EM>  since they are encoded like function keys.
+       Set the terminal's <EM>terminfo</EM> capability <STRONG>kmous</STRONG> to "\E[M"  (the  beginning
+       of  the  response  from <EM>xterm</EM> for mouse clicks).  Other values of <STRONG>kmous</STRONG>
+       are permitted under the same assumption, that  is,  the  report  begins
+       with that sequence.
 
        Because there are no standard response sequences that serve to identify
        terminals supporting the <EM>xterm</EM> mouse protocol, <EM>ncurses</EM> assumes that  if
 
 
 
-ncurses 6.5                       2024-04-20                    <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                    <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 7f04d92eabefa3c54a1e20b9085470123246758f..d61be749383c975ed6d88722119464296c102e04 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_outopts.3x,v 1.64 2024/04/20 21:24:19 tom Exp @
+  * @Id: curs_outopts.3x,v 1.65 2024/05/11 20:39:53 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>curs_outopts 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_outopts 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_outopts 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_outopts 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>                 Library calls                <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
 
 
 
 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
-       <STRONG>clearok</STRONG>,   <STRONG>idlok</STRONG>,   <STRONG>idcok</STRONG>,  <STRONG>immedok</STRONG>,  <STRONG>leaveok</STRONG>,  <STRONG>setscrreg</STRONG>,  <STRONG>wsetscrreg</STRONG>,
-       <STRONG>scrollok</STRONG> - set <EM>curses</EM> output options
+       <STRONG>clearok</STRONG>,   <STRONG>idcok</STRONG>,   <STRONG>idlok</STRONG>,   <STRONG>immedok</STRONG>,   <STRONG>leaveok</STRONG>,  <STRONG>scrollok</STRONG>,  <STRONG>setscrreg</STRONG>,
+       <STRONG>wsetscrreg</STRONG> - set <EM>curses</EM> output options
 
 
 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
        <STRONG>int</STRONG> <STRONG>clearok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
-       <STRONG>int</STRONG> <STRONG>idlok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
        <STRONG>void</STRONG> <STRONG>idcok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
+       <STRONG>int</STRONG> <STRONG>idlok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
        <STRONG>void</STRONG> <STRONG>immedok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
        <STRONG>int</STRONG> <STRONG>leaveok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
        <STRONG>int</STRONG> <STRONG>scrollok(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
        repainted from scratch.
 
 
+</PRE><H3><a name="h3-idcok">idcok</a></H3><PRE>
+       If <STRONG>idcok</STRONG> is called with <STRONG>FALSE</STRONG> as  second  argument,  <STRONG>curses</STRONG>  no  longer
+       considers   using  the  hardware  insert/delete  character  feature  of
+       terminals so equipped.  Use of character insert/delete  is  enabled  by
+       default.   Calling <STRONG>idcok</STRONG> with <STRONG>TRUE</STRONG> as second argument re-enables use of
+       character insertion and deletion.
+
+
 </PRE><H3><a name="h3-idlok">idlok</a></H3><PRE>
        If <STRONG>idlok</STRONG> is called with <STRONG>TRUE</STRONG> as second argument, <STRONG>curses</STRONG> considers using
        the  hardware  insert/delete  line  feature  of  terminals so equipped.
        changed portions of all lines.
 
 
-</PRE><H3><a name="h3-idcok">idcok</a></H3><PRE>
-       If <STRONG>idcok</STRONG> is called with <STRONG>FALSE</STRONG> as  second  argument,  <STRONG>curses</STRONG>  no  longer
-       considers   using  the  hardware  insert/delete  character  feature  of
-       terminals so equipped.  Use of character insert/delete  is  enabled  by
-       default.   Calling <STRONG>idcok</STRONG> with <STRONG>TRUE</STRONG> as second argument re-enables use of
-       character insertion and deletion.
-
-
 </PRE><H3><a name="h3-immedok">immedok</a></H3><PRE>
        If <STRONG>immedok</STRONG> is called with <STRONG>TRUE</STRONG> as second argument, any  change  in  the
        window  image,  such  as  the  ones caused by <STRONG>waddch,</STRONG> <STRONG>wclrtobot,</STRONG> <STRONG>wscrl</STRONG>,
 
 
 
-ncurses 6.5                       2024-04-20                  <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                  <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
@@ -205,8 +205,8 @@ ncurses 6.5                       2024-04-20                  <STRONG><A HREF="c
 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
 <ul>
 <li><a href="#h3-clearok">clearok</a></li>
-<li><a href="#h3-idlok">idlok</a></li>
 <li><a href="#h3-idcok">idcok</a></li>
+<li><a href="#h3-idlok">idlok</a></li>
 <li><a href="#h3-immedok">immedok</a></li>
 <li><a href="#h3-leaveok">leaveok</a></li>
 <li><a href="#h3-scrollok">scrollok</a></li>
index 7695f68c40e428d2d87ddb127454459931843caa..4b84cd78270dc42e3a58e1b9c4ad329fe5a47e4c 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_sp_funcs.3x,v 1.50 2024/04/20 18:56:31 tom Exp @
+  * @Id: curs_sp_funcs.3x,v 1.51 2024/05/11 20:39:53 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>curs_sp_funcs 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_sp_funcs 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_sp_funcs 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_sp_funcs 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>                Library calls               <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
 
 
 
 
-ncurses 6.5                       2024-04-20                 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 386b4b4b39a64300377f965d403af4a7dab3198d..681a1a1a8f9e80fd199477ea88e05decc3cd1105 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_termattrs.3x,v 1.41 2024/04/20 21:20:07 tom Exp @
+  * @Id: curs_termattrs.3x,v 1.42 2024/05/11 20:39:53 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>curs_termattrs 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_termattrs 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_termattrs 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_termattrs 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>               Library calls              <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
 
@@ -48,8 +48,8 @@
 
 </PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
        <STRONG>baudrate</STRONG>,  <STRONG>erasechar</STRONG>,  <STRONG>erasewchar</STRONG>, <STRONG>has_ic</STRONG>, <STRONG>has_il</STRONG>, <STRONG>killchar</STRONG>, <STRONG>killwchar</STRONG>,
-       <STRONG>longname</STRONG>, <STRONG>term_attrs</STRONG>, <STRONG>termattrs</STRONG>, <STRONG>termname</STRONG> -  <EM>curses</EM>  environment  query
-       routines
+       <STRONG>longname</STRONG>, <STRONG>term_attrs</STRONG>,  <STRONG>termattrs</STRONG>,  <STRONG>termname</STRONG>  -  get  and  set  terminal
+       attributes with <EM>curses</EM>
 
 
 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
 
 
 
-ncurses 6.5                       2024-04-20                <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 6160a2cad552bffd401c3ed3752a8b6cc5fb732e..bce853e26b19a8ac3aa2c02c4706edeb9e0a06e2 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_util.3x,v 1.101 2024/04/20 21:20:07 tom Exp @
+  * @Id: curs_util.3x,v 1.102 2024/05/11 20:39:53 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>curs_util 3x 2024-04-20 ncurses 6.5 Library calls</TITLE>
+<TITLE>curs_util 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_util 3x 2024-04-20 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">curs_util 3x 2024-05-11 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>                    Library calls                   <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
 
@@ -64,7 +64,7 @@
 
        <STRONG>void</STRONG> <STRONG>filter(void);</STRONG>
 
-       <STRONG>void</STRONG> <STRONG>use_env(bool</STRONG> <EM>f</EM><STRONG>);</STRONG>
+       <STRONG>void</STRONG> <STRONG>use_env(bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
 
        <STRONG>int</STRONG> <STRONG>putwin(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>FILE</STRONG> <STRONG>*</STRONG><EM>filep</EM><STRONG>);</STRONG>
        <STRONG>WINDOW</STRONG> <STRONG>*getwin(FILE</STRONG> <STRONG>*</STRONG><EM>filep</EM><STRONG>);</STRONG>
@@ -74,7 +74,7 @@
 
        <EM>/*</EM> <EM>extensions</EM> <EM>*/</EM>
        <STRONG>void</STRONG> <STRONG>nofilter(void);</STRONG>
-       <STRONG>void</STRONG> <STRONG>use_tioctl(bool</STRONG> <EM>f</EM><STRONG>);</STRONG>
+       <STRONG>void</STRONG> <STRONG>use_tioctl(bool</STRONG> <EM>bf</EM><STRONG>);</STRONG>
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
 
               <STRONG>use_env</STRONG>   <STRONG>use_tioctl</STRONG>   <STRONG>Summary</STRONG>
               -----------------------------------------------------------------
-              <STRONG>TRUE</STRONG>      <STRONG>FALSE</STRONG>        This  is  the  default behavior.  <EM>ncurses</EM>
-                                     uses  operating   system   calls   unless
-                                     overridden    by    <EM>LINES</EM>    or   <EM>COLUMNS</EM>
+              <STRONG>TRUE</STRONG>      <STRONG>FALSE</STRONG>        <EM>ncurses</EM>   uses   operating  system  calls
+                                     unless overridden  by  <EM>LINES</EM>  or  <EM>COLUMNS</EM>
                                      environment variables; default.
-              <STRONG>TRUE</STRONG>      <STRONG>TRUE</STRONG>         <EM>ncurses</EM> updates <EM>LINES</EM> and  <EM>COLUMNS</EM>  based
+              <STRONG>TRUE</STRONG>      <STRONG>TRUE</STRONG>         <EM>ncurses</EM>  updates  <EM>LINES</EM> and <EM>COLUMNS</EM> based
                                      on operating system calls.
-              <STRONG>FALSE</STRONG>     <STRONG>TRUE</STRONG>         <EM>ncurses</EM>  ignores <EM>LINES</EM> and <EM>COLUMNS</EM>, using
+              <STRONG>FALSE</STRONG>     <STRONG>TRUE</STRONG>         <EM>ncurses</EM> ignores <EM>LINES</EM> and <EM>COLUMNS</EM>,  using
                                      operating system calls to obtain size.
 
 
 </PRE><H3><a name="h3-putwin_getwin">putwin, getwin</a></H3><PRE>
-       The <STRONG>putwin</STRONG> routine writes all data associated with window (or pad)  <EM>win</EM>
-       into  the  file  to  which <EM>filep</EM> points.  This information can be later
+       The  <STRONG>putwin</STRONG> routine writes all data associated with window (or pad) <EM>win</EM>
+       into the file to which <EM>filep</EM> points.  This  information  can  be  later
        retrieved using the <STRONG>getwin</STRONG> function.
 
-       The <STRONG>getwin</STRONG> routine reads window related data  stored  in  the  file  by
-       <STRONG>putwin</STRONG>.   The  routine  then creates and initializes a new window using
-       that data.  It returns a pointer to the new window.  There  are  a  few
+       The  <STRONG>getwin</STRONG>  routine  reads  window  related data stored in the file by
+       <STRONG>putwin</STRONG>.  The routine then creates and initializes a  new  window  using
+       that  data.   It  returns a pointer to the new window.  There are a few
        caveats:
 
-       <STRONG>o</STRONG>   the  data  written  is  a  copy  of  the  <EM>WINDOW</EM> structure, and its
-           associated character cells.  The format differs between  the  wide-
-           character  (<EM>ncursesw</EM>)  and  non-wide  (<EM>ncurses</EM>) libraries.  You can
+       <STRONG>o</STRONG>   the data written is  a  copy  of  the  <EM>WINDOW</EM>  structure,  and  its
+           associated  character  cells.  The format differs between the wide-
+           character (<EM>ncursesw</EM>) and non-wide  (<EM>ncurses</EM>)  libraries.   You  can
            transfer data between the two, however.
 
-       <STRONG>o</STRONG>   the retrieved window is always created as a  top-level  window  (or
+       <STRONG>o</STRONG>   the  retrieved  window  is always created as a top-level window (or
            pad), rather than a subwindow.
 
-       <STRONG>o</STRONG>   the  window's character cells contain the color pair <EM>value</EM>, but not
-           the actual color <EM>numbers</EM>.  If cells in  the  retrieved  window  use
-           color  pairs  which  have not been created in the application using
+       <STRONG>o</STRONG>   the window's character cells contain the color pair <EM>value</EM>, but  not
+           the  actual  color  <EM>numbers</EM>.   If cells in the retrieved window use
+           color pairs which have not been created in  the  application  using
            <STRONG>init_pair</STRONG>, they will not be colored when the window is refreshed.
 
 
 </PRE><H3><a name="h3-delay_output">delay_output</a></H3><PRE>
-       The <STRONG>delay_output</STRONG> routine inserts an <EM>ms</EM>  millisecond  pause  in  output.
-       Employ  this  function  judiciously  when terminal output uses padding,
-       because <EM>ncurses</EM>  transmits  null  characters  (consuming  CPU  and  I/O
-       resources)  instead  of  sleeping  and  requesting  resumption from the
+       The  <STRONG>delay_output</STRONG>  routine  inserts  an <EM>ms</EM> millisecond pause in output.
+       Employ this function judiciously when  terminal  output  uses  padding,
+       because  <EM>ncurses</EM>  transmits  null  characters  (consuming  CPU  and I/O
+       resources) instead of  sleeping  and  requesting  resumption  from  the
        operating system.  Padding is used unless:
 
        <STRONG>o</STRONG>   the terminal description has <STRONG>npc</STRONG> (<STRONG>no_pad_char</STRONG>) capability, or
 
        <STRONG>o</STRONG>   the environment variable <STRONG>NCURSES_NO_PADDING</STRONG> is set.
 
-       If padding is not in use, <EM>ncurses</EM> uses <STRONG>napms</STRONG> to perform the delay.   If
-       the  value  of <EM>ms</EM> exceeds 30,000 (thirty seconds), it is capped at that
+       If  padding is not in use, <EM>ncurses</EM> uses <STRONG>napms</STRONG> to perform the delay.  If
+       the value of <EM>ms</EM> exceeds 30,000 (thirty seconds), it is capped  at  that
        value.
 
 
 </PRE><H3><a name="h3-flushinp">flushinp</a></H3><PRE>
-       The <STRONG>flushinp</STRONG> routine throws away any typeahead that has been  typed  by
+       The  <STRONG>flushinp</STRONG>  routine throws away any typeahead that has been typed by
        the user and has not yet been read by the program.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
-       Except  for  <STRONG>flushinp</STRONG>,  routines that return an integer return <STRONG>ERR</STRONG> upon
-       failure and <STRONG>OK</STRONG> (SVr4 specifies only "an integer value other than  <STRONG>ERR</STRONG>")
+       Except for <STRONG>flushinp</STRONG>, routines that return an integer  return  <STRONG>ERR</STRONG>  upon
+       failure  and <STRONG>OK</STRONG> (SVr4 specifies only "an integer value other than <STRONG>ERR</STRONG>")
        upon successful completion.
 
        Routines that return pointers return <STRONG>NULL</STRONG> on error.
 
-       X/Open   Curses  does  not  specify  any  error  conditions.   In  this
+       X/Open  Curses  does  not  specify  any  error  conditions.   In   this
        implementation
 
           <STRONG>flushinp</STRONG>
                returns an error if the terminal was not initialized.
 
           <STRONG>putwin</STRONG>
-               returns an error if  the  associated  <STRONG>fwrite</STRONG>  calls  return  an
+               returns  an  error  if  the  associated  <STRONG>fwrite</STRONG> calls return an
                error.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
 
 </PRE><H3><a name="h3-filter">filter</a></H3><PRE>
-       The  SVr4  documentation  describes  the  action  of <STRONG>filter</STRONG> only in the
-       vaguest terms.  The description here  is  adapted  from  X/Open  Curses
+       The SVr4 documentation describes the  action  of  <STRONG>filter</STRONG>  only  in  the
+       vaguest  terms.   The  description  here  is adapted from X/Open Curses
        (which erroneously fails to describe the disabling of <STRONG>cuu</STRONG>).
 
 
 </PRE><H3><a name="h3-delay_output-padding">delay_output padding</a></H3><PRE>
-       The  limitation  to  30  seconds and the use of <STRONG>napms</STRONG> differ from other
+       The limitation to 30 seconds and the use of  <STRONG>napms</STRONG>  differ  from  other
        implementations.
 
        <STRONG>o</STRONG>   SVr4 curses does not delay if no padding character is available.
 
-       <STRONG>o</STRONG>   NetBSD curses uses <STRONG>napms</STRONG> when no padding  character  is  available,
-           but  does  not  take  timing  into  account  when using the padding
+       <STRONG>o</STRONG>   NetBSD  curses  uses  <STRONG>napms</STRONG> when no padding character is available,
+           but does not take  timing  into  account  when  using  the  padding
            character.
 
        Neither limits the delay.
 
 
 </PRE><H3><a name="h3-keyname">keyname</a></H3><PRE>
-       The <STRONG>keyname</STRONG> function  may  return  the  names  of  user-defined  string
-       capabilities  which are defined in the terminfo entry via the <STRONG>-x</STRONG> option
+       The  <STRONG>keyname</STRONG>  function  may  return  the  names  of user-defined string
+       capabilities which are defined in the terminfo entry via the <STRONG>-x</STRONG>  option
        of <STRONG>tic</STRONG>.  This implementation automatically assigns at run-time keycodes
-       to  user-defined  strings  which begin with "k".  The keycodes start at
+       to user-defined strings which begin with "k".  The  keycodes  start  at
        KEY_MAX, but are not guaranteed to be the same value for different runs
-       because  user-defined  codes  are merged from all terminal descriptions
-       which have been loaded.  The <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG>  function  controls
-       whether  this  data  is loaded when the terminal description is read by
+       because user-defined codes are merged from  all  terminal  descriptions
+       which  have  been loaded.  The <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG> function controls
+       whether this data is loaded when the terminal description  is  read  by
        the library.
 
 
 </PRE><H3><a name="h3-nofilter_use_tioctl">nofilter, use_tioctl</a></H3><PRE>
-       The <STRONG>nofilter</STRONG> and <STRONG>use_tioctl</STRONG> routines are  specific  to  <EM>ncurses</EM>.   They
-       were  not  supported on Version 7, BSD or System V implementations.  It
-       is recommended  that  any  code  depending  on  <EM>ncurses</EM>  extensions  be
+       The  <STRONG>nofilter</STRONG>  and  <STRONG>use_tioctl</STRONG>  routines are specific to <EM>ncurses</EM>.  They
+       were not supported on Version 7, BSD or System V  implementations.   It
+       is  recommended  that  any  code  depending  on  <EM>ncurses</EM>  extensions be
        conditioned using <STRONG>NCURSES_VERSION</STRONG>.
 
 
 </PRE><H3><a name="h3-putwin_getwin-file-format">putwin/getwin file-format</a></H3><PRE>
        The <STRONG>putwin</STRONG> and <STRONG>getwin</STRONG> functions have several issues with portability:
 
-       <STRONG>o</STRONG>   The   files   written   and   read   by   these  functions  use  an
-           implementation-specific format.  Although the format is an  obvious
+       <STRONG>o</STRONG>   The  files  written  and   read   by   these   functions   use   an
+           implementation-specific  format.  Although the format is an obvious
            target for standardization, it has been overlooked.
 
-           Interestingly  enough,  according to the copyright dates in Solaris
-           source, the functions (along with <STRONG>scr_init</STRONG>, etc.)  originated  with
+           Interestingly enough, according to the copyright dates  in  Solaris
+           source,  the  functions (along with <STRONG>scr_init</STRONG>, etc.) originated with
            the University of California, Berkeley (in 1982) and were later (in
-           1988) incorporated into SVr4.  Oddly, there are no  such  functions
+           1988)  incorporated  into SVr4.  Oddly, there are no such functions
            in the 4.3BSD curses sources.
 
        <STRONG>o</STRONG>   Most implementations simply dump the binary <EM>WINDOW</EM> structure to the
-           file.  These include SVr4 curses, NetBSD and PDCurses, as  well  as
+           file.   These  include SVr4 curses, NetBSD and PDCurses, as well as
            older <EM>ncurses</EM> versions.  This implementation (as well as the X/Open
            variant of Solaris curses, dated 1995) uses textual dumps.
 
-           The implementations which  use  binary  dumps  use  block-I/O  (the
-           <STRONG>fwrite</STRONG>  and  <STRONG>fread</STRONG>  functions).   Those  that use textual dumps use
+           The  implementations  which  use  binary  dumps  use block-I/O (the
+           <STRONG>fwrite</STRONG> and <STRONG>fread</STRONG> functions).  Those  that  use  textual  dumps  use
            buffered-I/O.  A few applications may happen to write extra data in
-           the  file  using these functions.  Doing that can run into problems
-           mixing block- and buffered-I/O.  This  implementation  reduces  the
-           problem  on writes by flushing the output.  However, reading from a
+           the file using these functions.  Doing that can run  into  problems
+           mixing  block-  and  buffered-I/O.  This implementation reduces the
+           problem on writes by flushing the output.  However, reading from  a
            file written using mixed schemes may not be successful.
 
 
 </PRE><H3><a name="h3-unctrl_wunctrl">unctrl, wunctrl</a></H3><PRE>
-       X/Open Curses, Issue 4  describes  these  functions.   It  states  that
+       X/Open  Curses,  Issue  4  describes  these  functions.  It states that
        <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG> will return a null pointer if unsuccessful, but does
-       not define any error conditions.  This implementation checks for  three
+       not  define any error conditions.  This implementation checks for three
        cases:
 
-       <STRONG>o</STRONG>   the  parameter  is  a  7-bit  US-ASCII code.  This is the case that
+       <STRONG>o</STRONG>   the parameter is a 7-bit US-ASCII code.   This  is  the  case  that
            X/Open Curses documented.
 
        <STRONG>o</STRONG>   the parameter is in the range 128-159, i.e., a C1 control code.  If
-           <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG>  has  been  called with a <STRONG>2</STRONG> parameter, <STRONG>unctrl</STRONG>
-           returns the  parameter,  i.e.,  a  one-character  string  with  the
-           parameter  as  the  first  character.   Otherwise, it returns "~@",
+           <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG> has been called with a  <STRONG>2</STRONG>  parameter,  <STRONG>unctrl</STRONG>
+           returns  the  parameter,  i.e.,  a  one-character  string  with the
+           parameter as the first  character.   Otherwise,  it  returns  "~@",
            "~A", etc., analogous to "^@", "^A", C0 controls.
 
            X/Open Curses does not document whether <STRONG>unctrl</STRONG> can be called before
            pointer.
 
        The strings returned by <STRONG>unctrl</STRONG> in this implementation are determined at
-       compile time, showing C1 controls from the upper-128 codes with  a  "~"
-       prefix   rather   than   "^".   Other  implementations  have  different
-       conventions.   For  example,  they  may  show  both  sets  of   control
-       characters  with  "^",  and strip the parameter to 7 bits.  Or they may
-       ignore C1 controls and treat all of the upper-128 codes  as  printable.
-       This  implementation  uses  8  bits  but  does not modify the string to
-       reflect locale.  The <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG> function allows  the  caller
+       compile  time,  showing C1 controls from the upper-128 codes with a "~"
+       prefix  rather  than  "^".   Other   implementations   have   different
+       conventions.    For  example,  they  may  show  both  sets  of  control
+       characters with "^", and strip the parameter to 7 bits.   Or  they  may
+       ignore  C1  controls and treat all of the upper-128 codes as printable.
+       This implementation uses 8 bits but  does  not  modify  the  string  to
+       reflect  locale.   The <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG> function allows the caller
        to change the output of <STRONG>unctrl</STRONG>.
 
-       Likewise,  the <STRONG><A HREF="curs_inopts.3x.html">meta(3x)</A></STRONG> function allows the caller to change the output
-       of <STRONG>keyname</STRONG>, i.e., it determines whether to  use  the  "M-"  prefix  for
-       "meta"    keys    (codes    in   the   range   128   to   255).    Both
-       <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG>  and  <STRONG><A HREF="curs_inopts.3x.html">meta(3x)</A></STRONG>  succeed  only  after  curses   is
-       initialized.   X/Open  Curses  does not document the treatment of codes
+       Likewise, the <STRONG><A HREF="curs_inopts.3x.html">meta(3x)</A></STRONG> function allows the caller to change the  output
+       of  <STRONG>keyname</STRONG>,  i.e.,  it  determines  whether to use the "M-" prefix for
+       "meta"   keys   (codes   in   the   range   128    to    255).     Both
+       <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG>   and  <STRONG><A HREF="curs_inopts.3x.html">meta(3x)</A></STRONG>  succeed  only  after  curses  is
+       initialized.  X/Open Curses does not document the  treatment  of  codes
        128 to 159.  When treating them as "meta" keys (or if <STRONG>keyname</STRONG> is called
-       before   initializing  curses),  this  implementation  returns  strings
+       before  initializing  curses),  this  implementation  returns   strings
        "M-^@", "M-^A", etc.
 
        X/Open Curses documents <STRONG>unctrl</STRONG> as declared in <STRONG>&lt;unctrl.h&gt;</STRONG>, which <EM>ncurses</EM>
-       does.   However,  <EM>ncurses</EM>' <STRONG>&lt;curses.h&gt;</STRONG> includes <STRONG>&lt;unctrl.h&gt;</STRONG>, matching the
+       does.  However, <EM>ncurses</EM>' <STRONG>&lt;curses.h&gt;</STRONG> includes <STRONG>&lt;unctrl.h&gt;</STRONG>,  matching  the
        behavior of SVr4 curses.  Other implementations may not do that.
 
 
 </PRE><H3><a name="h3-use_env_use_tioctl">use_env, use_tioctl</a></H3><PRE>
-       If <EM>ncurses</EM> is configured to provide  the  sp-functions  extension,  the
-       state  of  <STRONG>use_env</STRONG>  and  <STRONG>use_tioctl</STRONG> may be updated before creating each
-       <EM>screen</EM> rather than once  only  (<STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>).   This  feature  of
+       If  <EM>ncurses</EM>  is  configured  to provide the sp-functions extension, the
+       state of <STRONG>use_env</STRONG> and <STRONG>use_tioctl</STRONG> may be  updated  before  creating  each
+       <EM>screen</EM>  rather  than  once  only  (<STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>).  This feature of
        <STRONG>use_env</STRONG> is not provided by other implementations of curses.
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
-       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,    <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,    <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>,   <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>,
+       <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,   <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,    <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>,    <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>,
        <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>,        <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>,        <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
        <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>
 
 
 
-ncurses 6.5                       2024-04-20                     <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                     <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 44cb12fb7122ba8c05caaa7dd880a44d75c13ee0..dd23d8b05f839ea48c93ffe1ce8d7a87af151344 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: infocmp.1m,v 1.109 2024/03/16 15:35:01 tom Exp @
+  * @Id: infocmp.1m,v 1.110 2024/05/11 20:39:53 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>infocmp 1m 2024-03-16 ncurses 6.5 User commands</TITLE>
+<TITLE>infocmp 1m 2024-05-11 ncurses 6.5 User commands</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">infocmp 1m 2024-03-16 ncurses 6.5 User commands</H1>
+<H1 class="no-header">infocmp 1m 2024-05-11 ncurses 6.5 User commands</H1>
 <PRE>
 <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>                      User commands                     <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
 
 
 
 
-ncurses 6.5                       2024-03-16                       <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
+ncurses 6.5                       2024-05-11                       <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 4213f69428fe8574ef9f59471d01d06c3f0243c4..f44336b31985e0ff7ecb0387f521bf2a202edc36 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: infotocap.1m,v 1.41 2024/03/16 15:35:01 tom Exp @
+  * @Id: infotocap.1m,v 1.42 2024/05/11 20:39:53 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>infotocap 1m 2024-03-16 ncurses 6.5 User commands</TITLE>
+<TITLE>infotocap 1m 2024-05-11 ncurses 6.5 User commands</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">infotocap 1m 2024-03-16 ncurses 6.5 User commands</H1>
+<H1 class="no-header">infotocap 1m 2024-05-11 ncurses 6.5 User commands</H1>
 <PRE>
 <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>                    User commands                   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
 
@@ -90,7 +90,7 @@
 
 
 
-ncurses 6.5                       2024-03-16                     <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
+ncurses 6.5                       2024-05-11                     <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 9b061acba0e03839b970fcddd8a32571e3a1a096..64f23bbb82d52af4feb334fca79a626aea90e3d9 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: ncurses.3x,v 1.214 2024/04/27 17:55:43 tom Exp @
+  * @Id: ncurses.3x,v 1.215 2024/05/11 20:39:53 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-04-27 ncurses 6.5 Library calls</TITLE>
+<TITLE>ncurses 3x 2024-05-11 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">ncurses 3x 2024-04-27 ncurses 6.5 Library calls</H1>
+<H1 class="no-header">ncurses 3x 2024-05-11 ncurses 6.5 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>
 
        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
-       document describes <EM>ncurses</EM> version 6.5 (patch 20240427).
+       document describes <EM>ncurses</EM> version 6.5 (patch 20240511).
 
        <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> capability access; a  <EM>termcap</EM>  compatibility  interface;
-       and  an  abstraction  of the system's API for manipulating the terminal
-       (such as <STRONG>termios(3)</STRONG>).
-
-       <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.
+       and  subdivision thereof with <EM>windows</EM> and <EM>pads</EM>; acquisition of keyboard
+       and mouse  events;  control  of  terminal  input  and  output  options;
+       selection   of   color  and  rendering  attributes  (such  as  bold  or
+       underline); the definition and use of <EM>soft</EM> <EM>label</EM> keys;  access  to  the
+       <EM>terminfo</EM>   terminal   capability   database;  a  <EM>termcap</EM>  compatibility
+       interface; and an abstraction of the system's API for manipulating  the
+       terminal (such as <STRONG>termios(3)</STRONG>).
+
+       <EM>ncurses</EM>  implements  the  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.
        cursor and write a character to <STRONG>stdscr</STRONG>, respectively.
 
        Frequent changes to the terminal screen can cause unpleasant flicker or
-       inefficient use of the communication channel  to  the  device,  so  the
-       library  does  not generally update it automatically.  Therefore, after
+       inefficient use of the communication channel to the  device,  so  as  a
+       rule  the  library  does not update it automatically.  Therefore, after
        using <EM>curses</EM> functions to accumulate a set of desired updates that make
        sense to present together, call <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> to tell the library to make
        the user's screen look like <STRONG>stdscr</STRONG>.  The library <EM>optimizes</EM>  its  output
-       by  computing  a minimal number of operations to mutate the screen from
+       by  computing  a minimal volume of operations to mutate the screen from
        its  state  at  the  previous  refresh  to  the  new  one.    Effective
        optimization  demands  accurate  information about the terminal device:
        the management of such information is the province of the  <STRONG><A HREF="curs_terminfo.3x.html">terminfo(3x)</A></STRONG>
        API, a feature of every standard <EM>curses</EM> implementation.
 
-       Special windows called <EM>pads</EM> may also be manipulated.  These are windows
-       that are not constrained to the size of the terminal screen  and  whose
-       contents need not be completely displayed.  See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>.
+       Special  windows  called  <EM>pads</EM>  may also be manipulated.  These are not
+       constrained to the size of the terminal screen and their contents  need
+       not be completely displayed.  See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>.
 
-       In  addition  to drawing characters on the screen, rendering attributes
-       and colors may be supported, causing the characters to show up in  such
-       modes  as  underlined,  in reverse video, or in color on terminals that
-       support such display enhancements.  See <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>.
+       Many  terminals  support configuration of character cell foreground and
+       background colors  as  well  as  rendering  <EM>attributes</EM>  <EM>,</EM>  which  cause
+       characters  to  show  up  in such modes as boldfaced, underlined, or in
+       reverse video.  See <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>.
 
        <EM>curses</EM> predefines constants for a small set of  forms-drawing  graphics
        corresponding  to  the  DEC Alternate Character Set (ACS), a feature of
-       VT100 and other terminals.  See <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG>.
+       VT100 and other terminals.  See <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>.
 
-       <EM>curses</EM> is implemented using the  operating  system's  terminal  driver;
-       keystroke  events are received not as scan codes but as byte sequences.
-       Graphical keycaps (alphanumeric and punctuation keys,  and  the  space)
-       appear  as-is.   Everything  else,  including  the  tab,  enter/return,
-       keypad, arrow, and function keys, appears as a control character  or  a
-       multibyte  <EM>escape</EM>  <EM>sequence.</EM>   <EM>curses</EM>  translates these into unique <EM>key</EM>
-       <EM>codes.</EM>  See <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>.
+       <EM>curses</EM> is implemented using the operating system's terminal driver; key
+       events are received not as scan codes but as byte sequences.  Graphical
+       keycaps (alphanumeric and punctuation keys, and the space)  appear  as-
+       is.   Everything  else, including the tab, enter/return, keypad, arrow,
+       and function keys, appears as a control character or a multibyte <EM>escape</EM>
+       <EM>sequence.</EM>   <EM>curses</EM>  translates  the  latter into unique <EM>key</EM> <EM>codes.</EM>  See
+       <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG>.
 
        <EM>ncurses</EM> provides reimplementations of the SVr4 <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>, <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>, and
-       <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG> libraries to ease construction of user interfaces with <EM>curses</EM>.
+       <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>   libraries;   they   permit   overlapping  windows  and  ease
+       construction of user interfaces with <EM>curses</EM>.
 
 
 </PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
-       The   selection  of  an  appropriate  value  of  <EM>TERM</EM>  in  the  process
+       The  selection  of  an  appropriate  value  of  <EM>TERM</EM>  in  the   process
        environment  is  essential  to  correct  <EM>curses</EM>  and  <EM>terminfo</EM>  library
-       operation.   A  well-configured  system  selects  a  correct <EM>TERM</EM> value
-       automatically;  <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>  may   assist   with   troubleshooting   exotic
+       operation.  A well-configured  system  selects  a  correct  <EM>TERM</EM>  value
+       automatically;   <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>   may   assist   with  troubleshooting  exotic
        situations.
 
-       If  you  change the terminal type, export the <EM>TERM</EM> environment variable
-       in the shell, then  run  <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>  or  the  "<STRONG>tput</STRONG>  <STRONG>init</STRONG>"  command.   See
-       subsection "Tabs and Initialization" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+       If you change the terminal type, export the shell's <EM>TERM</EM> variable, then
+       run  <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>  or  the  "<STRONG>tput</STRONG>  <STRONG>init</STRONG>"  command.  See subsection "Tabs and
+       Initialization" of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
-       If  the  environment  variables  <EM>LINES</EM>  and  <EM>COLUMNS</EM> are set, or if the
-       <EM>curses</EM> program is executing in a graphical windowing  environment,  the
-       information  obtained  thence  overrides that obtained by <EM>terminfo</EM>.  An
+       If the environment variables <EM>LINES</EM> and  <EM>COLUMNS</EM>  are  set,  or  if  the
+       <EM>curses</EM>  program  is executing in a graphical windowing environment, the
+       information obtained thence overrides that obtained  by  <EM>terminfo</EM>.   An
        <EM>ncurses</EM> extension supports resizable terminals; see <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>.
 
-       If the environment variable  <EM>TERMINFO</EM>  is  defined,  a  <EM>curses</EM>  program
-       checks  first  for  a  terminal  type  description  in  the location it
-       identifies.   <EM>TERMINFO</EM>  is  useful  for  developing  experimental  type
-       descriptions  or  when  write  permission to <EM>/usr/share/terminfo</EM> is not
-       available.
+       If  the  environment  variable  <EM>TERMINFO</EM>  is  defined, a <EM>curses</EM> program
+       checks first for  a  terminal  type  description  in  the  location  it
+       identifies.   <EM>TERMINFO</EM>  is  useful  for developing type descriptions or
+       when write permission to <EM>/usr/share/terminfo</EM> is not available.
 
        See section "ENVIRONMENT" below.
 
        In  function  synopses,  <EM>ncurses</EM> man pages apply the following names to
        parameters.
 
-                       <EM>bf</EM>    <EM>bool</EM> (<STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>)
+                       <EM>bf</EM>    <EM>bool</EM> (<STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>)
                        <EM>c</EM>     a <EM>char</EM> or <EM>int</EM>
                        <EM>ch</EM>    a <EM>chtype</EM>
                        <EM>wc</EM>    a <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> or <EM>wint</EM><STRONG>_</STRONG><EM>t</EM>
 
 
 </PRE><H3><a name="h3-Wide-and-Non-wide-Character-Configurations">Wide and Non-wide Character Configurations</a></H3><PRE>
-       This manual page describes functions that appear in  any  configuration
-       of  the  library.   There  are  two  common configurations; see section
-       "ALTERNATE CONFIGURATIONS" below.
+       This  man  page  primarily  surveys  functions  that  appear   in   any
+       configuration of the library.  There are two common configurations; see
+       section "ALTERNATE CONFIGURATIONS" below.
 
        <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 and a color pair in a <EM>chtype</EM> datum, which is often
+                 an alias of <EM>int</EM>.  A string of <EM>curses</EM> characters is similar to
+                 a C <EM>char</EM> string; a <EM>chtype</EM> string ends with an integral <STRONG>0</STRONG>, the
+                 null <EM>curses</EM> character.
 
-                 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.
+                 Attributes  and a color pair selection (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 accessed via an integral bit
+                 mask.
 
                  Each cell of a <EM>WINDOW</EM> is stored as a <EM>chtype</EM>.
 
                           cell  (as  with  accent marks and other diacritics).
                           Each  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>.
+                          more non-spacing characters (see below).   A  string
+                          of  complex  characters  ends  with  a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> whose
+                          <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>  member  is   the   null   wide   character.
+                          Attributes  and a color pair selection are stored in
+                          separate fields of the structure, not combined  into
+                          an integer as in <EM>chtype</EM>.
 
                  Each cell of a <EM>WINDOW</EM> is stored as a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>.
 
-                 <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG> and  <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG>  store  and  retrieve  <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>
-                 data.   The  wide  library API of <EM>ncurses</EM> depends on two data
+                 <STRONG><A HREF="curs_getcchar.3x.html">setcchar(3x)</A></STRONG>  and  <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG>  store  and  retrieve <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>
+                 data.  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
-                          occupies  a  character  cell by itself and typically
-                          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
+                 <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>,
+                          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
                           does not advance the cursor.
 
-                 <EM>wint</EM><STRONG>_</STRONG><EM>t</EM>   can  store  a  <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>   or   the   constant   <STRONG>WEOF</STRONG>,
-                          analogously  to the <EM>int</EM>-sized character manipulation
+                 <EM>wint</EM><STRONG>_</STRONG><EM>t</EM>   can   store   a   <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>   or  the  constant  <STRONG>WEOF</STRONG>,
+                          analogously to the <EM>int</EM>-sized character  manipulation
                           functions of ISO C and its constant <STRONG>EOF</STRONG>.
 
-                 The  wide  library   provides   additional   functions   that
-                 complement  those  in  the non-wide library where the size of
-                 the underlying character type  is  significant.   A  somewhat
-                 regular  naming  convention relates many of the wide variants
-                 to their non-wide counterparts;  where  a  non-wide  function
-                 name  contains  "ch"  or "str", prefix it with "_w" to obtain
-                 the wide counterpart.  For example, <STRONG>waddch</STRONG> becomes  <STRONG>wadd_wch</STRONG>.
-                 (Exceptions  that  add only "w" comprise <STRONG>addwstr</STRONG>, <STRONG>inwstr</STRONG>, and
+                 The   wide   library   provides   additional  functions  that
+                 complement those in the non-wide library where  the  size  of
+                 the  underlying  character  type  is significant.  A somewhat
+                 regular naming convention relates many of the  wide  variants
+                 to  their  non-wide  counterparts;  where a non-wide function
+                 name contains "ch" or "str", prefix it with  "_w"  to  obtain
+                 the  wide counterpart.  For example, <STRONG>waddch</STRONG> becomes <STRONG>wadd_wch</STRONG>.
+                 (Exceptions that add only "w" comprise <STRONG>addwstr</STRONG>,  <STRONG>inwstr</STRONG>,  and
                  their variants.)
 
-                 This convention is inapplicable  to  some  non-wide  function
+                 This  convention  is  inapplicable  to some non-wide function
                  names,  so  other  transformations  are  used  for  the  wide
                  configuration:  the  window  background  management  function
-                 "bkgd"   becomes  "bkgrnd";  the  window  border-drawing  and
-                 -clearing functions are suffixed with "_set";  and  character
-                 attribute   manipulation   functions   like  "attron"  become
+                 "bkgd"  becomes  "bkgrnd";  the  window  border-drawing   and
+                 -clearing  functions  are suffixed with "_set"; and character
+                 attribute  manipulation  functions   like   "attron"   become
                  "attr_on".
 
 
 </PRE><H3><a name="h3-Function-Name-Index">Function Name Index</a></H3><PRE>
        The following table lists the <EM>curses</EM> functions provided in the non-wide
-       and  wide  APIs  and  the  corresponding  man pages that describe them.
-       Those flagged with  "*"  are  <EM>ncurses</EM>-specific,  neither  described  by
+       and wide APIs and the  corresponding  man  pages  that  describe  them.
+       Those  flagged  with  "*"  are  <EM>ncurses</EM>-specific,  neither described by
        X/Open Curses nor present in SVr4.
 
                     <STRONG><EM>curses</EM></STRONG> Function Name     Man Page
                     delch                    <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
                     deleteln                 <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
                     delscreen                <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+
                     delwin                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                     derwin                   <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                     doupdate                 <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
                     dupwin                   <STRONG><A HREF="curs_window.3x.html">curs_window(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>
                     inchstr                  <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
                     init_color               <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                     init_extended_color      <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
+
                     init_extended_pair       <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
                     init_pair                <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
                     initscr                  <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
                     innstr                   <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
-
                     innwstr                  <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
                     ins_nwstr                <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
                     ins_wch                  <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
                     mvcur                    <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
                     mvdelch                  <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
                     mvderwin                 <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+
                     mvget_wch                <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
                     mvget_wstr               <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
                     mvgetch                  <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
-
                     mvgetn_wstr              <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
                     mvgetnstr                <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
                     mvgetstr                 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
                     mvwinstr                 <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
                     mvwinwstr                <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
                     mvwprintw                <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+
                     mvwscanw                 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
                     mvwvline                 <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
-
                     mvwvline_set             <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
                     napms                    <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
                     newpad                   <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
                     slk_color                <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                     slk_init                 <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                     slk_label                <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
-                    slk_noutrefresh          <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
 
+                    slk_noutrefresh          <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                     slk_refresh              <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                     slk_restore              <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
                     slk_set                  <STRONG><A HREF="curs_slk.3x.html">curs_slk(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>
                     wsyncup                  <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
                     wvline                   <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
                     wvline_set               <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
 
-       <EM>ncurses</EM>'s    <EM>screen-pointer</EM>   <EM>extension</EM>   adds   additional   functions
-       corresponding to many of the above, each  with  an  "_sp"  suffix;  see
+       <EM>ncurses</EM>'s   <EM>screen-pointer</EM>   <EM>extension</EM>   adds   additional    functions
+       corresponding  to  many  of  the  above, each with an "_sp" suffix; see
        <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>.
 
-       The  availability  of  some  extensions is configurable when <EM>ncurses</EM> is
-       compiled; see  sections  "ALTERNATE  CONFIGURATIONS"  and  "EXTENSIONS"
+       The availability of some extensions is  configurable  when  <EM>ncurses</EM>  is
+       compiled;  see  sections  "ALTERNATE  CONFIGURATIONS"  and "EXTENSIONS"
        below.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
-       Unless  otherwise  noted, functions that return an integer return <STRONG>OK</STRONG> on
-       success and <STRONG>ERR</STRONG> on failure.  Functions that return pointers return <STRONG>NULL</STRONG>
-       on  failure.   Typically,  <EM>ncurses</EM>  treats  a  null pointer passed as a
-       function parameter as a failure.  Functions prefixed  with  "mv"  first
-       perform  cursor movement and fail if the position (<EM>y</EM>, <EM>x</EM>) is outside the
-       window boundaries.
+       Unless otherwise noted,  functions  that  return  integers  return  the
+       constants  <STRONG>OK</STRONG>  on  success  and <STRONG>ERR</STRONG> on failure; see <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>.
+       Functions that return pointers  return  <STRONG>NULL</STRONG>  on  failure.   Typically,
+       <EM>ncurses</EM>  treats  a  null  pointer  passed  as a function parameter as a
+       failure.  Functions prefixed with "mv" first  perform  cursor  movement
+       and fail if the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries.
 
 
 </PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
-       The following  symbols  from  the  process  environment  customize  the
-       runtime   behavior   of  <EM>ncurses</EM>  applications.   The  library  may  be
-       configured  to  disregard  the   variables   <EM>TERMINFO</EM>,   <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM>,
-       <EM>TERMPATH</EM>,  and  <EM>HOME</EM>,  if  the  user  is  the  superuser (root), or the
+       The  following  symbols  from  the  process  environment  customize the
+       runtime  behavior  of  <EM>ncurses</EM>  applications.   The  library   may   be
+       configured   to   disregard   the  variables  <EM>TERMINFO</EM>,  <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM>,
+       <EM>TERMPATH</EM>, and <EM>HOME</EM>, if  the  user  is  the  superuser  (root),  or  the
        application uses <STRONG>setuid(2)</STRONG> or <STRONG>setgid(2)</STRONG>.
 
 
 </PRE><H3><a name="h3-BAUDRATE"><EM>BAUDRATE</EM></a></H3><PRE>
-       The debugging library checks this variable  when  the  application  has
-       redirected  output  to a file.  Its integral value is used for the baud
-       rate.  If that value is absent or invalid,  <EM>ncurses</EM>  uses  9600.   This
-       feature  allows  testers  to  construct repeatable test cases that take
+       The  debugging  library  checks  this variable when the application has
+       redirected output to a file.  Its integral value is used for  the  baud
+       rate.   If  that  value  is absent or invalid, <EM>ncurses</EM> uses 9600.  This
+       feature allows developers to construct repeatable test cases that  take
        into account optimization decisions that depend on baud rate.
 
 
 </PRE><H3><a name="h3-CC-_command-character_"><EM>CC</EM> (command character)</a></H3><PRE>
-       When set, the <STRONG>command_character</STRONG>  (<STRONG>cmdch</STRONG>)  capability  value  of  loaded
+       When  set,  the  <STRONG>command_character</STRONG>  (<STRONG>cmdch</STRONG>)  capability value of loaded
        <EM>terminfo</EM> entries changes to the value of this variable.  Very few <EM>term-</EM>
        <EM>info</EM> entries provide this feature.
 
        Because this name is also used in development environments to represent
-       the  C  compiler's  name,  <EM>ncurses</EM>  ignores  its value if it is not one
+       the C compiler's name, <EM>ncurses</EM> ignores its  value  if  it  is  not  one
        character in length.
 
 
 </PRE><H3><a name="h3-COLUMNS"><EM>COLUMNS</EM></a></H3><PRE>
        This  variable  specifies  the  width  of  the  screen  in  characters.
-       Applications  running  in  a  windowing environment usually are able to
+       Applications running in a windowing environment  usually  are  able  to
        obtain the width of the window in which they are executing.  If <EM>COLUMNS</EM>
        is not defined and the terminal's screen size is not available from the
-       terminal driver, <EM>ncurses</EM> uses the size specified by the <STRONG>columns</STRONG>  (<STRONG>cols</STRONG>)
-       capability  of  the  terminal type's entry in the <EM>terminfo</EM> database, if
+       terminal  driver, <EM>ncurses</EM> uses the size specified by the <STRONG>columns</STRONG> (<STRONG>cols</STRONG>)
+       capability of the terminal type's entry in the  <EM>terminfo</EM>  database,  if
        any.
 
-       It is important that your application  use  the  correct  screen  size.
-       Automatic   detection   thereof  is  not  always  possible  because  an
-       application may  be  running  on  a  host  that  does  not  honor  NAWS
-       (Negotiations  About  Window  Size)  or as a different user ID than the
-       owner of the  terminal  device  file.   Setting  <EM>COLUMNS</EM>  and/or  <EM>LINES</EM>
-       overrides  the  library's  use  of  the  screen  size obtained from the
+       It  is  important  that  your  application use the correct screen size.
+       Automatic  detection  thereof  is  not  always  possible   because   an
+       application  may  be  running  on  a  host  that  does  not  honor NAWS
+       (Negotiations About Window Size) or as a different  user  ID  than  the
+       owner  of  the  terminal  device  file.   Setting  <EM>COLUMNS</EM> and/or <EM>LINES</EM>
+       overrides the library's use  of  the  screen  size  obtained  from  the
        operating system.
 
-       The <EM>COLUMNS</EM> and <EM>LINES</EM> variables may be specified  independently.   This
-       property  is  useful  to circumvent misfeatures of legacy terminal type
-       descriptions; <STRONG>xterm(1)</STRONG>  descriptions  specifying  65  lines  were  once
-       notorious.    For   best  results,  avoid  specifying  <STRONG>cols</STRONG>  and  <STRONG>lines</STRONG>
+       The  <EM>COLUMNS</EM>  and <EM>LINES</EM> variables may be specified independently.  This
+       property is useful to circumvent misfeatures of  legacy  terminal  type
+       descriptions;  <STRONG>xterm(1)</STRONG>  descriptions  specifying  65  lines  were once
+       notorious.   For  best  results,  avoid  specifying  <STRONG>cols</STRONG>   and   <STRONG>lines</STRONG>
        capability codes in <EM>terminfo</EM> descriptions of terminal emulators.
 
-       <STRONG><A HREF="curs_util.3x.html">use_env(3x)</A></STRONG> can disable use of the process environment  in  determining
-       the  screen size.  <STRONG><A HREF="curs_util.3x.html">use_tioctl(3x)</A></STRONG> can update <EM>COLUMNS</EM> and <EM>LINES</EM> to match
+       <STRONG><A HREF="curs_util.3x.html">use_env(3x)</A></STRONG>  can  disable use of the process environment in determining
+       the screen size.  <STRONG><A HREF="curs_util.3x.html">use_tioctl(3x)</A></STRONG> can update <EM>COLUMNS</EM> and <EM>LINES</EM> to  match
        the screen size obtained from system calls or the terminal database.
 
 
 </PRE><H3><a name="h3-ESCDELAY"><EM>ESCDELAY</EM></a></H3><PRE>
-       For <EM>curses</EM> to distinguish the ESC character  resulting  from  a  user's
-       press  of  the  "Escape"  key on the input device from one beginning an
+       For  <EM>curses</EM>  to  distinguish  the ESC character resulting from a user's
+       press of the "Escape" key on the input device  from  one  beginning  an
        <EM>escape</EM> <EM>sequence</EM> (as commonly produced by function keys), it waits after
-       receiving  the  escape  character  to  see  if  further  characters are
-       available on the input  stream  within  a  short  interval.   A  global
-       variable  <STRONG>ESCDELAY</STRONG>  stores  this interval in milliseconds.  The default
+       receiving the  escape  character  to  see  if  further  characters  are
+       available  on  the  input  stream  within  a  short interval.  A global
+       variable <STRONG>ESCDELAY</STRONG> stores this interval in  milliseconds.   The  default
        value of 1000 (one second) is adequate for most uses.  This environment
        variable overrides it.
 
-       The  most common instance where you may wish to change this value is to
+       The most common instance where you may wish to change this value is  to
        work with a remote host over a slow communication channel.  If the host
-       running  a  <EM>curses</EM>  application  does  not receive the characters of an
-       escape sequence in a timely manner, the library can interpret  them  as
+       running a <EM>curses</EM> application does not  receive  the  characters  of  an
+       escape  sequence  in a timely manner, the library can interpret them as
        multiple key stroke events.
 
        <STRONG>xterm(1)</STRONG> mouse events are a form of escape sequence; therefore, if your
-       application makes heavy use  of  multiple-clicking,  you  may  wish  to
-       lengthen  the  default value because the delay applies to the composite
+       application  makes  heavy  use  of  multiple-clicking,  you may wish to
+       lengthen the default value because the delay applies to  the  composite
        multi-click event as well as the individual clicks.
 
-       Portable applications should not rely upon the presence of <STRONG>ESCDELAY</STRONG>  in
-       either  form,  but  setting  the  environment  variable rather than the
+       Portable  applications should not rely upon the presence of <STRONG>ESCDELAY</STRONG> in
+       either form, but setting  the  environment  variable  rather  than  the
        global variable does not create problems when compiling an application.
 
-       If <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG> is disabled for the  <EM>curses</EM>  window  receiving  input,  a
+       If  <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG>  is  disabled  for  the <EM>curses</EM> window receiving input, a
        program must disambiguate escape sequences itself.
 
 
 </PRE><H3><a name="h3-HOME"><EM>HOME</EM></a></H3><PRE>
-       <EM>ncurses</EM>  may read and write auxiliary terminal descriptions in <EM>.termcap</EM>
+       <EM>ncurses</EM> may read and write auxiliary terminal descriptions in  <EM>.termcap</EM>
        and <EM>.terminfo</EM> files in the user's home directory.
 
 
 </PRE><H3><a name="h3-LINES"><EM>LINES</EM></a></H3><PRE>
-       This counterpart to <EM>COLUMNS</EM> specifies  the  height  of  the  screen  in
-       characters.   The  corresponding <EM>terminfo</EM> capability and code is <STRONG>lines</STRONG>.
+       This  counterpart  to  <EM>COLUMNS</EM>  specifies  the  height of the screen in
+       characters.  The corresponding <EM>terminfo</EM> capability and code  is  <STRONG>lines</STRONG>.
        See the description of the <EM>COLUMNS</EM> variable above.
 
 
 </PRE><H3><a name="h3-MOUSE_BUTTONS_123"><EM>MOUSE_BUTTONS_123</EM></a></H3><PRE>
-       (OS/2 EMX port only) OS/2 numbers a three-button  mouse  inconsistently
-       with  other platforms, such that 1 is the left button, 2 the right, and
-       3 the middle.  This variable customizes  the  mouse  button  numbering.
-       Its  value  must be three digits 1-3 in any order.  By default, <EM>ncurses</EM>
+       (OS/2  EMX  port only) OS/2 numbers a three-button mouse inconsistently
+       with other platforms, such that 1 is the left button, 2 the right,  and
+       3  the  middle.   This  variable customizes the mouse button numbering.
+       Its value must be three digits 1-3 in any order.  By  default,  <EM>ncurses</EM>
        assumes a numbering of "132".
 
 
 </PRE><H3><a name="h3-NCURSES_ASSUMED_COLORS"><EM>NCURSES_ASSUMED_COLORS</EM></a></H3><PRE>
-       If set, this  variable  overrides  the  <EM>ncurses</EM>  library's  compiled-in
-       assumption  that  the terminal's default colors are white on black; see
-       <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>.  Set the foreground  and  background  color  values
-       with  this  environment  variable  by  assigning  it two integer values
+       If  set,  this  variable  overrides  the  <EM>ncurses</EM> library's compiled-in
+       assumption that the terminal's default colors are white on  black;  see
+       <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>.   Set  the  foreground  and background color values
+       with this environment variable  by  assigning  it  two  integer  values
        separated  by  a  comma,  indicating  foregound  and  background  color
        numbers, respectively.
 
-       For  example,  to tell <EM>ncurses</EM> not to assume anything about the colors,
-       use a value of "-1,-1".  To make the  default  color  scheme  green  on
-       black,  use  "2,0".   <EM>ncurses</EM> accepts integral values from -1 up to the
+       For example, to tell <EM>ncurses</EM> not to assume anything about  the  colors,
+       use  a  value  of  "-1,-1".   To make the default color scheme green on
+       black, use "2,0".  <EM>ncurses</EM> accepts integral values from -1  up  to  the
        value of the <EM>terminfo</EM> <STRONG>max_colors</STRONG> (<STRONG>colors</STRONG>) capability.
 
 
 </PRE><H3><a name="h3-NCURSES_CONSOLE2"><EM>NCURSES_CONSOLE2</EM></a></H3><PRE>
-       (MinGW  port  only)  The  <EM>Console2</EM>  program  defectively  handles   the
-       Microsoft  Console  API  call  <EM>CreateConsoleScreenBuffer</EM>.  Applications
-       that use it will hang.  However, it is possible to simulate the  action
-       of  this  call  by mapping coordinates, explicitly saving and restoring
-       the original screen contents.  Setting the environment  variable  <EM>NCGDB</EM>
+       (MinGW   port  only)  The  <EM>Console2</EM>  program  defectively  handles  the
+       Microsoft Console  API  call  <EM>CreateConsoleScreenBuffer</EM>.   Applications
+       that  use it will hang.  However, it is possible to simulate the action
+       of this call by mapping coordinates, explicitly  saving  and  restoring
+       the  original  screen contents.  Setting the environment variable <EM>NCGDB</EM>
        has the same effect.
 
 
 </PRE><H3><a name="h3-NCURSES_GPM_TERMS"><EM>NCURSES_GPM_TERMS</EM></a></H3><PRE>
-       (Linux  only) When <EM>ncurses</EM> is configured to use the GPM interface, this
-       variable may list one or more terminal names  against  which  the  <EM>TERM</EM>
-       variable  (see  below)  is  matched.   An  empty value disables the GPM
-       interface,  using  <EM>ncurses</EM>'s  built-in  support  for   <STRONG>xterm(1)</STRONG>   mouse
+       (Linux only) When <EM>ncurses</EM> is configured to use the GPM interface,  this
+       variable  may  list  one  or more terminal type names against which the
+       <EM>TERM</EM> variable (see below) is matched.  An empty value disables the  GPM
+       interface,   using   <EM>ncurses</EM>'s  built-in  support  for  <STRONG>xterm(1)</STRONG>  mouse
        protocols instead.  If the variable is absent, <EM>ncurses</EM> attempts to open
        GPM if <EM>TERM</EM> contains "linux".
 
 
 </PRE><H3><a name="h3-NCURSES_NO_HARD_TABS"><EM>NCURSES_NO_HARD_TABS</EM></a></H3><PRE>
-       <EM>ncurses</EM> may use tab characters in  cursor  movement  optimization.   In
-       some  cases,  your  terminal  driver may not handle them properly.  Set
+       <EM>ncurses</EM>  may  use  tab  characters in cursor movement optimization.  In
+       some cases, your terminal driver may not  handle  them  properly.   Set
        this environment variable to any value to disable the feature.  You can
        also adjust your <STRONG>stty(1)</STRONG> settings to avoid the problem.
 
 
 </PRE><H3><a name="h3-NCURSES_NO_MAGIC_COOKIE"><EM>NCURSES_NO_MAGIC_COOKIE</EM></a></H3><PRE>
-       Many  terminals  store  video  attributes  as a property of a character
-       cell, as <EM>curses</EM> does.  Historically, some  recorded  changes  in  video
-       attributes  as  data  that  logically  <EM>occupies</EM>  character cells on the
-       display, switching attributes on or off, similarly to tags in a  markup
-       language;  these  are  termed "magic cookies", and must be subsequently
-       overprinted.  If the <EM>terminfo</EM> entry for your  terminal  type  does  not
+       Many terminals store video attributes as  a  property  of  a  character
+       cell,  as  <EM>curses</EM>  does.   Historically, some recorded changes in video
+       attributes as data that  logically  <EM>occupies</EM>  character  cells  on  the
+       display,  switching attributes on or off, similarly to tags in a markup
+       language; these are termed "magic cookies", and  must  be  subsequently
+       overprinted.   If  the  <EM>terminfo</EM>  entry for your terminal type does not
        adequately describe its handling of magic cookies, set this variable to
        any value to instruct <EM>ncurses</EM> to disable attributes entirely.
 
 
 </PRE><H3><a name="h3-NCURSES_NO_PADDING"><EM>NCURSES_NO_PADDING</EM></a></H3><PRE>
        Most  terminal  type  descriptions  in  the  <EM>terminfo</EM>  database  detail
-       hardware   devices.   Many  people  use  <EM>curses</EM>-based  applications  in
-       terminal emulator programs that run in a windowing environment.   These
-       programs  can  duplicate  all  of  the important features of a hardware
-       terminal, but often lack their limitations.  Chief among  these  absent
+       hardware  devices.   Many  people  use  <EM>curses</EM>-based  applications   in
+       terminal  emulator programs that run in a windowing environment.  These
+       programs can duplicate all of the  important  features  of  a  hardware
+       terminal,  but  often lack their limitations.  Chief among these absent
        drawbacks is the problem of data flow management; that is, limiting the
-       speed of communication to what the hardware  could  handle.   Unless  a
-       hardware  terminal  is  interfaced  into a terminal concentrator (which
-       does flow control), an application must manage flow control  itself  to
-       prevent overruns and data loss.
-
-       A  solution  that  comes  at  no hardware cost is for an application to
-       pause after directing a  terminal  to  execute  an  operation  that  it
-       performs  slowly,  such  as  clearing  the display.  Many terminal type
-       descriptions, including that for the VT100, embed delay  specifications
-       in  capabilities.   You  may  wish  to  use these terminal descriptions
-       without paying the performance penalty.  Set <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>PADDING</EM> to  any
-       value  to disable all but mandatory padding.  Mandatory padding is used
+       speed  of  communication  to  what the hardware could handle.  Unless a
+       hardware terminal is interfaced into  a  terminal  concentrator  (which
+       does  flow  control), an application must manage flow itself to prevent
+       overruns and data loss.
+
+       A solution that comes at no hardware cost  is  for  an  application  to
+       pause  after  directing  a  terminal  to  execute  an operation that it
+       performs slowly, such as clearing  the  display.   Many  terminal  type
+       descriptions,  including that for the VT100, embed delay specifications
+       in capabilities.  You may  wish  to  use  these  terminal  descriptions
+       without  paying the performance penalty.  Set <EM>NCURSES</EM><STRONG>_</STRONG><EM>NO</EM><STRONG>_</STRONG><EM>PADDING</EM> to any
+       value to disable all but mandatory padding.  Mandatory padding is  used
        by such terminal capabilities as <STRONG>flash_screen</STRONG> (<STRONG>flash</STRONG>).
 
 
 </PRE><H3><a name="h3-NCURSES_NO_SETBUF"><EM>NCURSES_NO_SETBUF</EM></a></H3><PRE>
-       (Obsolete) Prior to internal changes developed in <EM>ncurses</EM> 5.9  (patches
-       20120825  through 20130126), the library used <STRONG>setbuf(3)</STRONG> to enable fully
-       buffered output when initializing the terminal.  This was done,  as  in
-       SVr4  <EM>curses</EM>,  to  increase performance.  For testing purposes, both of
-       <EM>ncurses</EM> and of certain applications, this feature  was  made  optional.
-       Setting  this  variable  disabled  output buffering, leaving the output
+       (Obsolete)  Prior to internal changes developed in <EM>ncurses</EM> 5.9 (patches
+       20120825 through 20130126), the library used <STRONG>setbuf(3)</STRONG> to enable  fully
+       buffered  output  when initializing the terminal.  This was done, as in
+       SVr4 <EM>curses</EM>, to increase performance.  For testing  purposes,  both  of
+       <EM>ncurses</EM>  and  of  certain applications, this feature was made optional.
+       Setting this variable disabled output  buffering,  leaving  the  output
        stream in the original (usually line-buffered) mode.
 
-       Nowadays, <EM>ncurses</EM> performs its own buffering and does not require  this
-       workaround;  it  does  not  modify the buffering of the standard output
-       stream.  This approach makes signal handling, as for  interrupts,  more
-       robust.   A  drawback  is  that  certain  unconventional programs mixed
-       <STRONG>stdio(3)</STRONG> calls with <EM>ncurses</EM> calls and (usually) got the  behavior  they
-       expected.   This  is  no longer the case; <EM>ncurses</EM> does not write to the
+       Nowadays,  <EM>ncurses</EM> performs its own buffering and does not require this
+       workaround; it does not modify the buffering  of  the  standard  output
+       stream.   This  approach makes signal handling, as for interrupts, more
+       robust.  A drawback  is  that  certain  unconventional  programs  mixed
+       <STRONG>stdio(3)</STRONG>  calls  with <EM>ncurses</EM> calls and (usually) got the behavior they
+       expected.  This is no longer the case; <EM>ncurses</EM> does not  write  to  the
        standard output file descriptor through a <EM>stdio</EM>-buffered stream.
 
-       As a special case, low-level API calls such as <STRONG><A HREF="curs_terminfo.3x.html">putp(3x)</A></STRONG> still  use  the
-       standard  output stream.  High-level <EM>curses</EM> calls such as <STRONG><A HREF="curs_printw.3x.html">printw(3x)</A></STRONG> do
+       As  a  special case, low-level API calls such as <STRONG><A HREF="curs_terminfo.3x.html">putp(3x)</A></STRONG> still use the
+       standard output stream.  High-level <EM>curses</EM> calls such as <STRONG><A HREF="curs_printw.3x.html">printw(3x)</A></STRONG>  do
        not.
 
 
 </PRE><H3><a name="h3-NCURSES_NO_UTF8_ACS"><EM>NCURSES_NO_UTF8_ACS</EM></a></H3><PRE>
-       At initialization, <EM>ncurses</EM> inspects the <EM>TERM</EM> environment  variable  for
-       special   cases   where   VT100   forms-drawing   characters  (and  the
-       corresponding alternate character set <EM>terminfo</EM> capabilities) are  known
+       At  initialization,  <EM>ncurses</EM> inspects the <EM>TERM</EM> environment variable for
+       special  cases  where   VT100   forms-drawing   characters   (and   the
+       corresponding  alternate character set <EM>terminfo</EM> capabilities) are known
        to  be  unsupported  by  terminal  types  that  otherwise  claim  VT100
        compatibility.  Specifically, when running in a UTF-8 locale, the Linux
-       virtual  console device and the GNU <STRONG>screen(1)</STRONG> program ignore them.  Set
+       virtual console device and the GNU <STRONG>screen(1)</STRONG> program ignore them.   Set
        this  variable  to  a  nonzero  value  to  instruct  <EM>ncurses</EM>  that  the
        terminal's ACS support is broken; the library then outputs Unicode code
        points that correspond to the forms-drawing characters.  Set it to zero
        (or a non-integer) to disable the special check for terminal type names
-       matching "linux" or "screen", directing <EM>ncurses</EM> to assume that the  ACS
+       matching  "linux" or "screen", directing <EM>ncurses</EM> to assume that the ACS
        feature works if the terminal type description advertises it.
 
-       As  an  alternative  to  use  of  this  variable, <EM>ncurses</EM> checks for an
+       As an alternative to use  of  this  variable,  <EM>ncurses</EM>  checks  for  an
        extended <EM>terminfo</EM> numeric capability <STRONG>U8</STRONG> that can be compiled using "<STRONG>tic</STRONG>
        <STRONG>-x</STRONG>".  Examples follow.
 
           xterm-utf8|xterm relying on UTF-8 line-graphics,
                   U8#1, use=xterm,
 
-       The  two-character name "U8" was chosen to permit its use via <EM>ncurses</EM>'s
+       The two-character name "U8" was chosen to permit its use via  <EM>ncurses</EM>'s
        <EM>termcap</EM> interface.
 
 
 </PRE><H3><a name="h3-NCURSES_TRACE"><EM>NCURSES_TRACE</EM></a></H3><PRE>
-       At initialization, <EM>ncurses</EM> (in its debugging configuration) checks  for
-       this  variable's  presence.   If  defined  with  an integral value, the
+       At  initialization, <EM>ncurses</EM> (in its debugging configuration) checks for
+       this variable's presence.  If  defined  with  an  integral  value,  the
        library calls <STRONG><A HREF="curs_trace.3x.html">curses_trace(3x)</A></STRONG> with that value as the argument.
 
 
 </PRE><H3><a name="h3-TERM"><EM>TERM</EM></a></H3><PRE>
-       The <EM>TERM</EM> variable denotes the terminal type.  Each is distinct,  though
-       many  are  similar.   It  is commonly set by terminal emulators to help
-       applications find a  workable  terminal  description.   Some  choose  a
-       popular  approximation  such as "ansi", "vt100", or "xterm" rather than
-       an exact fit to their capabilities.  Not infrequently,  an  application
-       will  have  problems  with that approach; for example, a key stroke may
-       not operate  correctly,  or  produce  no  effect  but  seeming  garbage
+       The  <EM>TERM</EM> variable denotes the terminal type.  Each is distinct, though
+       many are similar.  It is commonly set by  terminal  emulators  to  help
+       applications  find  a  workable  terminal  description.   Some choose a
+       popular approximation such as "ansi", "vt100", or "xterm"  rather  than
+       an  exact  fit to their capabilities.  Not infrequently, an application
+       will have problems with that approach; for example, a  key  stroke  may
+       not  operate  correctly,  or  produce  no  effect  but  seeming garbage
        characters on the screen.
 
-       Setting  <EM>TERM</EM>  has  no effect on hardware operation; it affects the way
-       applications communicate with the terminal.   Likewise,  as  a  general
-       rule  (<STRONG>xterm(1)</STRONG>  being a rare exception), terminal emulators that allow
+       Setting <EM>TERM</EM> has no effect on hardware operation; it  affects  the  way
+       applications  communicate  with  the  terminal.  Likewise, as a general
+       rule (<STRONG>xterm(1)</STRONG> being a rare exception), terminal emulators  that  allow
        you to specify <EM>TERM</EM> as a parameter or configuration value do not change
        their behavior to match that setting.
 
 
 </PRE><H3><a name="h3-TERMCAP"><EM>TERMCAP</EM></a></H3><PRE>
        If <EM>ncurses</EM> is configured with <EM>termcap</EM> support, it checks for a terminal
-       type description in <EM>termcap</EM> format if one in  <EM>terminfo</EM>  format  is  not
-       available.   Setting  this variable directs <EM>ncurses</EM> to ignore the usual
-       <EM>termcap</EM> database location, <EM>/etc/termcap</EM>; see <EM>TERMPATH</EM>  below.   <EM>TERMCAP</EM>
-       should  contain  either  a terminal description (with newlines stripped
-       out), or a file name indicating where the information required  by  the
+       type  description  in  <EM>termcap</EM>  format if one in <EM>terminfo</EM> format is not
+       available.  Setting this variable directs <EM>ncurses</EM> to ignore  the  usual
+       <EM>termcap</EM>  database  location, <EM>/etc/termcap</EM>; see <EM>TERMPATH</EM> below.  <EM>TERMCAP</EM>
+       should contain either a terminal description  (with  newlines  stripped
+       out),  or  a file name indicating where the information required by the
        <EM>TERM</EM> environment variable is stored.
 
 
 </PRE><H3><a name="h3-TERMINFO"><EM>TERMINFO</EM></a></H3><PRE>
-       <EM>ncurses</EM>  can  be configured to read terminal type description databases
-       in various locations using different formats.  This variable  overrides
+       <EM>ncurses</EM> can be configured to read terminal type  description  databases
+       in  various locations using different formats.  This variable overrides
        the default location.
 
-       <STRONG>o</STRONG>   Descriptions  in <EM>terminfo</EM> format are normally stored in a directory
-           tree using subdirectories named by the common first letters of  the
+       <STRONG>o</STRONG>   Descriptions in <EM>terminfo</EM> format are normally stored in a  directory
+           tree  using subdirectories named by the common first letters of the
            terminal types named therein.  This is the scheme used in System V.
 
        <STRONG>o</STRONG>   If <EM>ncurses</EM> is configured to use hashed databases, then <EM>TERMINFO</EM> may
-           name its location,  such  as  <EM>/usr/share/terminfo.db</EM>,  rather  than
+           name  its  location,  such  as  <EM>/usr/share/terminfo.db</EM>, rather than
            <EM>/usr/share/terminfo/</EM>.
 
-       The  hashed  database  uses less disk space and is a little faster than
+       The hashed database uses less disk space and is a  little  faster  than
        the directory tree.  However, some applications assume the existence of
        the directory tree, and read it directly rather than using the <EM>terminfo</EM>
        API.
 
-       <STRONG>o</STRONG>   If <EM>ncurses</EM> is configured with <EM>termcap</EM> support,  this  variable  may
+       <STRONG>o</STRONG>   If  <EM>ncurses</EM>  is  configured with <EM>termcap</EM> support, this variable may
            contain the location of a <EM>termcap</EM> file.
 
        <STRONG>o</STRONG>   If the value of <EM>TERMINFO</EM> begins with "hex:" or "b64:", <EM>ncurses</EM> uses
                   TERMINFO=$(infocmp -0 -Q2 -q)
                   export TERMINFO
 
-           The  compiled  description  is  used  only if it corresponds to the
+           The compiled description is used only  if  it  corresponds  to  the
            terminal type identified by <EM>TERM</EM>.
 
-       Setting <EM>TERMINFO</EM> is the simplest, but  not  the  only,  way  to  direct
+       Setting  <EM>TERMINFO</EM>  is  the  simplest,  but  not the only, way to direct
        <EM>ncurses</EM> to a terminal database.  The search path is as follows.
 
        <STRONG>o</STRONG>   the last terminal database to which the running <EM>ncurses</EM> application
 
        <STRONG>o</STRONG>   location(s) configured and compiled into <EM>ncurses</EM>
 
-          <STRONG>o</STRONG>   <EM>/usr/share/terminfo</EM>
+           <STRONG>o</STRONG>   <EM>/usr/share/terminfo</EM>
 
 
 </PRE><H3><a name="h3-TERMINFO_DIRS"><EM>TERMINFO_DIRS</EM></a></H3><PRE>
-       This variable specifies a list of locations, akin  to  <EM>PATH</EM>,  in  which
-       <EM>ncurses</EM>  searches  for  the  terminal  type  descriptions  described by
-       <EM>TERMINFO</EM> above.  The list items are separated by  colons  on  Unix  and
-       semicolons  on  OS/2  EMX.   System V  <EM>terminfo</EM>  lacks  a corresponding
+       This  variable  specifies  a  list of locations, akin to <EM>PATH</EM>, in which
+       <EM>ncurses</EM> searches  for  the  terminal  type  descriptions  described  by
+       <EM>TERMINFO</EM>  above.   The  list  items are separated by colons on Unix and
+       semicolons on  OS/2  EMX.   System V  <EM>terminfo</EM>  lacks  a  corresponding
        feature; <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> is an <EM>ncurses</EM> extension.
 
 
 </PRE><H3><a name="h3-TERMPATH"><EM>TERMPATH</EM></a></H3><PRE>
        If <EM>TERMCAP</EM> does not hold a terminal type description or file name, then
-       <EM>ncurses</EM>  checks  the contents of <EM>TERMPATH</EM>, a list of locations, akin to
+       <EM>ncurses</EM> checks the contents of <EM>TERMPATH</EM>, a list of locations,  akin  to
        <EM>PATH</EM>, in which it searches for <EM>termcap</EM> terminal type descriptions.  The
        list items are separated by colons on Unix and semicolons on OS/2 EMX.
 
 
 
 </PRE><H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
-       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
+       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>.
 
        <STRONG>--disable-overwrite</STRONG>
-            The standard include for <EM>ncurses</EM> is as noted in <STRONG>SYNOPSIS</STRONG>:
+            The standard C preprocessor inclusion for the <EM>curses</EM> library is as
+            follows.
 
                 <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
-            This option is used to avoid filename conflicts  when  <EM>ncurses</EM>  is
-            not the main implementation of curses of the computer.  If <EM>ncurses</EM>
-            is installed  disabling  overwrite,  it  puts  its  headers  in  a
-            subdirectory, e.g.,
+            This option is used to avoid file name conflicts  between  <EM>ncurses</EM>
+            and  an existing <EM>curses</EM> installation on the system.  If <EM>ncurses</EM> is
+            installed disabling overwrite, it  puts  its  header  files  in  a
+            subdirectory.  Here is an example.
 
                 <STRONG>#include</STRONG> <STRONG>&lt;ncurses/curses.h&gt;</STRONG>
 
-            It  also  omits  a  symbolic  link  which  would  allow you to use
-            <STRONG>-lcurses</STRONG> to build executables.
+            Installation  also  omits  a  symbolic  link  that would cause the
+            compiler's <STRONG>-lcurses</STRONG> option  to  link  object  files  with  <EM>ncurses</EM>
+            instead of the system <EM>curses</EM> library.
+
+            The  directory  used  by this configuration of <EM>ncurses</EM> is shown in
+            section "SYNOPSIS" above.
 
        <STRONG>--enable-widec</STRONG>
             The  configure  script   renames   the   library   and   (if   the
        <STRONG>o</STRONG>   to  reuse functions (for example, those that move the cursor before
            another operation), and
 
-       <STRONG>o</STRONG>   a few special cases.
+       <STRONG>o</STRONG>   in a few special cases.
 
        If the standard  output  file  descriptor  of  an  <EM>ncurses</EM>  program  is
        redirected  to  something  that  is  not a terminal device, the library
        An  <EM>ncurses</EM>  application  can  eschew  knowledge  of  <EM>WINDOW</EM>  structure
        internals, instead using accessor functions such as <STRONG><A HREF="curs_opaque.3x.html">is_scrollok(3x)</A></STRONG>.
 
-       <EM>ncurses</EM>  enables  an  application  to  direct  application  output to a
-       printer attached to the terminal device; see <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>.
+       <EM>ncurses</EM>  enables  an  application  to  direct  its  output to a printer
+       attached to the terminal device; see <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>.
 
        <EM>ncurses</EM> offers <STRONG><A HREF="curs_slk.3x.html">slk_attr(3x)</A></STRONG> as a counterpart of <STRONG><A HREF="curs_attr.3x.html">attr_get(3x)</A></STRONG> for  soft-
        label  key lines, and <STRONG><A HREF="curs_slk.3x.html">extended_slk_color(3x)</A></STRONG> as a form of <STRONG><A HREF="curs_slk.3x.html">slk_color(3x)</A></STRONG>
        <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>'s behavior; see <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG>.  <EM>ncurses</EM> is  compiled
        to support them; section "ALTERNATE CONFIGURATIONS" describes how.
 
-       <STRONG>o</STRONG>   Rudimentary   support   for   multi-threaded  applications  may  be
-           available; see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>.
+       <EM>ncurses</EM>    permits   modification   of   <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>'s   behavior;   see
+       <STRONG><A HREF="legacy_coding.3x.html">use_legacy_coding(3x)</A></STRONG>.
+
+       Rudimentary support for multi-threaded applications may  be  available;
+       see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>.
 
-       <STRONG>o</STRONG>   Functions that ease the  management  of  multiple  screens  can  be
-           exposed; see <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>.
+       Functions  that ease the management of multiple screens can be exposed;
+       see <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>.
 
-       <STRONG>o</STRONG>   To aid applications to debug their memory usage, <EM>ncurses</EM> optionally
-           offers functions to more aggressively free  memory  it  dynamically
-           allocates itself; see <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>.
+       To aid applications to debug their  memory  usage,  <EM>ncurses</EM>  optionally
+       offers  functions  to  more  aggressively  free  memory  it dynamically
+       allocates itself; see <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>.
 
-       <STRONG>o</STRONG>   The   library  facilitates  auditing  and  troubleshooting  of  its
-           behavior; see <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>.
+       The library facilitates auditing and troubleshooting of  its  behavior;
+       see <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>.
 
-       <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
-           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.
+       Compiling  <EM>ncurses</EM>  with the option <STRONG>-DUSE_GETCAP</STRONG> causes it 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
+       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.
 
-       <EM>PDCurses</EM>   and  NetBSD  <EM>curses</EM>  incorporate  some  <EM>ncurses</EM>  extensions.
+       <EM>PDCurses</EM>  and  NetBSD  <EM>curses</EM>  incorporate  some  <EM>ncurses</EM>   extensions.
        Individual man pages indicate where this is the case.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
        X/Open Curses defines two levels of conformance, "base" and "enhanced".
        The latter includes several additional features, such as wide-character
-       and color support.  <EM>ncurses</EM> intends base-level conformance with  X/Open
-       Curses,  and  supports  all  features  of its enhanced level except the
+       and  color support.  <EM>ncurses</EM> intends base-level conformance with X/Open
+       Curses, and supports all features of  its  enhanced  level  except  the
        <STRONG>untic</STRONG> utility.
 
-       Differences between X/Open Curses and <EM>ncurses</EM>  are  documented  in  the
+       Differences  between  X/Open  Curses  and <EM>ncurses</EM> are documented in the
        "PORTABILITY" sections of applicable man pages.
 
 
 </PRE><H3><a name="h3-Error-Checking">Error Checking</a></H3><PRE>
-       In  many cases, X/Open Curses is vague about error conditions, omitting
+       In many cases, X/Open Curses is vague about error conditions,  omitting
        some of the SVr4 documentation.
 
-       Unlike other implementations, <EM>ncurses</EM> checks pointer  parameters,  such
-       as  those to <EM>WINDOW</EM> structures, to ensure that they are not null.  This
-       is done primarily to guard  against  programmer  error.   The  standard
+       Unlike  other  implementations, <EM>ncurses</EM> checks pointer parameters, such
+       as those to <EM>WINDOW</EM> structures, to ensure that they are not null.   This
+       is  done  primarily  to  guard  against programmer error.  The standard
        interface does not provide a way for the library to tell an application
-       which of several possible errors occurred.  Relying on  this  (or  some
-       other)   extension   adversely   affects   the  portability  of  <EM>curses</EM>
-       applications.
+       which  of several possible errors occurred.  An application that relies
+       on <EM>ncurses</EM> to check its function parameters  for  validity  limits  its
+       portability and robustness.
 
 
 </PRE><H3><a name="h3-Padding-Differences">Padding Differences</a></H3><PRE>
-       In historical <EM>curses</EM> implementations, delays embedded in  the  <EM>terminfo</EM>
-       capabilities  <STRONG>carriage_return</STRONG>  (<STRONG>cr</STRONG>),  <STRONG>scroll_forward</STRONG> (<STRONG>ind</STRONG>), <STRONG>cursor_left</STRONG>
+       In  historical  <EM>curses</EM> implementations, delays embedded in the <EM>terminfo</EM>
+       capabilities <STRONG>carriage_return</STRONG> (<STRONG>cr</STRONG>),  <STRONG>scroll_forward</STRONG>  (<STRONG>ind</STRONG>),  <STRONG>cursor_left</STRONG>
        (<STRONG>cub1</STRONG>), <STRONG>form_feed</STRONG> (<STRONG>ff</STRONG>), and <STRONG>tab</STRONG> (<STRONG>ht</STRONG>) activated corresponding delay bits
-       in  the  Unix terminal driver.  <EM>ncurses</EM> performs all padding by sending
-       NUL bytes to the device.  This method is slightly more  expensive,  but
-       narrows   the   interface   to   the   Unix  kernel  significantly  and
+       in the Unix terminal driver.  <EM>ncurses</EM> performs all padding  by  sending
+       NUL  bytes  to the device.  This method is slightly more expensive, but
+       narrows  the  interface  to   the   Unix   kernel   significantly   and
        correspondingly increases the package's portability.
 
 
 </PRE><H3><a name="h3-Header-Files">Header Files</a></H3><PRE>
-       The header file <EM>curses.h</EM> itself includes the header files  <EM>stdio.h</EM>  and
+       The  header  file <EM>curses.h</EM> itself includes the header files <EM>stdio.h</EM> and
        <EM>unctrl.h</EM>.
 
        X/Open Curses has more to say,
 
-           The  inclusion  of  <EM>curses.h</EM>  may make visible all symbols from the
+           The inclusion of <EM>curses.h</EM> may make visible  all  symbols  from  the
            headers <EM>stdio.h</EM>, <EM>term.h</EM>, <EM>termios.h</EM>, and <EM>wchar.h</EM>.
 
        but does not finish the story.  A more complete account follows.
 
-       <STRONG>o</STRONG>   Starting with 4BSD <EM>curses</EM> (1980) all implementations have  provided
+       <STRONG>o</STRONG>   Starting  with 4BSD <EM>curses</EM> (1980) all implementations have provided
            a <EM>curses.h</EM> file.
 
-           BSD  <EM>curses</EM>  code  included  <EM>curses.h</EM> and <EM>unctrl.h</EM> from an internal
+           BSD <EM>curses</EM> code included <EM>curses.h</EM> and  <EM>unctrl.h</EM>  from  an  internal
            header file <EM>curses.ext</EM>, where "ext" abbreviated "externs".
 
-           The implementations of <EM>printw</EM> and <EM>scanw</EM> used undocumented  internal
-           functions  of  the  standard I/O library (<STRONG>_</STRONG><EM>doprnt</EM> and <STRONG>_</STRONG><EM>doscan</EM>), but
+           The  implementations of <EM>printw</EM> and <EM>scanw</EM> used undocumented internal
+           functions of the standard I/O library (<STRONG>_</STRONG><EM>doprnt</EM>  and  <STRONG>_</STRONG><EM>doscan</EM>),  but
            nothing in <EM>curses.h</EM> itself relied upon <EM>stdio.h</EM>.
 
-       <STRONG>o</STRONG>   SVr2 <EM>curses</EM> added <EM>newterm</EM>, which relies upon  <EM>stdio.h</EM>  because  its
+       <STRONG>o</STRONG>   SVr2  <EM>curses</EM>  added  <EM>newterm</EM>, which relies upon <EM>stdio.h</EM> because its
            function prototype employs the <EM>FILE</EM> type.
 
            SVr4 <EM>curses</EM> added <EM>putwin</EM> and <EM>getwin</EM>, which also use <EM>stdio.h</EM>.
 
            X/Open Curses specifies all three of these functions.
 
-           SVr4  <EM>curses</EM>  and  X/Open  Curses  do  not require the developer to
-           include <EM>stdio.h</EM> before <EM>curses.h</EM>.  Both document use  of  <EM>curses</EM>  as
+           SVr4 <EM>curses</EM> and X/Open Curses  do  not  require  the  developer  to
+           include  <EM>stdio.h</EM>  before  <EM>curses.h</EM>.  Both document use of <EM>curses</EM> as
            requiring only <EM>curses.h</EM>.
 
            As a result, standard <EM>curses.h</EM> always includes <EM>stdio.h</EM>.
 
-       <STRONG>o</STRONG>   X/Open  Curses  and  SVr4  <EM>curses</EM>  are inconsistent with respect to
+       <STRONG>o</STRONG>   X/Open Curses and SVr4 <EM>curses</EM>  are  inconsistent  with  respect  to
            <EM>unctrl.h</EM>.
 
-           As noted in <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <EM>ncurses</EM> includes <EM>unctrl.h</EM> from  <EM>curses.h</EM>
+           As  noted in <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>, <EM>ncurses</EM> includes <EM>unctrl.h</EM> from <EM>curses.h</EM>
            (as SVr4 does).
 
-       <STRONG>o</STRONG>   X/Open  Curses's  comments  about <EM>term.h</EM> and <EM>termios.h</EM> may refer to
+       <STRONG>o</STRONG>   X/Open Curses's comments about <EM>term.h</EM> and <EM>termios.h</EM>  may  refer  to
            HP-UX and AIX.
 
-           HP-UX <EM>curses</EM> includes <EM>term.h</EM> from <EM>curses.h</EM> to declare <EM>setupterm</EM>  in
+           HP-UX  <EM>curses</EM> includes <EM>term.h</EM> from <EM>curses.h</EM> to declare <EM>setupterm</EM> in
            <EM>curses.h</EM>, but <EM>ncurses</EM> and Solaris <EM>curses</EM> do not.
 
-           AIX  <EM>curses</EM>  includes  <EM>term.h</EM>  and  termios.h<EM>.</EM>   Again, <EM>ncurses</EM> and
+           AIX <EM>curses</EM> includes  <EM>term.h</EM>  and  <EM>termios.h</EM>.   Again,  <EM>ncurses</EM>  and
            Solaris <EM>curses</EM> do not.
 
-       <STRONG>o</STRONG>   X/Open Curses says that <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>term.h</EM>, but  does  not
+       <STRONG>o</STRONG>   X/Open  Curses  says that <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>term.h</EM>, but does not
            require it to do so.
 
-           Some  programs  use functions declared in both <EM>curses.h</EM> and <EM>term.h</EM>,
-           and must include both header files in the same  module.   Very  old
-           versions  of  AIX  <EM>curses</EM>  required  inclusion  of  <EM>curses.h</EM> before
+           Some programs use functions declared in both <EM>curses.h</EM>  and  <EM>term.h</EM>,
+           and  must  include  both header files in the same module.  Very old
+           versions of  AIX  <EM>curses</EM>  required  inclusion  of  <EM>curses.h</EM>  before
            <EM>term.h</EM>.
 
-           The header files supplied by <EM>ncurses</EM> include the  standard  library
-           headers  required  for  its  declarations,  so <EM>ncurses</EM>'s own header
-           files can be included in  any  order.   But  for  portability,  you
+           The  header  files supplied by <EM>ncurses</EM> include the standard library
+           headers required for its  declarations,  so  <EM>ncurses</EM>'s  own  header
+           files  can  be  included  in  any  order.  But for portability, you
            should include <EM>curses.h</EM> before <EM>term.h</EM>.
 
-       <STRONG>o</STRONG>   X/Open  Curses  says  "may make visible" because including a header
-           file does not necessarily make visible all of  the  symbols  in  it
+       <STRONG>o</STRONG>   X/Open Curses says "may make visible" because  including  a  header
+           file  does  not  necessarily  make visible all of the symbols in it
            (consider <STRONG>#ifdef</STRONG> and similar).
 
-           For  instance, <EM>ncurses</EM>'s <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>wchar.h</EM> if the proper
-           symbol is defined, and if <EM>ncurses</EM> is configured for  wide-character
-           support.   If  <EM>wchar.h</EM> is included, its symbols <STRONG>may</STRONG> be made visible
+           For instance, <EM>ncurses</EM>'s <EM>curses.h</EM> <STRONG>may</STRONG> include <EM>wchar.h</EM> if the  proper
+           symbol  is defined, and if <EM>ncurses</EM> is configured for wide-character
+           support.  If <EM>wchar.h</EM> is included, its symbols <STRONG>may</STRONG> be  made  visible
            depending on the value of the <STRONG>_XOPEN_SOURCE</STRONG> feature test macro.
 
        <STRONG>o</STRONG>   X/Open Curses mandates an application's inclusion of one standard C
-           library  header  in  a  special  case:  <EM>stdarg.h</EM> before <EM>curses.h</EM> to
-           prototype the functions <EM>vw</EM><STRONG>_</STRONG><EM>printw</EM> and  <EM>vw</EM><STRONG>_</STRONG><EM>scanw</EM>  (as  well  as  the
-           obsolete  <EM>vwprintw</EM>  and  <EM>vwscanw</EM>).   Each of these takes a variadic
+           library header in a  special  case:  <EM>stdarg.h</EM>  before  <EM>curses.h</EM>  to
+           prototype  the  functions  <EM>vw</EM><STRONG>_</STRONG><EM>printw</EM>  and  <EM>vw</EM><STRONG>_</STRONG><EM>scanw</EM> (as well as the
+           obsolete <EM>vwprintw</EM> and <EM>vwscanw</EM>).  Each of  these  takes  a  variadic
            argument list, a <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter, like that of <STRONG>printf(3)</STRONG>.
 
-           SVr3 <EM>curses</EM> introduced  the  two  obsolete  functions,  and  X/Open
-           Curses  the  others.   In  between,  SVr4  <EM>curses</EM>  provided for the
-           possibility that an application might include either  <EM>varargs.h</EM>  or
-           <EM>stdarg.h</EM>.   These  represented  contrasting  approaches to handling
-           variadic argument lists.  The older interface,  <EM>varargs.h</EM>,  used  a
-           pointer  to <EM>char</EM> for variadic functions' <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter.  Later,
-           the list acquired its own standard data type, <EM>va</EM><STRONG>_</STRONG><EM>list</EM>,  defined  in
-           <EM>stdarg.h</EM>,  empowering the compiler to check the types of a function
-           call's actual parameters against the formal ones  declared  in  its
+           SVr3  <EM>curses</EM>  introduced  the  two  obsolete  functions, and X/Open
+           Curses the others.   In  between,  SVr4  <EM>curses</EM>  provided  for  the
+           possibility  that  an application might include either <EM>varargs.h</EM> or
+           <EM>stdarg.h</EM>.  These represented  contrasting  approaches  to  handling
+           variadic  argument  lists.   The older interface, <EM>varargs.h</EM>, used a
+           pointer to <EM>char</EM> for variadic functions' <EM>va</EM><STRONG>_</STRONG><EM>list</EM> parameter.   Later,
+           the  list  acquired its own standard data type, <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, defined in
+           <EM>stdarg.h</EM>, empowering the compiler to check the types of a  function
+           call's  actual  parameters  against the formal ones declared in its
            prototype.
 
-           No   conforming   implementations   of  X/Open  Curses  require  an
+           No  conforming  implementations  of  X/Open   Curses   require   an
            application to include <EM>stdarg.h</EM> before <EM>curses.h</EM> because they either
-           have  allowed  for  a  special type, or, like <EM>ncurses</EM>, they include
+           have allowed for a special type, or,  like  <EM>ncurses</EM>,  they  include
            <EM>stdarg.h</EM> themselves to provide a portable interface.
 
 
 
 
 
-ncurses 6.5                       2024-04-27                       <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+ncurses 6.5                       2024-05-11                       <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 6380a6dda3b7cdd2ea660efc3884676912d44845..61748865d68b94aa05724256982fc955d7935021 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: MKncu_config.in,v 1.24 2024/04/20 21:13:38 tom Exp @
+  * @Id: MKncu_config.in,v 1.25 2024/05/11 20:39:53 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>ncursesw6-config 1 2024-04-20 ncurses 6.5 User commands</TITLE>
+<TITLE>ncursesw6\-config 1 2024-05-11 ncurses 6.5 User commands</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">ncursesw6-config 1 2024-04-20 ncurses 6.5 User commands</H1>
+<H1 class="no-header">ncursesw6\-config 1 2024-05-11 ncurses 6.5 User commands</H1>
 <PRE>
 <STRONG><A HREF="ncursesw6-config.1.html">ncursesw6-config(1)</A></STRONG>              User commands             <STRONG><A HREF="ncursesw6-config.1.html">ncursesw6-config(1)</A></STRONG>
 
 
 
 
-ncurses 6.5                       2024-04-20               <STRONG><A HREF="ncursesw6-config.1.html">ncursesw6-config(1)</A></STRONG>
+ncurses 6.5                       2024-05-11               <STRONG><A HREF="ncursesw6-config.1.html">ncursesw6-config(1)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 9c9b5b8e52ac58153a53a276324d4faac65b2593..bf87ffa5ac48b8df59d539dc4df70901ff1bea48 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: term.5,v 1.77 2024/04/20 21:24:19 tom Exp @
+  * @Id: term.5,v 1.78 2024/05/11 20:39:53 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>term 5 2024-04-20 ncurses 6.5 File formats</TITLE>
+<TITLE>term 5 2024-05-11 ncurses 6.5 File formats</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">term 5 2024-04-20 ncurses 6.5 File formats</H1>
+<H1 class="no-header">term 5 2024-05-11 ncurses 6.5 File formats</H1>
 <PRE>
 <STRONG><A HREF="term.5.html">term(5)</A></STRONG>                          File formats                          <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
 
        term - compiled <EM>terminfo</EM> terminal description
 
 
-</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
-       <STRONG>term</STRONG>
-
-
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+       <STRONG><A HREF="tic.1m.html">tic(1)</A></STRONG> compiles a <EM>terminfo</EM> terminal type description, and <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>
+       reads it.  A compiled description may be stored  in  a  file  or  in  a
+       database  of, potentially, many such descriptions.  Further, a compiled
+       description may be in one of two formats: one similar to that  used  by
+       System V,  and  a  newer,  extensible  format  employed  exclusively by
+       <EM>ncurses</EM>.
+
 
 </PRE><H3><a name="h3-Storage-Location">Storage Location</a></H3><PRE>
-       Compiled   terminfo   descriptions   are  placed  under  the  directory
-       <STRONG>/usr/share/terminfo</STRONG>.  Two configurations are supported  (when  building
-       the <EM>ncurses</EM> libraries):
+       Compiled  <EM>terminfo</EM>  <EM>descriptions</EM>  <EM>are</EM>  <EM>placed</EM>   under   the   directory
+       <EM>/usr/share/terminfo</EM>.   One  of  two  configurations  is  selected  when
+       building the <EM>ncurses</EM> libraries.
 
        <STRONG>directory</STRONG> <STRONG>tree</STRONG>
             A two-level scheme is used to avoid a linear search of a huge Unix
-            system directory: <STRONG>/usr/share/terminfo/c/name</STRONG>  where  <EM>name</EM>  is  the
+            system  directory:  <EM>/usr/share/terminfo/</EM>c<EM>/</EM>name  where  <EM>name</EM> is the
             name of the terminal, and <EM>c</EM> is the first character of <EM>name</EM>.  Thus,
-            <EM>act4</EM>  can  be  found  in  the   file   <STRONG>/usr/share/terminfo/a/act4</STRONG>.
-            Synonyms  for  the same terminal are implemented by multiple links
-            to the same compiled file.
+            the  compiled  description of terminal type "act4" is found in the
+            file <EM>/usr/share/terminfo/a/act4</EM>.  Synonyms for the  same  terminal
+            are implemented by multiple links to the same compiled file.
 
        <STRONG>hashed</STRONG> <STRONG>database</STRONG>
-            Using Berkeley database, two types  of  records  are  stored:  the
-            terminfo  data  in  the  same format as stored in a directory tree
-            with the terminfo's primary name as a key, and records  containing
-            only aliases pointing to the primary name.
-
-            If  built  to  write  hashed  databases,  <EM>ncurses</EM>  can  still read
-            terminfo databases organized as a directory tree, but cannot write
-            entries  into  the  directory  tree.   It  can  write (or rewrite)
+            Using  the Berkeley database API, two types of records are stored:
+            the <EM>terminfo</EM> data in the same format as that stored in a directory
+            tree  with  the terminal's primary type name as a key, and records
+            containing only aliases pointing to the primary name.
+
+            If built to write hashed databases, <EM>ncurses</EM> can still  read  <EM>term-</EM>
+            <EM>info</EM>  databases  organized  as  a directory tree, but cannot write
+            entries into the  directory  tree.   It  can  write  (or  rewrite)
             entries in the hashed database.
 
-            <EM>ncurses</EM>  distinguishes  the  two  cases  in   the   <EM>TERMINFO</EM>   and
-            <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM>  environment  variable  by assuming a directory tree
-            for entries that correspond to an existing directory,  and  hashed
+            <EM>ncurses</EM>   distinguishes   the   two  cases  in  the  <EM>TERMINFO</EM>  and
+            <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> environment variable by assuming  a  directory  tree
+            for entries that correspond to an existing directory, and a hashed
             database otherwise.
 
 
 </PRE><H3><a name="h3-Legacy-Storage-Format">Legacy Storage Format</a></H3><PRE>
        The format has been chosen so that it will be the same on all hardware.
-       An 8 or more bit  byte  is  assumed,  but  no  assumptions  about  byte
-       ordering or sign extension are made.
+       A  byte  of  at  least eight bits' width is assumed, but no assumptions
+       about bit ordering or sign extension are made.
 
-       The  compiled  file  is  created  with the <STRONG>tic</STRONG> program, and read by the
-       routine <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>.  The file is divided into six parts:
+       The file is divided into six parts:
 
-            a) <EM>header</EM>,
+            (a) <EM>header</EM>,
 
-            b) <EM>terminal</EM> <EM>names</EM>,
+            (b) <EM>terminal</EM> <EM>names</EM>,
 
-            c) <EM>Boolean</EM> <EM>flags</EM>,
+            (c) <EM>Boolean</EM> <EM>flags</EM>,
 
-            d) <EM>numbers</EM>,
+            (d) <EM>numbers</EM>,
 
-            e) <EM>strings</EM>, and
+            (e) <EM>strings</EM>, and
 
-            f) <EM>string</EM> <EM>table</EM>.
+            (f) a <EM>string</EM> <EM>table</EM>.
 
        The <EM>header</EM> section begins the file.  This section  contains  six  short
        integers in the format described below.  These integers are
 
-            (1) the <EM>magic</EM> <EM>number</EM> (octal 0432);
+            (1) the <EM>magic</EM> <EM>number</EM>
+                 (octal 0432);
 
-            (2) the size, in bytes, of the <EM>terminal</EM> <EM>names</EM> section;
+            (2) the size,
+                 in bytes, of the <EM>terminal</EM> <EM>names</EM> section;
 
             (3) the number of bytes in the <EM>Boolean</EM> <EM>flags</EM> section;
 
             (4) the number of short integers in the <EM>numbers</EM> section;
 
-            (5) the number of offsets (short integers) in the <EM>strings</EM> section;
+            (5) the number of offsets
+                 (short integers) in the <EM>strings</EM> section;
 
-            (6) the size, in bytes, of the <EM>string</EM> <EM>table</EM>.
+            (6) the size,
+                 in bytes, of the <EM>string</EM> <EM>table</EM>.
 
        The  capabilities  in  the <EM>Boolean</EM> <EM>flags</EM>, <EM>numbers</EM>, and <EM>strings</EM> sections
-       are in the same order as the file &lt;term.h&gt;.
+       are in the same order as in the header file <EM>term.h</EM>.
 
-       Short integers are signed, in the range  -32768  to  32767.   They  are
-       stored  as  two  8-bit  bytes.   The  first  byte  contains  the  least
-       significant 8 bits of the value, and the second byte contains the  most
-       significant 8 bits.  (Thus, the value represented is 256*second+first.)
-       This format corresponds to the hardware of the VAX and PDP-11 (that is,
-       little-endian  machines).   Machines  where this does not correspond to
-       the hardware must read the  integers  as  two  bytes  and  compute  the
-       little-endian value.
+       Short integers are signed, in the range -32768 to 32767, and stored  in
+       little-endian format.
 
        Numbers  in  a  terminal  description,  whether they are entries in the
        <EM>numbers</EM> or <EM>strings</EM> table, are positive  integers.   Boolean  flags  are
        treated  as  positive  one-byte integers.  In each case, those positive
-       integers represent a terminal capability.  The  terminal  compiler  tic
+       integers represent a terminal capability.  The  terminal  compiler  <EM>tic</EM>
        uses  negative  integers  to handle the cases where a capability is not
        available:
 
-       <STRONG>o</STRONG>   If a capability is absent from this terminal, tic stores  a  -1  in
+       <STRONG>o</STRONG>   If a capability is absent from this terminal, <EM>tic</EM> stores  a  -1  in
            the corresponding table.
 
            The integer value -1 is represented by two bytes 0377, 0377.
            Absent Boolean values are represented by the byte 0 (false).
 
-       <STRONG>o</STRONG>   If  a capability has been canceled from this terminal, tic stores a
+       <STRONG>o</STRONG>   If  a capability has been canceled from this terminal, <EM>tic</EM> stores a
            -2 in the corresponding table.
 
            The integer value -2 is represented by two bytes 0377, 0376.
        <STRONG>o</STRONG>   Other negative values are illegal.
 
        The <EM>terminal</EM> <EM>names</EM> section comes after the  <EM>header</EM>.   It  contains  the
-       first  line  of the terminfo description, listing the various names for
+       first  line  of the <EM>terminfo</EM> description, listing the various names for
        the terminal, separated by  the  "|"  character.   The  <EM>terminal</EM>  <EM>names</EM>
        section is terminated with an ASCII NUL character.
 
        string capabilities referenced in the <EM>strings</EM> section.  Each string  is
        null-terminated.  Special characters in ^X or \c notation are stored in
        their interpreted  form,  not  the  printing  representation.   Padding
-       information  $&lt;nn&gt;  and  parameter  information %x are stored intact in
+       information  <STRONG>$&lt;</STRONG><EM>nn</EM><STRONG>&gt;</STRONG>  and  parameter  information <STRONG>%x</STRONG> are stored intact in
        uninterpreted form.
 
 
 </PRE><H3><a name="h3-Extended-Storage-Format">Extended Storage Format</a></H3><PRE>
-       The previous section describes the conventional terminfo binary format.
+       The previous section describes the conventional <EM>terminfo</EM> binary format.
        With  some  minor variations of the offsets (see PORTABILITY), the same
        binary format is used in all modern Unix systems.  Each system  uses  a
        predefined set of Boolean, number or string capabilities.
 
-       The <EM>ncurses</EM> libraries and applications support extended terminfo binary
-       format, allowing users to  define  capabilities  which  are  loaded  at
+       The <EM>ncurses</EM> libraries and applications support extended <EM>terminfo</EM> binary
+       format, allowing users  to  define  capabilities  that  are  loaded  at
        runtime.   This  extension  is made possible by using the fact that the
-       other implementations stop reading the terminfo  data  when  they  have
-       reached  the  end  of the size given in the header.  <EM>ncurses</EM> checks the
-       size, and if it exceeds that due to the predefined data,  continues  to
-       parse according to its own scheme.
+       other implementations stop reading the <EM>terminfo</EM> data  when  they  reach
+       the  end of the size given in the header.  <EM>ncurses</EM> checks the size, and
+       if it exceeds that due to  the  predefined  data,  continues  to  parse
+       according to its own scheme.
 
        First, it reads the extended header (5 short integers):
 
 
        The  extended  string  table  contains  values for string capabilities.
        After the end of these values, it contains the names for  each  of  the
-       extended  capabilities  in  order,  e.g.,  Booleans,  then  numbers and
-       finally strings.
+       extended capabilities in order: Boolean, numeric, and string.
 
-       By storing terminal descriptions  in  this  way,  <EM>ncurses</EM>  is  able  to
+       By  storing  terminal  descriptions  in  this  way,  <EM>ncurses</EM> is able to
        provide  a  database  useful  with  legacy  applications,  as  well  as
-       providing data for applications which need  more  than  the  predefined
-       capabilities.  See <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG> for an overview of the way <EM>ncurses</EM> uses
-       this extended information.
+       providing  data  for applications that require more information about a
+       terminal type than was anticipated by X/Open Curses.  See  <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
+       for an overview of the way <EM>ncurses</EM> uses this extended information.
 
-       Applications which manipulate terminal data  can  use  the  definitions
-       described  in  <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>  which  associate the long capability
-       names with members of a <STRONG>TERMTYPE</STRONG> structure.
+       Applications  that  manipulate  terminal  data  can use the definitions
+       described in <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG> associating the long  capability  names
+       with members of a <EM>TERMTYPE</EM> structure.
 
 
 </PRE><H3><a name="h3-Extended-Number-Format">Extended Number Format</a></H3><PRE>
-       On occasion, 16-bit signed integers are not large enough.  With <EM>ncurses</EM>
-       6.1,  a new format was introduced by making a few changes to the legacy
-       format:
+       On  occasion, 16-bit signed integers are not large enough.  <EM>ncurses</EM> 6.1
+       introduced a new format by making a few changes to the legacy format:
 
        <STRONG>o</STRONG>   a different magic number (octal 01036)
 
            to signed 32-bit integers.
 
        To   maintain   compatibility,  the  library  presents  the  same  data
-       structures to direct users of the <STRONG>TERMTYPE</STRONG>  structure  as  in  previous
+       structures to direct users of the <EM>TERMTYPE</EM>  structure  as  in  previous
        formats.   However,  that  cannot  provide  callers  with  the extended
        numbers.   The  library  uses  a  similar  but  hidden  data  structure
-       <STRONG>TERMTYPE2</STRONG> to provide data for the terminfo functions.
+       <EM>TERMTYPE2</EM> to provide data for the <EM>terminfo</EM> functions.
 
 
 </PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
 
 
 </PRE><H3><a name="h3-Binary-Format">Binary Format</a></H3><PRE>
-       X/Open  Curses  does  not  specify  a format for the terminfo database.
-       System V curses used a directory-tree of binary files, one per terminal
+       X/Open  Curses  does  not  specify  a format for the <EM>terminfo</EM> database.
+       System V <EM>curses</EM> used a directory-tree of binary files, one per terminal
        description.
 
-       Despite  the  consistent  use  of  little-endian  for  numbers  and the
-       otherwise  self-describing  format,  it  is  not  wise  to   count   on
-       portability   of   binary  terminfo  entries  between  commercial  Unix
-       versions.  The problem is that there are at  least  three  versions  of
-       terminfo  (under  HP-UX,  AIX,  and OSF/1) which diverged from System V
-       terminfo after SVr1, and  have  added  extension  capabilities  to  the
-       string  table  that  (in  the  binary format) collide with System V and
-       X/Open Curses extensions.  See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for detailed  discussion  of
-       terminfo source compatibility issues.
-
-       This  implementation  is by default compatible with the binary terminfo
-       format used by Solaris curses, except in a few less-used details  where
+       Despite  the  consistent use of little-endian numbers and the otherwise
+       self-describing format, it is not  wise  to  count  on  portability  of
+       binary  <EM>terminfo</EM> entries between commercial Unix versions.  The problem
+       is that there are at least three versions  of  <EM>terminfo</EM>  (under  HP-UX,
+       AIX,  and  OSF/1)  each  of which diverged from System V <EM>terminfo</EM> after
+       SVr1, and added extension capabilities to the string table that (in the
+       binary format) collide with System V and X/Open Curses extensions.  See
+       <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for detailed discussion of  <EM>terminfo</EM>  source  compatibility
+       issues.
+
+       This  implementation  is by default compatible with the binary <EM>terminfo</EM>
+       format used by Solaris <EM>curses</EM>, except in a few less-used details  where
        it  was  found that the latter did not match X/Open Curses.  The format
        used by the other Unix versions can be matched by building <EM>ncurses</EM> with
        different configuration options.
 
 
 </PRE><H3><a name="h3-Magic-Codes">Magic Codes</a></H3><PRE>
-       The  magic  number  in a binary terminfo file is the first 16-bits (two
+       The  magic  number  in a binary <EM>terminfo</EM> file is the first 16 bits (two
        bytes).  Besides making it more reliable for the library to check  that
-       a  file  is  terminfo,  utilities such as <STRONG>file(1)</STRONG> also use that to tell
+       a  file  is  <EM>terminfo</EM>,  utilities such as <STRONG>file(1)</STRONG> also use that to tell
        what the file-format is.  System V defined more than one magic  number,
        with 0433, 0435 as screen-dumps (see <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>).  This implementation
        uses 01036 as a continuation of that sequence,  but  with  a  different
        high-order byte to avoid confusion.
 
    <STRONG>The</STRONG> <EM>TERMTYPE</EM> <STRONG>Structure</STRONG>
-       Direct  access  to  the  <STRONG>TERMTYPE</STRONG>  structure  is  provided  for  legacy
-       applications.  Portable  applications  should  use  the  <STRONG>tigetflag</STRONG>  and
-       related  functions  described in <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> for reading terminal
-       capabilities.
+       Direct  access  to  the  <EM>TERMTYPE</EM>  structure  is  provided  for  legacy
+       applications.   Portable  applications  should  use  <STRONG><A HREF="curs_terminfo.3x.html">tigetflag(3x)</A></STRONG>  and
+       related functions to read terminal capabilities.
 
 
 </PRE><H3><a name="h3-Mixed-case-Terminal-Names">Mixed-case Terminal Names</a></H3><PRE>
-       A small number of terminal descriptions  use  uppercase  characters  in
-       their  names.   If  the  underlying  filesystem  ignores the difference
-       between  uppercase  and  lowercase,  <EM>ncurses</EM>  represents   the   "first
-       character"  of  the  terminal  name used as the intermediate level of a
+       A  small  number  of  terminal descriptions use uppercase characters in
+       their names.  If the underlying  file  system  ignores  the  difference
+       between   uppercase   and  lowercase,  <EM>ncurses</EM>  represents  the  "first
+       character" of the terminal name used as the  intermediate  level  of  a
        directory tree in (two-character) hexadecimal form.
 
 
 </PRE><H3><a name="h3-Limits">Limits</a></H3><PRE>
        <EM>ncurses</EM> stores compiled terminal descriptions in three related formats,
-       described in the sections
+       described in the subsections
 
-       <STRONG>o</STRONG>   <STRONG>LEGACY</STRONG> <STRONG>STORAGE</STRONG> <STRONG>FORMAT</STRONG>, and
+       <STRONG>o</STRONG>   <STRONG>Legacy</STRONG> <STRONG>Storage</STRONG> <STRONG>Format</STRONG>, and
 
-       <STRONG>o</STRONG>   <STRONG>EXTENDED</STRONG> <STRONG>STORAGE</STRONG> <STRONG>FORMAT</STRONG>, and
+       <STRONG>o</STRONG>   <STRONG>Extended</STRONG> <STRONG>Storage</STRONG> <STRONG>Format</STRONG>, and
 
-       <STRONG>o</STRONG>   <STRONG>EXTENDED</STRONG> <STRONG>NUMBER</STRONG> <STRONG>FORMAT</STRONG>.
+       <STRONG>o</STRONG>   <STRONG>Extended</STRONG> <STRONG>Number</STRONG> <STRONG>Format</STRONG>.
 
-       The  legacy storage format and the extended number format differ by the
-       types of numeric capability which they can store (i.e.,  16-bit  versus
-       32-bit  integers).   The  extended storage format introduced by <EM>ncurses</EM>
-       5.0 adds data to either of these formats.
+       The legacy storage format and the extended number format differ by  the
+       types  of  numeric  capability  that  they  can store (for example, 16-
+       versus 32-bit integers).  The extended  storage  format  introduced  by
+       <EM>ncurses</EM> 5.0 adds data to either of these formats.
 
        Some limitations apply:
 
-       <STRONG>o</STRONG>   total compiled entries cannot  exceed  4096  bytes  in  the  legacy
+       <STRONG>o</STRONG>   total  compiled  entries  cannot  exceed  4096  bytes in the legacy
            format.
 
-       <STRONG>o</STRONG>   total  compiled  entries  cannot exceed 32768 bytes in the extended
+       <STRONG>o</STRONG>   total compiled entries cannot exceed 32768 bytes  in  the  extended
            format.
 
        <STRONG>o</STRONG>   the name field cannot exceed 128 bytes.
 
-       Compiled entries are limited to 32768 bytes because  offsets  into  the
-       <EM>strings</EM>  <EM>table</EM>  use  two-byte  integers.   The legacy format could have
-       supported 32768-byte entries, but  was  limited  to  a  virtual  memory
+       Compiled  entries  are  limited to 32768 bytes because offsets into the
+       <EM>strings</EM> <EM>table</EM> use two-byte integers.   The  legacy  format  could  have
+       supported  32768-byte  entries,  but  was  limited  to a virtual memory
        page's 4096 bytes.
 
 
 </PRE><H2><a name="h2-EXAMPLES">EXAMPLES</a></H2><PRE>
-       As  an  example,  here  is  a description for the Lear-Siegler ADM-3, a
-       popular though rather stupid early terminal:
+       Here is a <EM>terminfo</EM> description of the  Lear-Siegler  ADM-3,  a  popular
+       though rather stupid early terminal.
 
        adm3a|lsi adm3a,
                am,
                cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
                home=^^, ind=^J,
 
-       and a hexadecimal dump of the compiled terminal description:
+       A  hexadecimal  dump  of  its  compiled terminal description (in legacy
+       format) follows.
 
        0000  1a 01 10 00 02 00 03 00  82 00 31 00 61 64 6d 33  ........ ..1.adm3
        0010  61 7c 6c 73 69 20 61 64  6d 33 61 00 00 01 50 00  a|lsi ad m3a...P.
 
 </PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
        Thomas E. Dickey
-       extended terminfo format for <EM>ncurses</EM> 5.0
+       extended <EM>terminfo</EM> format for <EM>ncurses</EM> 5.0
        hashed database support for <EM>ncurses</EM> 5.6
        extended number support for <EM>ncurses</EM> 6.1
 
        Eric S. Raymond
-       documented legacy terminfo format, e.g., from <EM>pcurses</EM>.
+       documented legacy <EM>terminfo</EM> format (that used by <EM>pcurses</EM>).
 
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
 
 
 
-ncurses 6.5                       2024-04-20                           <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
+ncurses 6.5                       2024-05-11                           <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
 <li><a href="#h2-NAME">NAME</a></li>
-<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
 <li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
 <ul>
 <li><a href="#h3-Storage-Location">Storage Location</a></li>
index 9a8858878771d12bc4287490819ed960c9f5588c..f19821b1936e05a7fbdbd48aa378f1c67f1e49fd 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: term.7,v 1.48 2024/03/16 15:35:01 tom Exp @
+  * @Id: term.7,v 1.49 2024/05/11 20:39:53 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>term 7 2024-03-16 ncurses 6.5 Miscellaneous</TITLE>
+<TITLE>term 7 2024-05-11 ncurses 6.5 Miscellaneous</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">term 7 2024-03-16 ncurses 6.5 Miscellaneous</H1>
+<H1 class="no-header">term 7 2024-05-11 ncurses 6.5 Miscellaneous</H1>
 <PRE>
 <STRONG><A HREF="term.7.html">term(7)</A></STRONG>                          Miscellaneous                         <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
 
 
 
 
-ncurses 6.5                       2024-03-16                           <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
+ncurses 6.5                       2024-05-11                           <STRONG><A HREF="term.7.html">term(7)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 67061141faca5c934f2a11408997bf95e372cf7e..f833c6957dbfa4f49bdde4b9efdc9332a32d6bea 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: terminfo.head,v 1.65 2024/04/20 21:14:00 tom Exp @
+  * @Id: terminfo.head,v 1.66 2024/05/11 20:39:53 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>terminfo 5 2024-04-20 ncurses 6.5 File formats</TITLE>
+<TITLE>terminfo 5 2024-05-11 ncurses 6.5 File formats</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">terminfo 5 2024-04-20 ncurses 6.5 File formats</H1>
+<H1 class="no-header">terminfo 5 2024-05-11 ncurses 6.5 File formats</H1>
 <PRE>
 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>                      File formats                      <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
@@ -71,7 +71,7 @@
        have, by specifying how to perform screen operations, and by specifying
        padding requirements and initialization sequences.
 
-       This document describes <EM>ncurses</EM> version 6.5 (patch 20240427).
+       This document describes <EM>ncurses</EM> version 6.5 (patch 20240511).
 
 
 </PRE><H3><a name="h3-terminfo-Entry-Syntax"><EM>terminfo</EM> Entry Syntax</a></H3><PRE>
 
 
 
-ncurses 6.5                       2024-04-20                       <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ncurses 6.5                       2024-05-11                       <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index e5e6107244cf4604586094aff3f9264782762a20..30efeb1a12fd3792f20bf686dd9830c94b63df6a 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tic.1m,v 1.110 2024/04/27 17:57:06 tom Exp @
+  * @Id: tic.1m,v 1.111 2024/05/11 20:39:53 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>tic 1m 2024-04-27 ncurses 6.5 User commands</TITLE>
+<TITLE>tic 1m 2024-05-11 ncurses 6.5 User commands</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">tic 1m 2024-04-27 ncurses 6.5 User commands</H1>
+<H1 class="no-header">tic 1m 2024-05-11 ncurses 6.5 User commands</H1>
 <PRE>
 <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>                          User commands                         <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
 
 
 
 
-ncurses 6.5                       2024-04-27                           <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
+ncurses 6.5                       2024-05-11                           <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index c3aca2c592fd55d228efadef827f9a38ae6479ee..85daf55cdbc9dc1aeb8af7cc3877cb6ad29445d8 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: toe.1m,v 1.68 2024/04/20 18:59:26 tom Exp @
+  * @Id: toe.1m,v 1.69 2024/05/11 20:39:53 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>toe 1m 2024-04-20 ncurses 6.5 User commands</TITLE>
+<TITLE>toe 1m 2024-05-11 ncurses 6.5 User commands</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">toe 1m 2024-04-20 ncurses 6.5 User commands</H1>
+<H1 class="no-header">toe 1m 2024-05-11 ncurses 6.5 User commands</H1>
 <PRE>
 <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>                          User commands                         <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
 
 
 
 
-ncurses 6.5                       2024-04-20                           <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
+ncurses 6.5                       2024-05-11                           <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index ed8fe3805afb3451d40075c48bc3d978f00212ad..c7bf1e1064b8f5f95763cb5445bb56286838249f 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tput.1,v 1.113 2024/04/20 19:58:50 tom Exp @
+  * @Id: tput.1,v 1.114 2024/05/11 20:39:53 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>tput 1 2024-04-20 ncurses 6.5 User commands</TITLE>
+<TITLE>tput 1 2024-05-11 ncurses 6.5 User commands</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">tput 1 2024-04-20 ncurses 6.5 User commands</H1>
+<H1 class="no-header">tput 1 2024-05-11 ncurses 6.5 User commands</H1>
 <PRE>
 <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>                          User commands                         <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
 
 
 
 
-ncurses 6.5                       2024-04-20                           <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
+ncurses 6.5                       2024-05-11                           <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index a5669568fb27542268dcf7936a7295962d47ed64..b2b865cc3cbf82a8cd75677e42f9ea6e7243a5a8 100644 (file)
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tset.1,v 1.85 2024/04/27 17:57:47 tom Exp @
+  * @Id: tset.1,v 1.86 2024/05/11 20:39:53 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>tset 1 2024-04-27 ncurses 6.5 User commands</TITLE>
+<TITLE>tset 1 2024-05-11 ncurses 6.5 User commands</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">tset 1 2024-04-27 ncurses 6.5 User commands</H1>
+<H1 class="no-header">tset 1 2024-05-11 ncurses 6.5 User commands</H1>
 <PRE>
 <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>                          User commands                         <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
 
 
 
 
-ncurses 6.5                       2024-04-27                           <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
+ncurses 6.5                       2024-05-11                           <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
index 14690a544c5e3f31dc445c5185f9620634fcf386..856e64b02ed76435f692cb5b93d6ccfb0356a8db 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: MKncu_config.in,v 1.24 2024/04/20 21:13:38 tom Exp $
-.TH @LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config 1 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.\" $Id: MKncu_config.in,v 1.25 2024/05/11 20:39:53 tom Exp $
+.TH @LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@\-config 1 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
 .SH NAME
 \fB\%@LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config\fP \-
 configuration helper for \fI\%ncurses\fP libraries
index d1eb9a311fc81ae718d564648c615a80b053b957..502425afd354e60214291f8e7676580a8c25235f 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_add_wch.3x,v 1.62 2024/04/20 21:20:07 tom Exp $
-.TH curs_add_wch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_add_wch.3x,v 1.63 2024/05/11 21:31:45 tom Exp $
+.TH curs_add_wch 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -52,7 +52,7 @@
 \fB\%mvwadd_wch\fP,
 \fB\%echo_wchar\fP,
 \fB\%wecho_wchar\fP \-
-add a \fIcurses\fR complex character to a window and advance the cursor
+add a \fIcurses\fR complex character to a window, possibly advancing the cursor
 .SH SYNOPSIS
 .nf
 \fB#include <curses.h>
@@ -66,70 +66,143 @@ add a \fIcurses\fR complex character to a window and advance the cursor
 \fBint wecho_wchar(WINDOW *\fIwin\fP, const cchar_t *\fIwch\fP);
 .fi
 .SH DESCRIPTION
-.SS add_wch
-The
-\fBadd_wch\fP,
-\fBwadd_wch\fP,
-\fBmvadd_wch\fP, and
-\fBmvwadd_wch\fP
-functions put the complex character \fIwch\fP into the given
-window at its current position,
-which is then advanced.
-These functions perform
-wrapping and special-character processing as follows:
+.SS wadd_wch
+.B \%wadd_wch
+writes the complex character
+.I wch
+to the window
+.IR win ","
+then may advance the cursor position,
+analogously to the standard C library's \fI\%putwchar\fP(3).
+\fB\%ncurses\fP(3X) describes the variants of this function.
+.PP
+Much behavior depends on whether the wide characters in
+.I wch
+are spacing or non-spacing;
+see subsection \*(``Complex Characters\*('' below.
 .bP
-If \fIwch\fP refers to a spacing character,
-then any previous character at that location is removed.
-A new character specified by \fIwch\fP is
-placed at that location with rendition specified by \fIwch\fP.
-The cursor then advances after this spacing character,
-to prepare for writing the next character on the screen.
-.IP
-The newly added spacing character is the base of the active complex character.
-Subsequent non-spacing characters can be combined with this base
-until another spacing character is written to the screen,
-or the cursor is moved, e.g., using \fBwmove\fP.
+If
+.I wch
+contains a spacing character,
+then any character at the cursor is first removed.
+The complex character
+.IR wch ","
+with its attributes and color pair identifier,
+becomes the
+.I base
+of the
+.IR "active complex character" "."
 .bP
-If \fIwch\fP refers to a non-spacing character,
-it is appended to the active complex character,
-retaining the previous characters at that location.
-The rendition specified by \fIwch\fP is ignored.
-.IP
-The cursor is not advanced after adding a non-spacing character.
-Subsequent calls to add non-spacing characters will update the same position.
+If
+.I wch
+contains only non-spacing characters,
+.\" XXX: see wadd_wch_literal (the beginning of the array may be nonspacing)
+they are combined with the active complex character.
+.I curses
+ignores its attributes and color pair identifier,
+and does not advance the cursor.
+.PP
+Further non-spacing characters added with
+.B \%wadd_wch
+are not written at the new cursor position but combine with the active
+complex character until another spacing character is written to the
+window or the cursor is moved.
+.PP
+If advancement occurs at the right margin,
+.bP
+the cursor automatically wraps to the beginning of the next line,
+then,
+.bP
+if it was at the bottom of the scrolling region,
+and if \fB\%scrollok\fP(3X) is enabled for
+.IR win ,
+the scrolling region scrolls up one line.
+.PP
+If
+.I wch
+is a
+backspace,
+carriage return,
+line feed,
+or
+tab,
+the cursor moves appropriately within the window.
 .bP
-If the character part of \fIwch\fP is
-a tab, newline, backspace or other control character,
-the window is updated and the cursor moves as if \fBaddch\fP were called.
-.SS echo_wchar
-The \fBecho_wchar\fP
-function is functionally equivalent to a call to
-\fBadd_wch\fP
-followed by a call to
-\fB\%refresh\fP(3X).
-Similarly, the
-\fBwecho_wchar\fP
-is functionally equivalent to a call to
-\fBwadd_wch\fP
-followed by a call to
-\fBwrefresh\fP.
-The knowledge
-that only a single character is being output is taken into consideration and,
-for non-control characters, a considerable performance gain might be seen
-by using the *\fBecho\fP* functions instead of their equivalents.
-.SS "Line Graphics"
-Like \fB\%addch\fP(3X),
-\fBaddch_wch\fP accepts symbols which make it simple to draw lines and other
-frequently used special characters.
-These symbols correspond to the same VT100 line-drawing set as
-\fB\%addch\fP(3X).
+Backspace moves the cursor one character left;
+at the left margin of a window,
+it does nothing.
+.bP
+Carriage return moves the cursor to the left margin on the current line
+of the window.
+.bP
+Line feed does a \fB\%clrtoeol\fP(3X),
+then advances as if from the right margin.
+.bP
+Tab advances the cursor to the next tab stop
+(possibly on the next line);
+these are placed at every eighth column by default.
+Alter the tab interval with the
+.B \%TABSIZE
+extension;
+see \fB\%curs_variables\fP(3X).
+.PP
+If
+.I wch
+is any other nonprintable character,
+it is drawn in printable form using the same convention as
+\fB\%wunctrl\fP(3X).
+.PP
+Calling \fB\%win_wch\fP(3X) on the location of a nonprintable character
+does not return the character itself,
+but its \fB\%wunctrl\fP(3X) representation.
+.SS wecho_wchar
+.B \%echo_wchar
+and
+.B \%wecho_wchar
+are equivalent to calling
+.RB \%( w ) add_wch
+followed by
+.RB \%( w ) refresh .
+.I curses
+interprets these functions as a hint that only a single (complex)
+character is being output;
+for non-control characters,
+a considerable performance gain may be enjoyed by employing them.
+.\" TODO: Combine the following with the "Line Drawing" subsection of
+.\" terminfo(5) and replace this with a cross reference there.
+.SS "Forms-Drawing Characters"
+.I curses
+defines macros starting with
+.B \%WACS_
+that can be used with
+.B \%wadd_wch
+to write line-drawing and other special characters to the screen.
+.I \%ncurses
+terms these
+.I "forms-drawing characters."
+The ACS default listed below is used if the
+.B \%acs_chars
+.RB ( \%acsc )
+.I \%term\%info
+capability does not define a terminal-specific replacement for it,
+or if the terminal and locale configuration requires Unicode to access
+these characters but the library is unable to use Unicode.
+The \*(``acsc char\*('' column corresponds to how the characters are
+specified in the
+.B \%acs_chars
+.RB ( \%acsc )
+string capability,
+and the characters in it may appear on the screen if the terminal type's
+database entry incorrectly advertises ACS support.
+The name \*(``ACS\*('' originates in the Alternate Character Set feature
+of the DEC VT100 terminal.
 .PP
 .TS
 Lb Lb Lb Lb Lb
 Lb Lb Lb Lb Lb
 Lb L  L  L  Lx.
-\&     Unicode ASCII   acsc    \&
-ACS Name       Default Default Char    Glyph Name
+\&     Unicode ACS     acsc    \&
+Symbol Default Default char    Glyph Name
 _
 WACS_BLOCK     0x25ae  #       0       T{
 solid square block
@@ -291,26 +364,29 @@ U+2501 BOX DRAWINGS HEAVY HORIZONTAL
 .bP
 U+2550 BOX DRAWINGS DOUBLE HORIZONTAL
 .SH RETURN VALUE
-All routines return the integer \fBERR\fP upon failure and \fBOK\fP on success.
-.PP
-X/Open Curses does not specify any error conditions.
-This implementation returns an error
-.bP
-if the window pointer is null or
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
+In
+.IR \%ncurses ,
+.B \%wadd_wch
+returns
+.B ERR
+if
 .bP
-if it is not possible to add a complete character in the window.
-.PP
-The latter may be due to different causes:
+.I win
+is
+.BR NULL ","
 .bP
-If \fB\%scrollok\fP(3X) is not enabled,
-writing a character at the lower right margin succeeds.
-However,
-an error is returned because it is not possible to wrap to a new line.
+wrapping to a new line is impossible because \fB\%scrollok\fP(3X) has
+not been called on
+.I win
+when writing to its bottom right location is attempted,
+or
 .bP
-If an error is detected when converting a multibyte character to a sequence
-of bytes,
-or if it is not possible to add all of the resulting bytes in the window,
-an error is returned.
+it is not possible to add a complete character at the cursor position.
 .PP
 Functions prefixed with \*(``mv\*('' first perform cursor movement and
 fail if the position
@@ -318,16 +394,32 @@ fail if the position
 .IR x )
 is outside the window boundaries.
 .SH NOTES
-Note that
-\fBadd_wch\fP,
-\fBmvadd_wch\fP,
-\fBmvwadd_wch\fP, and
-\fBecho_wchar\fP
-may be macros.
+.BR add_wch ","
+.BR mvadd_wch ","
+.BR mvwadd_wch ","
+and
+.B echo_wchar
+may be implemented as macros.
+.SH EXTENSIONS
+.SS TABSIZE
+The
+.B TABSIZE
+variable is implemented in SVr4 and other versions of
+.IR curses ,
+but is not specified by X/Open Curses
+(see \fBcurs_variables\fP(3X)).
 .SH PORTABILITY
 These functions are described in X/Open Curses, Issue 4.
-The defaults specified for line-drawing characters apply in the POSIX locale.
-.SS "WACS Symbols"
+It specifies no error conditions for them.
+.PP
+SVr4
+.I curses
+describes a successful return value only as
+\*(``an integer value other than
+.BR ERR \*(''.
+.PP
+The defaults specified for forms-drawing characters apply in the POSIX
+locale.
 X/Open Curses makes it clear that the WACS_ symbols should be defined as
 a pointer to \fBcchar_t\fP data, e.g., in the discussion of \fBborder_set\fP.
 A few implementations are problematic:
@@ -406,32 +498,32 @@ Others have suggested these alternatives:
 \[u256C] U+256C (forms double vertical and horizontal), and
 \[u2612] U+2612 (ballot box with x).
 .SS "Complex Characters"
-The complex character type \fBcchar_t\fR
-can store more than one wide character (\fBwchar_t\fR).
-The X/Open Curses description does not mention this possibility,
-describing only the cases where \fIwch\fP is a spacing character
-or a non-spacing character.
+The complex character type
+.I \%cchar_t
+can store more than one wide character
+.RI ( \%wchar_t ).
+X/Open Curses does not mention this possibility,
+specifying behavior only where
+.I wch
+is a single character,
+either spacing or non-spacing.
 .PP
-This implementation assumes that \fIwch\fP is constructed using
-\fB\%setcchar\fP(3X), and in turn that the result
+.I \%ncurses
+assumes that
+.I wch
+is constructed using \fB\%setcchar\fP(3X),
+and in turn that the result
 .bP
-contains at most one spacing character in the beginning of its list of wide
-characters,
-and zero or more non-spacing characters
+contains at most one spacing character at the beginning of its list of
+wide characters,
+and zero or more non-spacing characters,
 or
 .bP
-may hold one non-spacing character.
+holds one non-spacing character.
 .PP
 In the latter case,
-\fI\%ncurses\fP adds the non-spacing character to the active
-(base) spacing character.
-.SS TABSIZE
-The
-.B TABSIZE
-variable is implemented in SVr4 and other versions of
-.IR curses ,
-but is not specified by X/Open Curses
-(see \fBcurs_variables\fP(3X)).
+.I \%ncurses
+adds the non-spacing character to the active complex character.
 .SH SEE ALSO
 \fB\%curs_addch\fP(3X) describes comparable functions of the
 .I \%ncurses
index 5dd3e8f4e1312ab3c5e3863cb0d6ac791046c564..4a0d06e9d93252edb507b11c4c8396b907ef3c74 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_add_wchstr.3x,v 1.39 2024/04/20 21:20:07 tom Exp $
-.TH curs_add_wchstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_add_wchstr.3x,v 1.40 2024/05/11 20:39:53 tom Exp $
+.TH curs_add_wchstr 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -69,45 +69,63 @@ add a \fIcurses\fR complex character string to a window
 \fBint mvwadd_wchnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwchstr\fP, int \fIn\fP);
 .fi
 .SH DESCRIPTION
-These functions copy the (null-terminated)
-array of complex characters \fIwchstr\fP
-into the window image structure
-starting at the current cursor position.
+.B \%wadd_wchstr
+copies the string of complex characters
+.I \%wchstr
+to the window
+.IR win "."
+A null complex character terminates the string.
+If a complex character does completely fit at the end of the line,
+.I curses
+fills the remaining columns with the window background;
+see \fB\%bkgrnd\fP(3X).
+.B \%wadd_wchnstr
+does the same,
+but copies at most
+.I n
+characters,
+or as many as possible if
+.I n
+is
+.BR \-1 "."
+\fB\%ncurses\fP(3X) describes the variants of these functions.
 .PP
-The four functions with \fIn\fP as the last
-argument copy at most \fIn\fP elements,
-but no more than will fit on the line.
-If \fBn\fP=\fB\-1\fP then the whole array is copied,
-to the maximum number of characters that will fit on the line.
-.PP
-The window cursor is \fInot\fP advanced.
-These functions are faster than \fBwaddnstr\fP.
-On the other hand:
+Because these functions do not call \fB\%wadd_wch\fP(3X) internally,
+they are faster than \fB\%waddwstr\fP(3X) and \fB\%waddnwstr\fP(3X).
+On the other hand,
+they
 .bP
-they do not perform checking
-(such as for the newline, backspace, or carriage return characters),
+do not treat the backspace,
+carriage return,
+or line feed characters specially;
 .bP
-they do not advance the current cursor position,
+do not represent unprintable characters with \fB\%wunctrl\fP(3X);
 .bP
-they do not expand other control characters to ^-escapes, and
+do not update the cursor position to follow the last character written;
 .bP
-they truncate the string if it crosses the right margin,
-rather than wrapping it around to the new line.
-.PP
-These functions end successfully
-on encountering a null \fBcchar_t\fP, or
-when they have filled the current line.
-If a complex character cannot completely fit at the end of the current line,
-the remaining columns are filled with the background character and rendition.
+truncate the string at the window's right margin,
+rather than wrapping it to the next line and potentially scrolling.
 .SH RETURN VALUE
-All functions return the integer \fBERR\fP upon failure and \fBOK\fP on success.
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
 .PP
 X/Open Curses does not specify any error conditions.
-This implementation returns an error
+.I \%ncurses
+returns
+.B ERR
+if
 .bP
-if the \fIwin\fP parameter is null or
+.I win
+is
+.B NULL
+or
 .bP
-if the \fIwchstr\fP parameter is null.
+.I wchstr
+is
+.BR NULL "."
 .PP
 Functions prefixed with \*(``mv\*('' first perform cursor movement and
 fail if the position
@@ -115,9 +133,12 @@ fail if the position
 .IR x )
 is outside the window boundaries.
 .SH NOTES
-All functions except \fBwadd_wchnstr\fP may be macros.
+All of these functions except
+.B \%wadd_wchnstr
+may be implemented as macros.
 .SH PORTABILITY
-These functions are described in X/Open Curses, Issue 4.
+X/Open Curses,
+Issue 4 describes these functions.
 .SH SEE ALSO
 \fB\%curs_addchstr\fP(3X) describes comparable functions of the
 .I \%ncurses
index ad548520ce84c792df349b76f9ab294533b88e6a..cfa7bf121277feaf2792d9e517b01ac8a2cbf496 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_addch.3x,v 1.85 2024/04/20 19:03:47 tom Exp $
-.TH curs_addch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_addch.3x,v 1.86 2024/05/11 20:39:53 tom Exp $
+.TH curs_addch 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -72,22 +72,24 @@ add a \fIcurses\fP character to a window and advance the cursor
 \fBint wechochar(WINDOW *\fIwin\fP, const chtype \fIch\fP);
 .fi
 .SH DESCRIPTION
-.SS "Adding Characters"
+.SS waddch
 .B \%waddch
-puts the character
+writes the
+.I curses
+character
 .I ch
-at the cursor position of window
-.IR win ,
+to the window
+.IR win ","
 then advances the cursor position,
 analogously to the standard C library's \fI\%putchar\fP(3).
 \fB\%ncurses\fP(3X) describes the variants of this function.
 .PP
 If advancement occurs at the right margin,
 .bP
-the cursor automatically wraps to the beginning of the next line;
-and
+the cursor automatically wraps to the beginning of the next line,
+then,
 .bP
-at the bottom of the current scrolling region,
+if it was at the bottom of the scrolling region,
 and if \fB\%scrollok\fP(3X) is enabled for
 .IR win ,
 the scrolling region scrolls up one line.
@@ -110,10 +112,7 @@ Carriage return moves the cursor to the left margin on the current line
 of the window.
 .bP
 Line feed does a \fB\%clrtoeol\fP(3X),
-then moves the cursor to the left margin on the next line of the window,
-and if \fB\%scrollok\fP(3X) is enabled for
-.IR win ,
-scrolls the window if the cursor was already on the last line.
+then advances as if from the right margin.
 .bP
 Tab advances the cursor to the next tab stop
 (possibly on the next line);
@@ -126,23 +125,22 @@ see \fB\%curs_variables\fP(3X).
 If
 .I ch
 is any other nonprintable character,
-it is drawn in printable form,
-using the same convention as \fB\%unctrl\fP(3X).
+it is drawn in printable form using the same convention as
+\fB\%unctrl\fP(3X).
 .PP
 Calling \fB\%winch\fP(3X) on the location of a nonprintable character
 does not return the character itself,
 but its \fB\%unctrl\fP(3X) representation.
 .PP
+The object or expression
 .I ch
-may contain rendering and/or color attributes,
-and others can be combined with the parameter
-by logically \*(``or\*(''ing with it.
+may contain attributes and/or a color pair identifier.
 (A character with its attributes can be copied from place to place
 using \fB\%winch\fP(3X) and
 .BR \%waddch .)
 See \fB\%curs_attr\fP(3X) for values of predefined video attribute
 constants that can be usefully \*(``or\*(''ed with characters.
-.SS "Echoing Characters"
+.SS wechochar
 .B \%echochar
 and
 .B \%wechochar
@@ -177,8 +175,9 @@ these characters but the library is unable to use Unicode.
 The \*(``acsc char\*('' column corresponds to how the characters are
 specified in the
 .B \%acs_chars
+.RB ( \%acsc )
 string capability,
-and the characters in it may appear on the screen if the terminal's
+and the characters in it may appear on the screen if the terminal type's
 database entry incorrectly advertises ACS support.
 The name \*(``ACS\*('' originates in the Alternate Character Set feature
 of the DEC VT100 terminal.
@@ -235,36 +234,52 @@ In
 .B \%waddch
 returns
 .B ERR
-if it is not possible to add a complete character at the cursor
-position,
-as when conversion of a multibyte character to a byte sequence fails,
-or at least one of the resulting bytes cannot be added to the window.
+if
+.bP
+.I win
+is
+.BR NULL ","
+.bP
+wrapping to a new line is impossible because \fB\%scrollok\fP(3X) has
+not been called on
+.I win
+when a write to its bottom right location is attempted,
+or
+.bP
+it is not possible to add a complete character at the cursor position.
+.PP
+The last may be due to different causes:
+.bP
+conversion of a multibyte character to a byte sequence can fail,
+or
+.bP
+at least one of the bytes resulting from conversion from a multibyte
+sequence cannot be added to the window.
 See section \*(``PORTABILITY\*('' below regarding the use of
 .B \%waddch
 with multibyte characters.
 .PP
-.B \%waddch
-can successfully write a character at the bottom right location of the
-window.
-However,
-.I \%ncurses
-returns
-.B ERR
-if \fB\%scrollok\fP(3X) is not enabled in that event,
-because it is not possible to wrap to a new line.
-.PP
 Functions prefixed with \*(``mv\*('' first perform cursor movement and
 fail if the position
 .RI ( y ,
 .IR x )
 is outside the window boundaries.
 .SH NOTES
-.BR \%addch ,
-.BR \%mvaddch ,
-.BR \%mvwaddch ,
+.BR \%addch ","
+.BR \%mvaddch ","
+.BR \%mvwaddch ","
 and
 .B \%echochar
 may be implemented as macros.
+.SH EXTENSIONS
+.SS TABSIZE
+SVr4 and other versions of
+.I curses
+implement the
+.B \%TABSIZE
+variable,
+but X/Open Curses does not specify it;
+see \fB\%curs_variables\fP(3X).
 .SH PORTABILITY
 X/Open Curses,
 Issue 4 describes these functions.
@@ -290,7 +305,7 @@ Some implementations are problematic.
 Solaris
 .IR curses ,
 for example,
-define the ACS symbols as constants;
+defines the ACS symbols as constants;
 others define them as elements of an array.
 .IP
 This implementation uses an array,
@@ -356,8 +371,8 @@ many publicly available
 .I \%term\%info
 entries include
 .B \%acsc
-strings in which their key characters
-.BR ( pryz{|} )
+capabilities in which their key characters
+.RB ( pryz{|} )
 are embedded,
 and a second-hand list of their character descriptions has come to
 light.
@@ -386,51 +401,50 @@ the terminal is unable to display forms-drawing characters
 by using UTF-8;
 see the discussion of the
 .I \%NCURSES_NO_UTF8_ACS
-environment variable in \fB\%ncurses\fP(3X)).
+environment variable in \fB\%ncurses\fP(3X).
 .SS "Character Set"
 X/Open Curses assumes that the parameter passed to
 .B \%waddch
 contains a single character.
-As discussed in \fB\%curs_attr\fP(3X),
-that character may have been more than eight bits wide in an SVr3 or
+That character may have been more than eight bits wide in an SVr3 or
 SVr4 implementation,
-but in the X/Open Curses model,
-the details are not given.
-The important distinction between SVr4
-.I curses
-and X/Open Curses is that the latter separates non-character information
-(attributes and color)
-from the character code,
-which SVr4 packs into a
+but X/Open Curses leaves the width of a non-wide character code
+unspecified.
+The standard further does not specify the internal structure of a
+.IR chtype ","
+though the use of bit operations to combine the character code with
+attributes and a color pair identifier into a
 .I \%chtype
 for passage to
-.BR \%waddch .
+.B \%waddch
+is common.
+A portable application uses only the macros discussed in
+\fB\%curs_attr\fP(3X) to manipulate a
+.IR \%chtype "."
 .PP
 In
 .IR \%ncurses ,
 .I \%chtype
-holds an eight-bit character.
-But the library allows a multibyte character to be passed in a
+holds an eight-bit character,
+but the library allows a multibyte character to be passed in a
 succession of calls to
-.BR \%waddch .
+.BR \%waddch "."
 Other implementations do not;
 a
 .B \%waddch
 call transmits exactly one character,
 which may be rendered in one or more screen locations depending on
-whether it is printable.
-.PP
-Depending on the locale settings,
+whether it is printable
+(see \fB\%unctrl\fP(3X)).
+Depending on the locale,
 .I \%ncurses
 inspects the byte passed in each
 .B \%waddch
-call,
-and checks whether the latest call continues a multibyte sequence.
+call and checks whether the latest call continues a multibyte sequence.
 When a character is
-.IR complete ,
+.IR complete ","
 .I \%ncurses
 displays the character and advances the cursor.
-.PP
 If the calling application interrupts the succession of bytes in
 a multibyte character sequence by changing the current location\(emfor
 example,
@@ -439,7 +453,7 @@ with \fB\%wmove\fP(3X)\(em\c
 discards the incomplete character.
 .PP
 For portability to other implementations,
-do not rely upon this behavior.
+do not rely upon the foregoing behavior.
 Check whether a character can be represented as a single byte in the
 current locale.
 .bP
@@ -451,14 +465,6 @@ or \fB\%wadd_wch\fP(3X).
 If it cannot,
 use only
 \fB\%wadd_wch\fP(3X).
-.SS TABSIZE
-SVr4 and other versions of
-.I curses
-implement the
-.B \%TABSIZE
-variable,
-but X/Open Curses does not specify it
-(see \fB\%curs_variables\fP(3X)).
 .SH SEE ALSO
 \fB\%curs_add_wch\fP(3X) describes comparable functions of the
 .I \%ncurses
index 25d322aff0be48eed09699dca2a7b56bc3e6125c..19c47fc59ff91e961d1a318fea3c8e72448216eb 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_addchstr.3x,v 1.45 2024/04/20 21:20:07 tom Exp $
-.TH curs_addchstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_addchstr.3x,v 1.46 2024/05/11 20:39:53 tom Exp $
+.TH curs_addchstr 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -69,39 +69,63 @@ add a \fIcurses\fR character string to a window
 \fBint mvwaddchnstr(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const chtype *\fIchstr\fP, int \fIn\fP);
 .fi
 .SH DESCRIPTION
-These functions copy the (null-terminated)
-\fIchstr\fP array
-into the window image structure
-starting at the current cursor position.
+.B \%waddchstr
+copies the string of
+.I curses
+characters
+.I \%chstr
+to the window
+.IR win "."
+A null
+.I curses
+character terminates the string.
+.B \%waddchnstr
+does the same,
+but copies at most
+.I n
+characters,
+or as many as possible if
+.I n
+is
+.BR \-1 "."
+\fB\%ncurses\fP(3X) describes the variants of these functions.
 .PP
-The four functions with \fIn\fP as the last
-argument copy at most \fIn\fP elements,
-but no more than will fit on the line.
-If \fBn\fP=\fB\-1\fP then the whole array is copied,
-to the maximum number of characters that will fit on the line.
-.PP
-The window cursor is \fInot\fP advanced.
-These functions are faster than \fBwaddnstr\fP.
-On the other hand:
+Because these functions do not call \fB\%waddch\fP(3X) internally,
+they are faster than \fB\%waddstr\fP(3X) and \fB\%waddnstr\fP(3X).
+On the other hand,
+they
 .bP
-they do not perform checking
-(such as for the newline, backspace, or carriage return characters),
+do not treat the backspace,
+carriage return,
+or line feed characters specially;
 .bP
-they do not advance the current cursor position,
+do not represent unprintable characters with \fB\%unctrl\fP(3X);
 .bP
-they do not expand other control characters to ^-escapes, and
+do not update the cursor position to follow the last character written;
 .bP
-they truncate the string if it crosses the right margin,
-rather than wrapping it around to the new line.
+truncate the string at the window's right margin,
+rather than wrapping it to the next line and potentially scrolling.
 .SH RETURN VALUE
-All functions return the integer \fBERR\fP upon failure and \fBOK\fP on success.
+These functions return
+.B OK
+on success and
+.B ERR
+on failure.
 .PP
 X/Open Curses does not specify any error conditions.
-This implementation returns an error
+.I \%ncurses
+returns
+.B ERR
+if
 .bP
-if the \fIwin\fP parameter is null or
+.I win
+is
+.B NULL
+or
 .bP
-if the \fIwchstr\fP parameter is null.
+.I chstr
+is
+.BR NULL "."
 .PP
 Functions prefixed with \*(``mv\*('' first perform cursor movement and
 fail if the position
@@ -109,9 +133,12 @@ fail if the position
 .IR x )
 is outside the window boundaries.
 .SH NOTES
-All functions except \fBwaddchnstr\fP may be macros.
+All of these functions except
+.B \%waddchnstr
+may be implemented as macros.
 .SH PORTABILITY
-These functions are described in X/Open Curses, Issue 4.
+X/Open Curses,
+Issue 4 describes these functions.
 .SH SEE ALSO
 \fB\%curs_add_wchstr\fP(3X) describes comparable functions of the
 .I \%ncurses
index 37774602be8ca8e5f759d237e71140da7c999ca6..0062129b815db898cd7614e263e9e0fd08c2f500 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_attr.3x,v 1.105 2024/04/27 17:54:42 tom Exp $
-.TH curs_attr 3X 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_attr.3x,v 1.106 2024/05/11 20:39:53 tom Exp $
+.TH curs_attr 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -271,6 +271,16 @@ T}
 .TE
 .RE
 .PP
+You can thus use
+.B \%A_CHARTEXT
+to extract the character from a
+.IR chtype ","
+.B \%A_ATTRIBUTES
+to obtain its rendering attributes,
+and
+.B \%A_COLOR
+to find the color pair it uses.
+.PP
 These video attributes are supported by \fBattr_on\fP and related functions
 (which also support the attributes recognized by \fBattron\fP, etc.):
 .PP
index e62ecc130de1c0b1ffe1dec7e8c5e2dcfe919196..9692158724c401a7f9092c0dd85950f915dd46b9 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_delch.3x,v 1.34 2024/04/20 19:24:14 tom Exp $
-.TH curs_delch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_delch.3x,v 1.35 2024/05/11 20:39:53 tom Exp $
+.TH curs_delch 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -58,19 +58,17 @@ delete a character from a \fIcurses\fR window
 .B \%wdelch
 deletes the character at the cursor position in
 .IR win .
-\fB\%ncurses\fP(3X) describes the variants of this function.
-.PP
-.B \%wdelch
-moves all characters to the right of the cursor on the same line to the
-left one position and replaces the contents of the rightmost position on
-the line with the window's blank character;
+It moves all characters to the right of the cursor on the same line to
+the left one position and replaces the contents of the rightmost
+position on the line with the window's blank character;
 see \fB\%bkgd\fP(3X)
-(wide-character API users may consult \fB\%bkgrnd\fP(3X) instead).
+(wide-character API users: \fB\%bkgrnd\fP(3X)).
 The cursor position does not change
 (after moving to
 .RI ( y ,
 .IR x ),
 if specified).
+\fB\%ncurses\fP(3X) describes the variants of this function.
 .SH RETURN VALUE
 These functions return
 .B OK
@@ -103,6 +101,7 @@ is not necessarily employed.
 .SH PORTABILITY
 X/Open Curses,
 Issue 4 describes these functions.
+It specifies no error conditions for them.
 .PP
 SVr4
 .I curses
index 02932b91a6e4ebd0f97a8e6bdf06ff67e8f3c40d..c190a7ea10e85c2eabe1662f9177fe00cf877f6d 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_get_wch.3x,v 1.40 2024/04/20 19:23:03 tom Exp $
-.TH curs_get_wch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_get_wch.3x,v 1.41 2024/05/11 20:39:53 tom Exp $
+.TH curs_get_wch 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -65,12 +65,10 @@ get (or push back) a wide character from \fIcurses\fR terminal keyboard
 .SH DESCRIPTION
 .SS "Reading Characters"
 .B \%wget_wch
-gathers a key stroke
-.I wch
-from the terminal keyboard associated with a
+gathers a key event from the terminal keyboard associated with a
 .I curses
 window
-.IR win ,
+.IR win ","
 returning
 .B OK
 if a wide character is read,
@@ -84,11 +82,13 @@ if no key event is available.
 When input is pending,
 .B \%wget_wch
 stores an integer
-identifying the key stroke in
-.IR wch ;
+identifying the key event in
+.IR wch ";"
 for alphanumeric and punctuation keys,
 this value corresponds to the character encoding used by the terminal.
-Use of the control key as a modifier often results in a distinct code.
+Use of the control key as a modifier,
+by holding it down while pressing and releasing another key,
+often results in a distinct code.
 The behavior of other keys depends on whether
 .I win
 is in keypad mode;
@@ -99,7 +99,7 @@ If no input is pending,
 then if the no-delay flag is set in the window
 (see \fB\%nodelay\fP(3X)),
 the function returns
-.BR ERR ;
+.BR ERR ";"
 otherwise,
 .I curses
 waits until the terminal has input.
@@ -112,7 +112,7 @@ it occurs when the next newline is read.
 If \fB\%halfdelay\fP(3X)
 has been called,
 .I curses
-waits until a character is typed or the specified delay elapses.
+waits until input is available or the specified delay elapses.
 .PP
 If \fB\%echo\fP(3X) has been called,
 and the window is not a pad,
@@ -142,19 +142,20 @@ writes any other
 to the window,
 as with \fB\%wecho_wchar\fP(3X).
 .bP
-If the window has been moved or modified since the last call to
+If the window
+.I win
+has been moved or modified since the last call to
 \fB\%wrefresh\fP(3X),
 .I curses
 calls
-.BR \%wrefresh .
+.B \%wrefresh
+on it.
 .PP
 If
 .I wch
 is a carriage return and \fBnl\fP(3X) has been called,
 .B \%wgetch
-stores the the character code for newline
-(line feed)
-in
+stores the the character code for line feed in
 .I wch
 instead.
 .SS "Ungetting Characters"
@@ -162,8 +163,8 @@ instead.
 places
 .I wch
 into the input queue to be returned by the next call to
-.BR \%wget_wch .
-A single input queue serves all windows.
+.BR \%wget_wch "."
+A single input queue serves all windows associated with the terminal.
 .SH RETURN VALUE
 .B \%wget_wch
 returns
@@ -178,7 +179,7 @@ if
 the
 .I \%WINDOW
 pointer is
-.BR NULL ,
+.BR NULL ","
 or
 .bP
 its timeout expires without any data arriving,
@@ -188,12 +189,12 @@ execution was interrupted by a signal,
 in which case
 .B \%errno
 is set to
-.BR \%EINTR .
+.BR \%EINTR "."
 .PP
 Functions prefixed with \*(``mv\*('' first perform cursor movement and
 fail if the position
 .RI ( y ,
-.IR x )
+.IR x ")"
 is outside the window boundaries.
 .PP
 .B \%unget_wch
@@ -218,18 +219,16 @@ and its variants store the value of the input character in an additional
 parameter instead of the return value.
 .PP
 Unlike
-.BR \%ungetch ,
+.BR \%ungetch ","
 .B \%unget_wch
-cannot distinguish function key codes
-.B \%wget_wch
-from conventional character codes.
+cannot distinguish function key codes from conventional character codes.
 An application can overcome this limitation by pushing function key
 codes with
 .B \%ungetch
 and subsequently checking the return value of
 .B \%wget_wch
 for a match with
-.BR \%KEY_CODE_YES .
+.BR \%KEY_CODE_YES "."
 .SH EXTENSIONS
 See the \*(``EXTENSIONS\*('' section of \fB\%wgetch\fP(3X).
 .SH PORTABILITY
index 9433c6148583bcc421f253134e28cd27e2ea7e54..02fefd0da4ee5a0d1efc54d99c4a7bc492b1fa3b 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_getch.3x,v 1.87 2024/04/20 19:18:18 tom Exp $
-.TH curs_getch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_getch.3x,v 1.88 2024/05/11 20:39:53 tom Exp $
+.TH curs_getch 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -76,18 +76,20 @@ get (or push back) characters from \fIcurses\fR terminal keyboard
 .SH DESCRIPTION
 .SS "Reading Characters"
 .B \%wgetch
-gathers a key stroke from the terminal keyboard associated with a
+gathers a key event from the terminal keyboard associated with a
 .I curses
 window
-.IR win .
+.IR win "."
 \fB\%ncurses\fP(3X) describes the variants of this function.
 .PP
 When input is pending,
 .B \%wgetch
-returns an integer identifying the key stroke;
+returns an integer identifying the key event;
 for alphanumeric and punctuation keys,
 this value corresponds to the character encoding used by the terminal.
-Use of the control key as a modifier often results in a distinct code.
+Use of the control key as a modifier,
+by holding it down while pressing and releasing another key,
+often results in a distinct code.
 The behavior of other keys depends on whether
 .I win
 is in keypad mode;
@@ -97,7 +99,7 @@ If no input is pending,
 then if the no-delay flag is set in the window
 (see \fB\%nodelay\fP(3X)),
 the function returns
-.BR ERR ;
+.BR ERR ";"
 otherwise,
 .I curses
 waits until the terminal has input.
@@ -110,7 +112,7 @@ it occurs when the next newline is read.
 If \fB\%halfdelay\fP(3X)
 has been called,
 .I curses
-waits until a character is typed or the specified delay elapses.
+waits until input is available or the specified delay elapses.
 .PP
 If \fB\%echo\fP(3X) has been called,
 and the window is not a pad,
@@ -140,11 +142,14 @@ writes any other
 to the window,
 as with \fB\%wechochar\fP(3X).
 .bP
-If the window has been moved or modified since the last call to
+If the window
+.I win
+has been moved or modified since the last call to
 \fB\%wrefresh\fP(3X),
 .I curses
 calls
-.BR \%wrefresh .
+.B \%wrefresh
+on it.
 .PP
 If
 .I c
@@ -153,7 +158,7 @@ is a carriage return and \fBnl\fP(3X) has been called,
 returns the character code for line feed instead.
 .SS "Keypad Mode"
 To
-.IR curses ,
+.IR curses ","
 key strokes not from the alphabetic section of the keyboard
 (those corresponding to the ECMA-6 character set\(emsee
 \fIascii\fP(7)\(emoptionally modified by either the control or shift
@@ -162,7 +167,7 @@ are treated as
 .I function
 keys.
 (In
-.IR curses ,
+.IR curses ","
 the term \*(``function key\*('' includes but is not limited to keycaps
 engraved with \*(``F1\*('',
 \*(``PF1\*('',
@@ -183,12 +188,12 @@ The
 header file declares many
 .I "predefined function keys"
 whose names begin with
-.BR KEY_ ;
+.BR KEY_ ";"
 these object-like macros have values outside the range of eight-bit
 character codes.
 .bP
 In
-.IR \%ncurses ,
+.IR \%ncurses ","
 .I "user-defined function keys"
 are configured with \fB\%define_key\fP(3X);
 they have no names,
@@ -204,9 +209,10 @@ their function keys produce character sequences prefixed with the
 escape character ESC.
 This fact implies that
 .I curses
-cannot know whether the terminal has sent an ESC key stroke or the
-beginning of a function key's character sequence without waiting to see
-if,
+cannot distinguish a user's press of the escape key
+(assuming it sends ESC)
+from the beginning of a function key's character sequence without
+waiting to see if,
 and how soon,
 further input arrives.
 When
@@ -223,7 +229,8 @@ defined by the terminal.
 Consequently,
 a user of a
 .I curses
-application may experience a delay after pressing ESC while
+application may experience a delay after they escape key is pressed
+while
 .I curses
 disambiguates the input;
 see section \*(``EXTENSIONS\*('' below.
@@ -233,26 +240,26 @@ it is an infinite
 (or very large)
 value.
 See \fB\%notimeout\fP(3X).
-Because function key sequences usually begin with an escape character,
-the terminal may appear to hang in no time-out mode after the user has
-pressed ESC.
+Because function key sequences usually begin with ESC,
+the terminal may appear to hang in no time-out mode after the user
+presses the escape key.
 Generally,
 further typing \*(``awakens\*(''
-.IR curses .
+.IR curses "."
 .SS "Ungetting Characters"
 .B \%ungetch
 places
 .I c
 into the input queue to be returned by the next call to
-.BR \%wgetch .
-A single input queue serves all windows.
+.BR \%wgetch "."
+A single input queue serves all windows associated with the terminal.
 .SS "Predefined Key Codes"
 The header file
 .I \%curses.h
 defines the following function key codes.
 .bP
 Except for the special case of
-.BR \%KEY_RESIZE ,
+.BR \%KEY_RESIZE ","
 a window's keypad mode must be enabled for
 .B \%wgetch
 to read these codes from it.
@@ -394,7 +401,7 @@ correspond to a physical key.
 .bP
 .B \%wgetch
 returns
-.BR \%KEY_RESIZE ,
+.BR \%KEY_RESIZE ","
 even if the window's keypad mode is disabled,
 when
 .I \%ncurses
@@ -416,7 +423,7 @@ must read an escape sequence,
 as with a function key.
 .SS "Testing Key Codes"
 In
-.IR \%ncurses ,
+.IR \%ncurses ","
 .B \%has_key
 returns a Boolean value indicating whether the terminal type recognizes
 its parameter as a key code value.
@@ -424,7 +431,7 @@ See also
 \fB\%define_key\fP(3X) and \fB\%key_defined\fP(3X).
 .SH RETURN VALUE
 Except for
-.BR \%has_key ,
+.BR \%has_key ","
 these functions return
 .B OK
 on success and
@@ -434,12 +441,12 @@ on failure.
 Functions taking a
 .I \%WINDOW
 pointer argument fail if the pointer is
-.BR NULL .
+.BR NULL "."
 .PP
 Functions prefixed with \*(``mv\*('' first perform cursor movement and
 fail if the position
 .RI ( y ,
-.IR x )
+.IR x ")"
 is outside the window boundaries.
 .PP
 .B \%wgetch
@@ -452,7 +459,7 @@ execution was interrupted by a signal,
 in which case
 .B \%errno
 is set to
-.BR \%EINTR .
+.BR \%EINTR "."
 .PP
 .B \%ungetch
 fails if there is no more room in the input queue.
@@ -461,7 +468,7 @@ fails if there is no more room in the input queue.
 returns
 .B TRUE
 or
-.BR FALSE .
+.BR FALSE "."
 .SH NOTES
 .I curses
 discourages assignment of the ESC key to a discrete function by the
@@ -472,7 +479,7 @@ Some key strokes are indistinguishable from control characters;
 for example,
 .B \%KEY_ENTER
 may be the same as
-.BR \*^M ,
+.BR \*^M ","
 .\" as with att630 or pccon+keys
 and
 .B \%KEY_BACKSPACE
@@ -480,7 +487,7 @@ may be the same as
 .B \*^H
 .\" as with att505 or vt52-basic
 or
-.BR \*^? .
+.BR \*^? "."
 .\" as with pccon+keys or vt320
 Consult the terminal's
 .I \%term\%info
@@ -490,7 +497,7 @@ Some
 .I curses
 implementations,
 including
-.IR \%ncurses ,
+.IR \%ncurses ","
 honor the
 .I \%term\%info
 key definitions;
@@ -502,7 +509,7 @@ sections of a keyboard because (most) terminals do.
 .B \%KEY_ENTER
 refers to the key on the numeric keypad and,
 like other function keys,
-and is reliably recognized only if the window's keypad mode is enabled.
+is reliably recognized only if the window's keypad mode is enabled.
 .bP
 The
 .I \%term\%info
@@ -551,12 +558,12 @@ have fewer.
 A
 .I curses
 application can expect such a keyboard to transmit key codes
-.BR \%KEY_UP ,
-.BR \%KEY_DOWN ,
-.BR \%KEY_LEFT ,
-.BR \%KEY_RIGHT ,
-.BR \%KEY_HOME ,
-.BR \%KEY_END ,
+.BR \%KEY_UP ","
+.BR \%KEY_DOWN ","
+.BR \%KEY_LEFT ","
+.BR \%KEY_RIGHT ","
+.BR \%KEY_HOME ","
+.BR \%KEY_END ","
 .B \%KEY_PPAGE
 (Page Up),
 .B \%KEY_NPAGE
@@ -571,14 +578,14 @@ for 1 \(<=
 .I n
 \(<= 12.
 .PP
-.BR \%getch ,
-.BR \%mvgetch ,
+.BR \%getch ","
+.BR \%mvgetch ","
 and
 .B \%mvwgetch
 may be implemented as macros.
 .SH EXTENSIONS
 In
-.IR \%ncurses ,
+.IR \%ncurses ","
 when a window's \*(``no time-out\*('' mode is
 .I not
 set,
@@ -590,12 +597,15 @@ with ESC typed by the user;
 see
 \fB\%curs_variables\fP(3X).
 .PP
-\fB\%has_key\fP was designed for \fB\%ncurses\fP(3X),
+\fB\%has_key\fP was designed for
+.IR \%ncurses ","
 and is not found in SVr4
-.IR curses ,
+.IR curses ","
 4.4BSD
-.IR curses ,
-or any other previous curses implementation.
+.IR curses ","
+or any other previous
+.I curses
+implementation.
 .SH PORTABILITY
 Applications employing
 .I \%ncurses
@@ -629,14 +639,14 @@ In historical
 .I curses
 implementations,
 it varied depending on whether the operating system's dispatch of a
-signal to a handler interrupting a \fIread\fP(2) call in progress,
+signal to a handler interrupted a \fIread\fP(2) call in progress,
 and also
 (in some implementations)
-whether an input timeout or non-blocking mode has been set.
+whether an input timeout or non-blocking mode had been set.
 Programmers concerned about portability should be prepared for either of
 two cases:
 (a) signal receipt does not interrupt
-.BR \%wgetch ;
+.BR \%wgetch ";"
 or
 (b) signal receipt interrupts
 .B \%wgetch
@@ -645,7 +655,7 @@ and causes it to return
 with
 .B \%errno
 set to
-.BR \%EINTR .
+.BR \%EINTR "."
 .PP
 .B \%KEY_MOUSE
 is mentioned in X/Open Curses,
@@ -661,7 +671,7 @@ is an extension.
 and
 .B \%has_key
 are extensions first implemented for
-.IR \%ncurses .
+.IR \%ncurses "."
 By 2022,
 .I \%PDCurses
 .\" https://web.archive.org/web/20220117232009/https://pdcurses.org/docs/MANUAL.html
@@ -670,7 +680,7 @@ NetBSD
 .I curses
 .\" https://web.archive.org/web/20200923185647/https://man.netbsd.org/curses_input.3
 had added them along with
-.BR \%KEY_MOUSE .
+.BR \%KEY_MOUSE "."
 .SH SEE ALSO
 \fB\%curs_get_wch\fP(3X) describes comparable functions of the
 .I \%ncurses
index 4a49352a146cdf6de9b3b1ca4ce1bee33f1def33..bb8131c86f6527bd896d6d48b453bd80e143ddd0 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_getstr.3x,v 1.58 2024/04/20 19:18:18 tom Exp $
-.TH curs_getstr 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_getstr.3x,v 1.59 2024/05/11 20:39:53 tom Exp $
+.TH curs_getstr 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -199,7 +199,7 @@ present but not documented in SVr4.
 .PP
 X/Open Curses, Issue 5 (2007) stated that these functions
 \*(``read at most \fIn\fP bytes\*(''
-but did not state whether the terminating NUL is counted in that limit.
+but did not state whether the terminating NUL counted toward that limit.
 X/Open Curses, Issue 7 (2009) changed that to say they
 \*(``read at most \fIn\fP\-1 bytes\*(''
 to allow for the terminating NUL.
index eadcecef2cadfe6dca773ef6342b08c570471d5b..92b48af9ffb5f86f36741b624f7cf0500f16f3c1 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_getyx.3x,v 1.44 2024/04/20 21:20:07 tom Exp $
-.TH curs_getyx 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_getyx.3x,v 1.45 2024/05/11 20:39:53 tom Exp $
+.TH curs_getyx 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -51,62 +51,109 @@ get \fIcurses\fR cursor and window coordinates
 \fB#include <curses.h>
 .PP
 \fBvoid getyx(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
-\fBvoid getparyx(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
 \fBvoid getbegyx(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
 \fBvoid getmaxyx(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
+.PP
+\fBvoid getparyx(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
 .fi
 .SH DESCRIPTION
-The \fB\%getyx\fP macro places the current cursor position
-of the given window in the two integer variables \fIy\fP and \fIx\fP.
-.PP
-If \fIwin\fP is a subwindow, the \fB\%getparyx\fP macro places the beginning
-coordinates of the subwindow relative to the parent window into two integer
-variables \fIy\fP and \fIx\fP.
-Otherwise, \fB\-1\fP is placed into \fIy\fP and \fIx\fP.
+These macros obtain the cursor position and bounds information of a
+.I curses
+window
+.IR win "."
+.B \%getyx
+stores
+.IR win "'s"
+cursor position in the variables
+.I y
+and
+.IR x "."
+.B \%getmaxyx
+stores
+.IR win "'s"
+maximum valid row and column numbers in
+.I y
+and
+.IR x ","
+respectively.
+.B \%getbegyx
+similarly stores the position of
+.IR win "'s"
+origin relative to that of the screen
+(for
+.BR stdscr ","
+these coordinates are always
+.BR 0 ")."
 .PP
-Like \fB\%getyx\fP, the \fB\%getbegyx\fP and \fB\%getmaxyx\fP macros store
-the current beginning coordinates and size of the specified window.
+If
+.I win
+is a subwindow
+(see \fB\%subwin\fP(3X)),
+the
+.B \%getparyx
+macro places the coordinates of its origin relative to its parent window
+into
+.I y
+and
+.IR x ","
+and
+.B \-1
+into both if it is not.
 .SH RETURN VALUE
-The return values of these macros are undefined (i.e.,
-they should not be used as the right-hand side of assignment statements).
+No return values are defined for macros.
+Do not use them as the right-hand side of assignment statements.
 .SH NOTES
-All of these interfaces are macros.
-A \*(``&\*('' is not necessary before the variables \fIy\fP and \fIx\fP.
+All of these interfaces are implemented as macros.
+An \*(``&\*('' operator is not necessary before the variables
+.I y
+and
+.IR x "."
 .SH PORTABILITY
-The
-\fB\%getyx\fP,
-\fB\%getparyx\fP,
-\fB\%getbegyx\fP and
-\fB\%getmaxyx\fP
-macros are described in X/Open Curses, Issue 4.
+These macros are described in X/Open Curses,
+Issue 4.
 .PP
-This implementation also provides functions
-\fB\%getbegx\fP,
-\fB\%getbegy\fP,
-\fB\%getcurx\fP,
-\fB\%getcury\fP,
-\fB\%getmaxx\fP,
-\fB\%getmaxy\fP,
-\fB\%getparx\fP and
-\fB\%getpary\fP
-for compatibility with older versions of \fIcurses\fP;
+.I \%ncurses
+also provides functions
+.BR \%getbegx ","
+.BR \%getbegy ","
+.BR \%getcurx ","
+.BR \%getcury ","
+.BR \%getmaxx ","
+.BR \%getmaxy ","
+.BR \%getparx ","
+and
+.B \%getpary
+for compatibility with older versions of
+.IR curses ";"
 see \fB\%curs_legacy\fP(3X).
 .PP
-Although X/Open Curses does not address this,
-many implementations provide members of the \fB\%WINDOW\fP structure
-containing values corresponding to these macros.
-For best portability, do not rely on using the data in \fB\%WINDOW\fP,
-since some implementations make \fB\%WINDOW\fP opaque (do not allow
-direct use of its members).
+Although X/Open Curses does not address the issue,
+many implementations expose members of the
+.I \%WINDOW
+structure containing values corresponding to these macros.
+Do not rely on their availability;
+some implementations make
+.I \%WINDOW
+opaque
+(that is,
+they do not allow direct access to its members).
 .PP
 Besides the problem of opaque structures,
-the data stored in like-named members may not have like-values in
-different implementations.
-For example, the \fB\%WINDOW._maxx\fP and \fB\%WINDOW._maxy\fP values
-in \fI\%ncurses\fP have
-(at least since release 1.8.1)
+the data stored in like-named members may not have values of the same
+meaning different implementations.
+For example,
+the values of
+.B \%WINDOW._maxx
+and
+.B \%WINDOW._maxy
+in
+.I \%ncurses
+have long
+.\" (at least since its initial release, 1.8.1)
 differed by one from some other implementations.
-The difference is hidden by means of the macro \fB\%getmaxyx\fP.
+The
+.B \%getmaxyx
+macro hides this difference.
 .SH SEE ALSO
 \fB\%curses\fP(3X),
 \fB\%curs_legacy\fP(3X),
index 962e9dc868d444f72ea0ceeffa1f24a9513655c9..17be0fb9e5a86f9f62b283c8390896ecab37ceea 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_inch.3x,v 1.51 2024/04/20 21:20:07 tom Exp $
-.TH curs_inch 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_inch.3x,v 1.52 2024/05/11 20:39:53 tom Exp $
+.TH curs_inch 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -57,31 +57,21 @@ get a \fIcurses\fR character from a window
 .PP
 \fBchtype inch(void);
 \fBchtype winch(WINDOW *\fIwin\fP);
-.PP
 \fBchtype mvinch(int \fIy\fP, int \fIx\fP);
 \fBchtype mvwinch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
 .fi
 .SH DESCRIPTION
-These routines return the character, of type \fBchtype\fP, at the current
-position in the named window.
-If any attributes are set for that position,
-their values are OR'ed into the value returned.
-Constants defined in
-\fB<curses.h>\fP can be used with the \fB&\fP (logical AND) operator to
-extract the character or attributes alone.
-.
-.SS Attributes
-The following bit masks may be AND-ed with characters returned by \fBwinch\fP.
-.PP
-.TS
-Lb Lb
-Lb Lx.
-Name   Description
-_
-A_CHARTEXT     Extract character
-A_ATTRIBUTES   Extract attributes
-A_COLOR        Extract color pair information
-.TE
+.B \%winch
+returns the
+.I curses
+character,
+including rendering attributes and color pair identifier,
+at the cursor position in the window
+.IR win "."
+Subsection \*(``Video Attributes\*('' of \fB\%attron\fP(3X) explains
+how to extract these data from a
+.IR chtype "."
+\fB\%ncurses\fP(3X) describes the variants of this function.
 .SH RETURN VALUE
 Functions prefixed with \*(``mv\*('' first perform cursor movement and
 fail if the position
@@ -89,35 +79,68 @@ fail if the position
 .IR x )
 is outside the window boundaries.
 .PP
-The \fBwinch\fP function does not return an error if the window contains
-characters larger than 8-bits (255).
-Only the low-order 8 bits of the character are used by \fBwinch\fP.
+These functions do not return an error if the window comprises cells of
+.I curses
+complex characters
+(that is,
+they contain characters with codes wider than eight bits,
+or greater than 255 as an unsigned decimal integer).
+They instead extract only the low-order eight bits of character data
+in the cell.
 .SH NOTES
-Note that all of these routines may be macros.
+.BR \%inch ,
+.BR \%mvinch ,
+and
+.B \%mvwinch
+may be implemented as macros.
 .SH PORTABILITY
-These functions are described in X/Open Curses, Issue 4.
+X/Open Curses,
+Issue 4 describes these functions.
+It specifies no error conditions for them.
+.SH HISTORY
+.B \%winch
+was implemented in the original 4BSD
+.I curses
+library
+(November 1980).
+It returned only the character code
+(as an integer)
+with the \*(``standout\*(`` attribute bit
+(the only one it supported)
+cleared.
+Because 7-bit ASCII was the only character encoding supported,
+4BSD's
+.B \%winch
+returned a
+.I char
+type.
+.\" Through macros, it directly accessed a `char` structure member.
 .PP
-Very old systems (before standardization) provide a different function
-with the same name:
-.bP
-The \fBwinch\fP function was part of the original BSD curses library,
-which stored a 7-bit character combined with the \fIstandout\fP attribute.
-.IP
-In BSD curses, \fBwinch\fP returned only the character (as an integer)
-with the \fIstandout\fP attribute removed.
-.bP
-System V curses added support for several video attributes which
-could be combined with characters in the window.
-.IP
-Reflecting this improvement, the function was altered to return the
-character combined with all video attributes in a \fBchtype\fP value.
+System\ V
+.I curses
+(1983) permitted several rendering attributes to be combined with a
+character in a window.
+Reflecting this improvement,
+.B \%winch
+.\" XXX: possibly returned a `short` in SVr1 through SVr3 --GBR
+returned an
+.I int
+in SVr3.2 (1988)
+and switched to
+.I chtype
+in SVr4 (1989).
 .PP
-X/Open Curses does not specify
-the size and layout of attributes, color and character values in
-\fBchtype\fP; it is implementation-dependent.
-This implementation uses 8 bits for character values.
-An application using more bits, e.g., a Unicode value,
-should use the wide-character equivalents to these functions.
+X/Open Curses does not specify the sizes of the character code or
+color pair identifier,
+nor the quantity of rendering attribute bits,
+in
+.IR chtype ";"
+these are implementation-dependent.
+.I \%ncurses
+uses eight bits for the character code.
+An application requiring a wider character type,
+for instance to handle Unicode,
+should use the wide-character counterparts of these functions.
 .SH SEE ALSO
 \fB\%curs_in_wch\fP(3X) describes comparable functions of the
 .I \%ncurses
index 8e5c7018134525ea2d8401adc66fe8cae9883625..d67b2761fa229f416e5d18b37b44d3d6ae1e7e6d 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_mouse.3x,v 1.98 2024/04/20 19:02:07 tom Exp $
-.TH curs_mouse 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_mouse.3x,v 1.99 2024/05/11 20:39:53 tom Exp $
+.TH curs_mouse 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -487,11 +487,12 @@ the
 .I \%xterm
 mouse report sequence appears in the string read.
 .PP
-Mouse event reports from
+An
+.I \%ncurses
+window must enable \fB\%keypad\fP(3X) to correctly receive mouse event
+reports from
 .I \%xterm
-are not detected correctly in a window with keypad application mode
-disabled,
-since they are interpreted as a variety of function key.
+since they are encoded like function keys.
 Set the terminal's
 .I \%term\%info
 capability \fB\%kmous\fP to \*(``\eE[M\*(''
index df263f2c1a81c9dd43348b2dea6f82b75013da98..8904d2ee5e5ff09d8342dad77b0991922a4f5cd8 100644 (file)
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_outopts.3x,v 1.64 2024/04/20 21:24:19 tom Exp $
-.TH curs_outopts 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_outopts.3x,v 1.65 2024/05/11 20:39:53 tom Exp $
+.TH curs_outopts 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .de bP
 .ie n  .IP \(bu 4
 .el    .IP \(bu 2
 ..
 .SH NAME
 \fB\%clearok\fP,
-\fB\%idlok\fP,
 \fB\%idcok\fP,
+\fB\%idlok\fP,
 \fB\%immedok\fP,
 \fB\%leaveok\fP,
+\fB\%scrollok\fP,
 \fB\%setscrreg\fP,
-\fB\%wsetscrreg\fP,
-\fB\%scrollok\fP \-
+\fB\%wsetscrreg\fP \-
 set \fIcurses\fR output options
 .SH SYNOPSIS
 .nf
 \fB#include <curses.h>
 .PP
 \fBint clearok(WINDOW *\fIwin\fP, bool \fIbf\fP);
-\fBint idlok(WINDOW *\fIwin\fP, bool \fIbf\fP);
 \fBvoid idcok(WINDOW *\fIwin\fP, bool \fIbf\fP);
+\fBint idlok(WINDOW *\fIwin\fP, bool \fIbf\fP);
 \fBvoid immedok(WINDOW *\fIwin\fP, bool \fIbf\fP);
 \fBint leaveok(WINDOW *\fIwin\fP, bool \fIbf\fP);
 \fBint scrollok(WINDOW *\fIwin\fP, bool \fIbf\fP);
@@ -72,6 +72,13 @@ If
 the \fIwin\fP argument to \fBclearok\fP is the global variable \fBcurscr\fP,
 the next call to \fBwrefresh\fP with any window causes the screen to be cleared
 and repainted from scratch.
+.SS idcok
+If \fBidcok\fP is called with \fBFALSE\fP as second argument, \fBcurses\fP
+no longer considers using the hardware insert/delete character feature of
+terminals so equipped.
+Use of character insert/delete is enabled by default.
+Calling \fBidcok\fP with \fBTRUE\fP as second argument re-enables use
+of character insertion and deletion.
 .SS idlok
 If \fBidlok\fP is called with \fBTRUE\fP as second argument, \fBcurses\fP
 considers using the hardware insert/delete line feature of terminals so
@@ -85,13 +92,6 @@ disabled by default because insert/delete line tends to be visually annoying
 when used in applications where it is not really needed.
 If insert/delete line
 cannot be used, \fBcurses\fP redraws the changed portions of all lines.
-.SS idcok
-If \fBidcok\fP is called with \fBFALSE\fP as second argument, \fBcurses\fP
-no longer considers using the hardware insert/delete character feature of
-terminals so equipped.
-Use of character insert/delete is enabled by default.
-Calling \fBidcok\fP with \fBTRUE\fP as second argument re-enables use
-of character insertion and deletion.
 .SS immedok
 If \fBimmedok\fP is called with \fBTRUE\fP as second argument,
 any change in the window image,
@@ -119,7 +119,7 @@ line.
 If enabled, (\fIbf\fP is \fBTRUE\fP), the window is scrolled up one line
 (Note that to get the physical scrolling effect on the terminal, it is
 also necessary to call \fBidlok\fP).
-.SS  "setscrreg, wsetscrreg"
+.SS "setscrreg, wsetscrreg"
 The \fBsetscrreg\fP and \fBwsetscrreg\fP routines allow the application
 programmer to set a software scrolling region in a window.
 The \fItop\fP and
index e58a48e3caeae909376fbdae17e8eb7d16c1d65b..3a1e5fc0616b1e60f939139a6f1cb20627e618ed 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_sp_funcs.3x,v 1.50 2024/04/20 18:56:31 tom Exp $
-.TH curs_sp_funcs 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_sp_funcs.3x,v 1.51 2024/05/11 20:39:53 tom Exp $
+.TH curs_sp_funcs 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
index dacd3b0f4d84bdf5d98b3d04d1d387f8451d82ae..019522e74a92fc6b71c4007c5a99cace57e64562 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_termattrs.3x,v 1.41 2024/04/20 21:20:07 tom Exp $
-.TH curs_termattrs 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_termattrs.3x,v 1.42 2024/05/11 20:39:53 tom Exp $
+.TH curs_termattrs 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .SH NAME
 \fB\%baudrate\fP,
 \fB\%erasechar\fP,
@@ -41,7 +41,7 @@
 \fB\%term_attrs\fP,
 \fB\%termattrs\fP,
 \fB\%termname\fP \-
-\fIcurses\fR environment query routines
+get and set terminal attributes with \fIcurses\fP
 .SH SYNOPSIS
 .nf
 \fB#include <curses.h>
index 1df0a1d3f394812f31101f448500893683291726..ac92fa8af40556189c079e29ef0e3985f32a7ae6 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_util.3x,v 1.101 2024/04/20 21:20:07 tom Exp $
-.TH curs_util 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: curs_util.3x,v 1.102 2024/05/11 20:39:53 tom Exp $
+.TH curs_util 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -71,7 +71,7 @@ miscellaneous \fIcurses\fR utility routines
 .PP
 \fBvoid filter(void);
 .PP
-\fBvoid use_env(bool \fIf\fP);
+\fBvoid use_env(bool \fIbf\fP);
 .PP
 \fBint putwin(WINDOW *\fIwin\fP, FILE *\fIfilep\fP);
 \fBWINDOW *getwin(FILE *\fIfilep\fP);
@@ -81,7 +81,7 @@ miscellaneous \fIcurses\fR utility routines
 .PP
 \fI/* extensions */
 \fBvoid nofilter(void);
-\fBvoid use_tioctl(bool \fIf\fP);
+\fBvoid use_tioctl(bool \fIbf\fP);
 .fi
 .SH DESCRIPTION
 .SS unctrl
@@ -217,7 +217,6 @@ lB lB lx.
 use_env        use_tioctl      Summary
 _
 TRUE   FALSE   T{
-This is the default behavior.
 \fI\%ncurses\fP uses operating system calls
 unless overridden by \fILINES\fP or \fI\%COLUMNS\fP environment
 variables;
index 5f92c96dd63b8663c588fd9ff49d0f33443709ae..661a0861d95b3bc304afc3796295cb3ee4580c6c 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: infocmp.1m,v 1.109 2024/03/16 15:35:01 tom Exp $
-.TH @INFOCMP@ 1M 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.\" $Id: infocmp.1m,v 1.110 2024/05/11 20:39:53 tom Exp $
+.TH @INFOCMP@ 1M 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -49,7 +49,6 @@
 .el    .IP \(bu 2
 ..
 .
-.ds d @TERMINFO@
 .SH NAME
 \fB@INFOCMP@\fP \-
 compare or print out \fIterminfo\fP descriptions
@@ -584,7 +583,7 @@ These are extensions to the terminfo repertoire which can be loaded
 using the \fB\-x\fP option of \fB@TIC@\fP.
 .SH FILES
 .TP
-.I \*d
+.I @TERMINFO@
 compiled terminal description database
 .SH EXTENSIONS
 The
index 0f0335d44603135360b59b1a050559e4f1f894c2..43db64b1115ee954bb02006c49e968825332d364 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: infotocap.1m,v 1.41 2024/03/16 15:35:01 tom Exp $
-.TH @INFOTOCAP@ 1M 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.\" $Id: infotocap.1m,v 1.42 2024/05/11 20:39:53 tom Exp $
+.TH @INFOTOCAP@ 1M 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -40,7 +40,6 @@
 .el   .ds '' ""
 .\}
 .
-.ds d @TERMINFO@
 .SH NAME
 \fB\%@INFOTOCAP@\fP \-
 convert a \fI\%terminfo\fR description into a \fI\%termcap\fR description
@@ -78,7 +77,7 @@ The \fB\-V\fP option reports the version of \fI\%ncurses\fP associated
 with this program and exits with a successful status.
 .SH FILES
 .TP
-.I \*d
+.I @TERMINFO@
 compiled terminal description database
 .SH PORTABILITY
 None of X/Open Curses,
index 2b18a016eafc8a122fc071b02acdae74ab6c16c8..60efbdd23f10fe8a66b983f3103bdd3863148fa8 100644 (file)
@@ -26,7 +26,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: man_db.renames.in,v 1.73 2024/04/13 23:39:11 tom Exp $
+# $Id: man_db.renames.in,v 1.74 2024/05/11 20:30:32 tom Exp $
 # Manual-page renamings for the man_db program
 #
 # Files:
@@ -251,6 +251,7 @@ start_color.3x                      start_color.3ncurses
 subwin.3x                      subwin.3ncurses
 syncok.3x                      syncok.3ncurses
 terminfo.3x                    terminfo.3ncurses
+tigetflag.3x                   tigetflag.3ncurses
 tigetstr.3x                    tigetstr.3ncurses
 touchline.3x                   touchline.3ncurses
 touchwin.3x                    touchwin.3ncurses
@@ -266,6 +267,8 @@ use_tioctl.3x                       use_tioctl.3ncurses
 vidputs.3x                     vidputs.3ncurses
 wadd_wch.3x                    wadd_wch.3ncurses
 waddch.3x                      waddch.3ncurses
+waddnstr.3x                    waddnstr.3ncurses
+waddnwstr.3x                   waddnwstr.3ncurses
 waddstr.3x                     waddstr.3ncurses
 waddwstr.3x                    waddwstr.3ncurses
 wattr_set.3x                   wattr_set.3ncurses
@@ -286,6 +289,7 @@ wnoutrefresh.3x                     wnoutrefresh.3ncurses
 wrefresh.3x                    wrefresh.3ncurses
 wsetscrreg.3x                  wsetscrreg.3ncurses
 wtimeout.3x                    wtimeout.3ncurses
+wunctrl.3x                     wunctrl.3ncurses
 #
 # Other:
 getty.8                                getty.8
index 7599c74a8a27d069b5ed38401e89b810b1981d98..4b64fbebee885900b27ece09d8cc2ebf496e7388 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: manhtml.aliases,v 1.35 2024/04/14 00:36:21 tom Exp $
+# $Id: manhtml.aliases,v 1.36 2024/05/11 21:52:17 tom Exp $
 #***************************************************************************
 # Copyright 2019-2023,2024 Thomas E. Dickey                                *
 # Copyright 2013,2017 Free Software Foundation, Inc.                       *
@@ -99,6 +99,7 @@ slk_touch(3X)         curs_slk(3X)
 start_color(3X)                curs_color(3X)
 terminfo(3X)           curs_terminfo(3X)
 tic(1)                 tic(1M)
+tigetflag(3X)          curs_terminfo(3X)
 tigetstr(3X)           curs_terminfo(3X)
 touchline(3X)          curs_touch(3X)
 touchwin(3X)           curs_touch(3X)
@@ -112,6 +113,8 @@ use_tioctl(3X)              curs_util(3X)
 vidputs(3X)            curs_terminfo(3X)
 wadd_wch(3X)           curs_add_wch(3X)
 waddch(3X)             curs_addch(3X)
+waddnstr(3X)           curs_addstr(3X)
+waddnwstr(3X)          curs_addwstr(3X)
 waddstr(3X)            curs_addstr(3X)
 waddwstr(3X)           curs_addwstr(3X)
 wattr_set(3X)          curs_attr(3X)
@@ -124,6 +127,7 @@ wechochar(3X)               curs_addch(3X)
 wget_wch(3X)           curs_get_wch(3X)
 wgetch(3X)             curs_getch(3X)
 wgetstr(3X)            curs_getstr(3X)
+win_wch(3X)            curs_in_wch(3X)
 winch(3X)              curs_inch(3X)
 wins_wch(3X)           curs_ins_wch(3X)
 winsch(3X)             curs_insch(3X)
@@ -131,3 +135,4 @@ wmove(3X)           curs_move(3X)
 wnoutrefresh(3X)       curs_refresh(3X)
 wrefresh(3X)           curs_refresh(3X)
 wsetscrreg(3X)         curs_outopts(3X)
+wunctrl(3X)            curs_util(3X)
index 41aa6359df10723d151b06710f90c4fc5870faca..e685e9c2cc2bc442698329cf710ef9d13340e9ee 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: manhtml.externs,v 1.25 2024/04/20 19:26:05 tom Exp $
+# $Id: manhtml.externs,v 1.26 2024/05/11 20:35:15 tom Exp $
 # Items in this list will not be linked by man2html
 #***************************************************************************
 # Copyright 2019-2023,2024 Thomas E. Dickey                                *
@@ -53,6 +53,7 @@ printf(3)
 profile(5)
 putc(3)
 putchar(3)
+putwchar(3)
 putwc(3)
 read(2)
 readline(3)
index 9aaa7adf54bf535f8d6865af8231ca7023c9ae1d..60379641415f4bea860003a37477589f12c99535 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: ncurses.3x,v 1.214 2024/04/27 17:55:43 tom Exp $
-.TH ncurses 3X 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
+.\" $Id: ncurses.3x,v 1.215 2024/05/11 20:39:53 tom Exp $
+.TH ncurses 3X 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -54,7 +54,6 @@
 .  TP
 ..
 .
-.ds d @TERMINFO@
 .SH NAME
 \fB\%ncurses\fP \-
 character-cell terminal interface with optimized output
@@ -86,15 +85,16 @@ abstraction and subdivision thereof with
 .I windows
 and
 .IR pads ;
-the reading of terminal input;
+acquisition of keyboard and mouse events;
 control of terminal input and output options;
-environment query routines;
-color manipulation;
+selection of color and rendering attributes
+(such as bold or underline);
 the definition and use of
 .I "soft label"
 keys;
+access to the
 .I \%term\%info
-capability access;
+terminal capability database;
 a
 .I termcap
 compatibility interface;
@@ -102,8 +102,7 @@ and an abstraction of the system's API for manipulating the terminal
 (such as \fI\%termios\fP(3)).
 .PP
 .I \%ncurses
-implements the standard interface described by
-X/Open Curses Issue\ 7.
+implements the interface described by X/Open Curses Issue\ 7.
 In many behavioral details not standardized by X/Open,
 .I \%ncurses
 emulates the
@@ -272,7 +271,7 @@ respectively.
 .PP
 Frequent changes to the terminal screen can cause unpleasant flicker or
 inefficient use of the communication channel to the device,
-so the library does not generally update it automatically.
+so as a rule the library does not update it automatically.
 Therefore,
 after using
 .I curses
@@ -284,7 +283,7 @@ The library
 .\" X/Open Curses Issue 7 assumes some optimization will be done, but
 .\" does not mandate it in any way.
 .I optimizes
-its output by computing a minimal number of operations to mutate the
+its output by computing a minimal volume of operations to mutate the
 screen from its state at the previous refresh to the new one.
 Effective optimization demands accurate information about the terminal
 device:
@@ -297,26 +296,28 @@ implementation.
 Special windows called
 .I pads
 may also be manipulated.
-These are windows that are not constrained to the size of the terminal
-screen and whose contents need not be completely displayed.
+These are not constrained to the size of the terminal screen and their
+contents need not be completely displayed.
 See \fB\%curs_pad\fP(3X).
 .PP
-In addition to drawing characters on the screen,
-rendering attributes and colors may be supported,
-causing the characters to show up in such modes as underlined,
-in reverse video,
-or in color on terminals that support such display enhancements.
+Many terminals support configuration of character cell foreground and
+background colors as well as rendering
+.I attributes ,
+which cause characters to show up in such modes as
+boldfaced,
+underlined,
+or in reverse video.
 See \fB\%curs_attr\fP(3X).
 .PP
 .I curses
 predefines constants for a small set of forms-drawing graphics
 corresponding to the DEC Alternate Character Set (ACS),
 a feature of VT100 and other terminals.
-See \fB\%waddch\fP(3X).
+See \fB\%addch\fP(3X).
 .PP
 .I curses
 is implemented using the operating system's terminal driver;
-keystroke events are received not as scan codes but as byte sequences.
+key events are received not as scan codes but as byte sequences.
 Graphical keycaps
 (alphanumeric and punctuation keys,
 and the space)
@@ -330,13 +331,14 @@ and function keys,
 appears as a control character or a multibyte
 .I "escape sequence."
 .I curses
-translates these into unique
+translates the latter into unique
 .I "key codes."
 See \fB\%getch\fP(3X).
 .PP
 .I \%ncurses
 provides reimplementations of the SVr4 \fBpanel\fP(3X), \fBform\fP(3X),
-and \fBmenu\fP(3X) libraries to ease construction of user interfaces
+and \fBmenu\fP(3X) libraries;
+they permit overlapping windows and ease construction of user interfaces
 with
 .IR curses .
 .SS "Initialization"
@@ -353,9 +355,9 @@ value automatically;
 \fB\%tset\fP(1) may assist with troubleshooting exotic situations.
 .PP
 If you change the terminal type,
-export the
+export the shell's
 .I TERM
-environment variable in the shell,
+variable,
 then run \fB\%tset\fP(1) or the
 .RB \*(`` "@TPUT@ init" \*(''
 command.
@@ -384,9 +386,8 @@ a
 program checks first for a terminal type description in the location it
 identifies.
 .I \%TERMINFO
-is useful for developing experimental type descriptions or when write
-permission to
-.I \%\*d
+is useful for developing type descriptions or when write permission to
+.I \%@TERMINFO@
 is not available.
 .PP
 See section \*(``ENVIRONMENT\*('' below.
@@ -413,7 +414,7 @@ man pages apply the following names to parameters.
 .TS
 center;
 Li L.
-bf     \fIbool\fP (\fBTRUE\fP or \fBFALSE\fP)
+bf     \fIbool\fP (\fBTRUE\fP or \fBFALSE\fP)
 c      a \fIchar\fP or \fIint\fP
 ch     a \fIchtype\fP
 wc     a \fIwchar_t\fP or \fIwint_t\fP
@@ -422,21 +423,33 @@ win       pointer to a \fIWINDOW\fP
 pad    pointer to a \fIWINDOW\fP that is a pad
 .TE
 .SS "Wide and Non-wide Character Configurations"
-This manual page describes functions that appear in any configuration
-of the library.
+This man page primarily surveys functions that appear in any
+configuration of the library.
 There are two common configurations;
 see section \*(``ALTERNATE CONFIGURATIONS\*('' below.
 .TP 10 \" "ncursesw" + 2n
 .I \%ncurses
 is the library in its \*(``non-wide\*('' configuration,
 handling only eight-bit characters.
-It stores a character combined with attributes in a
+It stores a character combined with attributes and a color pair in a
 .I \%chtype
 datum,
 which is often an alias of
 .IR int .
+A string of
+.I curses
+characters is similar to a C
+.I char
+string;
+a
+.I chtype
+string ends with an integral
+.BR 0 ","
+the null
+.I curses
+character.
 .IP
-Attributes alone
+Attributes and a color pair selection
 (with no corresponding character)
 can be stored in variables of
 .I \%chtype
@@ -444,7 +457,7 @@ or
 .I \%attr_t
 type.
 In either case,
-they are represented as an integral bit mask.
+they are accessed via an integral bit mask.
 .IP
 Each cell of a
 .I \%WINDOW
@@ -477,9 +490,14 @@ Each character is of type
 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
+A string of complex characters ends with a
+.I \%cchar_t
+whose
+.I \%wchar_t
+member is the null wide character.
+Attributes and a color pair selection are stored in separate fields of
+the structure,
+not combined into an integer as in
 .IR \%chtype .
 .PP
 Each cell of a
@@ -1033,11 +1051,12 @@ see sections \*(``ALTERNATE CONFIGURATIONS\*('' and \*(``EXTENSIONS\*(''
 below.
 .SH RETURN VALUE
 Unless otherwise noted,
-functions that return an integer return
+functions that return integers return the constants
 .B OK
 on success and
 .B ERR
-on failure.
+on failure;
+see \fB\%curs_variables\fP(3X).
 Functions that return pointers return
 .B NULL
 on failure.
@@ -1069,7 +1088,7 @@ Its integral value is used for the baud rate.
 If that value is absent or invalid,
 .I \%ncurses
 uses 9600.
-This feature allows testers to construct repeatable test cases
+This feature allows developers to construct repeatable test cases
 that take into account optimization decisions that depend on baud rate.
 .SS "\fICC\fP (command character)"
 When set,
@@ -1256,7 +1275,7 @@ has the same effect.
 When
 .I \%ncurses
 is configured to use the GPM interface,
-this variable may list one or more terminal names
+this variable may list one or more terminal type names
 against which the
 .I TERM
 variable
@@ -1265,7 +1284,7 @@ is matched.
 An empty value disables the GPM interface,
 using
 .IR \%ncurses 's
-built-in support for \fIxterm\fP(1) mouse protocols instead.
+built-in support for \fI\%xterm\fP(1) mouse protocols instead.
 If the variable is absent,
 .I \%ncurses
 attempts to open GPM if
@@ -1315,8 +1334,8 @@ that is,
 limiting the speed of communication to what the hardware could handle.
 Unless a hardware terminal is interfaced into a terminal concentrator
 (which does flow control),
-an application must manage flow control itself to prevent overruns and
-data loss.
+an application must manage flow itself to prevent overruns and data
+loss.
 .PP
 A solution that comes at no hardware cost is for an application to pause
 after directing a terminal to execute an operation that it performs
@@ -1588,7 +1607,7 @@ environment variable
 .bP
 location(s) configured and compiled into
 .I \%ncurses
-.RS 3
+.RS
 .if !'\*(td'' \{\
 .bP
 .I \%@TERMINFO_DIRS@
@@ -1661,29 +1680,49 @@ employing
 .IR \%ncurses .
 .TP 5
 .B \-\-disable\-overwrite
-The standard include for \fI\%ncurses\fP is as noted in \fBSYNOPSIS\fP:
+The standard C preprocessor inclusion for the
+.I curses
+library is as follows.
 .RS 5
 .PP
 .RS 4
 .EX
-\fB#include <curses.h>\fP
+.\" The dummy character prevents undesired rewriting of the next line on
+.\" installation of the man page.
+\fB#\&include <curses.h>\fP
 .EE
 .RE
 .PP
-This option is used to avoid filename conflicts when \fI\%ncurses\fP
-is not the main implementation of curses of the computer.
-If \fI\%ncurses\fP is installed disabling overwrite,
-it puts its headers in a subdirectory,
-e.g.,
+This option is used to avoid file name conflicts between
+.I \%ncurses
+and an existing
+.I curses
+installation on the system.
+If
+.I \%ncurses
+is installed disabling overwrite,
+it puts its header files in a subdirectory.
+Here is an example.
 .PP
 .RS 4
 .EX
-\fB#include <ncurses/curses.h>\fP
+.\" The dummy character prevents undesired rewriting of the next line on
+.\" installation of the man page.
+\fB#\&include <ncurses/curses.h>\fP
 .EE
 .RE
 .PP
-It also omits a symbolic link which would allow you to use \fB\-lcurses\fP
-to build executables.
+Installation also omits a symbolic link that would cause the compiler's
+.B \-lcurses
+option to link object files with
+.I \%ncurses
+instead of the system
+.I curses
+library.
+.PP
+The directory used by this configuration of
+.I \%ncurses
+is shown in section \*(``SYNOPSIS\*('' above.
 .RE
 .TP 5
 .B \-\-enable\-widec
@@ -1801,7 +1840,7 @@ than assuming it is always in the debug library.
 .I @DATADIR@/tabset
 tab stop initialization database
 .TP
-.I \*d
+.I @TERMINFO@
 compiled terminal capability database
 .SH NOTES
 X/Open Curses permits most functions it specifies to be made available
@@ -1819,7 +1858,7 @@ to reuse functions
 those that move the cursor before another operation),
 and
 .bP
-a few special cases.
+in a few special cases.
 .PP
 If the standard output file descriptor of an
 .I \%ncurses
@@ -1878,8 +1917,8 @@ instead using accessor functions such as
 \fB\%is_scrollok\fP(3X).
 .PP
 .I \%ncurses
-enables an application to direct application output to a printer
-attached to the terminal device;
+enables an application to direct its output to a printer attached to the
+terminal device;
 see \fB\%curs_print\fP(3X).
 .PP
 .I \%ncurses
@@ -1896,25 +1935,31 @@ see \fB\%use_legacy_coding\fP(3X).
 .I \%ncurses
 is compiled to support them;
 section \*(``ALTERNATE CONFIGURATIONS\*('' describes how.
-.bP
+.PP
+.I \%ncurses
+permits modification of \fB\%unctrl\fP(3X)'s behavior;
+see \fB\%use_legacy_coding\fP(3X).
+.PP
 Rudimentary support for multi-threaded applications may be available;
 see \fBcurs_threads\fP(3X).
-.bP
+.PP
 Functions that ease the management of multiple screens can be exposed;
 see \fBcurs_sp_funcs\fP(3X).
-.bP
+.PP
 To aid applications to debug their memory usage,
-.I ncurses
+.I \%ncurses
 optionally offers functions to more aggressively free memory it
 dynamically allocates itself;
 see \fBcurs_memleaks\fP(3X).
-.bP
+.PP
 The library facilitates auditing and troubleshooting of its behavior;
 see \fBcurs_trace\fP(3X).
-.bP
-The compiler option
+.PP
+Compiling
+.I \%ncurses
+with the option
 .B \%\-DUSE_GETCAP
-causes the library to fall back to reading
+causes it to fall back to reading
 .I \%/etc/termcap
 if the terminal setup code cannot find a
 .I \%term\%info
@@ -1963,11 +2008,10 @@ to ensure that they are not null.
 This is done primarily to guard against programmer error.
 The standard interface does not provide a way for the library
 to tell an application which of several possible errors occurred.
-Relying on this
-(or some other)
-extension adversely affects the portability of
-.I curses
-applications.
+An application that relies on
+.I \%ncurses
+to check its function parameters for validity limits its portability and
+robustness.
 .SS "Padding Differences"
 In historical
 .I curses
@@ -2125,7 +2169,7 @@ AIX
 includes
 .I \%term.h
 and
-.IR \% termios.h .
+.IR \%termios.h .
 Again,
 .I \%ncurses
 and Solaris
index cec231f551a3ab29a12063f410dca7dca2354752..588652f84e49322606575cba4ef8a3a44b7c0be0 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: term.5,v 1.77 2024/04/20 21:24:19 tom Exp $
-.TH term 5 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
+.\" $Id: term.5,v 1.78 2024/05/11 20:39:53 tom Exp $
+.TH term 5 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
 .el    .IP \(bu 2
 ..
 .
-.ds d @TERMINFO@
 .SH NAME
 term \-
-compiled \fIterminfo\fR terminal description
-.SH SYNOPSIS
-.B term
+compiled \fI\%term\%info\fP terminal description
 .SH DESCRIPTION
+\fB\%@TIC@\fP(1) compiles a
+.I \%term\%info
+terminal type description,
+and \fB\%setupterm\fP(3X) reads it.
+A compiled description may be stored in a file or in a database of,
+potentially,
+many such descriptions.
+Further,
+a compiled description may be in one of two formats:
+one similar to that used by System\ V,
+and a newer,
+extensible format employed exclusively by
+.IR \%ncurses .
 .SS "Storage Location"
-Compiled terminfo descriptions are placed under the directory \fB\*d\fP.
-Two configurations are supported
-(when building the \fI\%ncurses\fP libraries):
+Compiled
+.I \%term\%info descriptions are placed
+under the directory
+.IR \%@TERMINFO@ .
+One of two configurations is selected
+when building the
+.I \%ncurses
+libraries.
 .TP 5
 .B directory tree
 A two-level scheme is used to avoid a linear search
-of a huge Unix system directory: \fB\*d/c/name\fP where
+of a huge Unix system directory:
+.IR \%@TERMINFO@/ c / name
+where
 .I name
-is the name of the terminal, and
+is the name of the terminal,
+and
 .I c
 is the first character of
 .IR name .
 Thus,
-.I act4
-can be found in the file \fB\*d/a/act4\fP.
+the compiled description of terminal type \*(``act4\*(''
+is found in the file
+.IR \%@TERMINFO@/a/act4 .
 Synonyms for the same terminal are implemented by multiple
 links to the same compiled file.
 .TP 5
 .B hashed database
-Using Berkeley database, two types of records are stored:
-the terminfo data in the same format as stored in a directory tree with
-the terminfo's primary name as a key,
+Using the Berkeley database API,
+two types of records are stored:
+the
+.I \%term\%info
+data in the same format as that stored in a directory tree with
+the terminal's primary type name as a key,
 and records containing only aliases pointing to the primary name.
 .IP
 If built to write hashed databases,
-\fI\%ncurses\fP can still read terminfo databases organized as a
+.I \%ncurses
+can still read
+.I \%term\%info
+databases organized as a
 directory tree,
 but cannot write entries into the directory tree.
-It can write (or rewrite) entries in the hashed database.
+It can write
+(or rewrite)
+entries in the hashed database.
 .IP
-\fI\%ncurses\fP distinguishes the two cases in the \fI\%TERMINFO\fP and
-\fI\%TERMINFO_DIRS\fP environment variable by assuming a directory tree
-for entries that correspond to an existing directory,
-and hashed database otherwise.
+.I \%ncurses
+distinguishes the two cases in the
+.I \%TERMINFO
+and
+.I \%TERMINFO_DIRS
+environment variable by assuming a directory tree for entries that
+correspond to an existing directory,
+and a hashed database otherwise.
 .SS "Legacy Storage Format"
 The format has been chosen so that it will be the same on all hardware.
-An 8 or more bit byte is assumed, but no assumptions about byte ordering
+A byte of at least eight bits' width is assumed,
+but no assumptions about bit ordering
 or sign extension are made.
 .PP
-The compiled file is created with the \fB@TIC@\fP program,
-and read by the routine \fBsetupterm\fP(3X).
 The file is divided into six parts:
 .RS 5
-.TP 3
-a) \fIheader\fP,
-.TP 3
-b) \fIterminal names\fP,
-.TP 3
-c) \fIBoolean flags\fP,
-.TP 3
-d) \fInumbers\fP,
-.TP 3
-e) \fIstrings\fP, and
-.TP 3
-f) \fIstring table\fP.
+.IP (a) 4
+.IR header ,
+.IP (b)
+.IR "terminal names" ,
+.IP (c)
+.IR "Boolean flags" ,
+.IP (d)
+.IR numbers ,
+.IP (e)
+.IR strings ,
+and
+.IP (f)
+a
+.IR "string table" .
 .RE
 .PP
 The \fIheader\fP section begins the file.
@@ -126,54 +158,64 @@ described below.
 These integers are
 .RS 5
 .TP 5
-(1) the \fImagic number\fP (octal 0432);
+(1) the \fImagic number\fP
+(octal 0432);
 .TP 5
-(2) the size, in bytes, of the \fIterminal names\fP section;
+(2) the size,
+in bytes,
+of the \fIterminal names\fP section;
 .TP 5
 (3) the number of bytes in the \fIBoolean flags\fP section;
 .TP 5
 (4) the number of short integers in the \fInumbers\fP section;
 .TP 5
-(5) the number of offsets (short integers) in the \fIstrings\fP section;
+(5) the number of offsets
+(short integers)
+in the \fIstrings\fP section;
 .TP 5
-(6) the size, in bytes, of the \fIstring table\fP.
+(6) the size,
+in bytes,
+of the \fIstring table\fP.
 .RE
 .PP
 The capabilities in the
 \fIBoolean flags\fP,
-\fInumbers\fP, and
+\fInumbers\fP,
+and
 \fIstrings\fP
-sections are in the same order as the file <term.h>.
+sections are in the same order as in the header file
+.IR term.h .
 .PP
-Short integers are signed, in the range \-32768 to 32767.
-They are stored as two 8-bit bytes.
-The first byte contains the least significant 8 bits of the value,
-and the second byte contains the most significant 8 bits.
-(Thus, the value represented is 256*second+first.)
-This format corresponds to the hardware of the \s-1VAX\s+1
-and \s-1PDP\s+1-11 (that is, little-endian machines).
-Machines where this does not correspond to the hardware must read the
-integers as two bytes and compute the little-endian value.
+Short integers are signed,
+in the range \-32768 to 32767,
+and stored in little-endian format.
 .PP
 Numbers in a terminal description,
 whether they are entries in the \fInumbers\fP or \fIstrings\fP table,
 are positive integers.
 Boolean flags are treated as positive one-byte integers.
-In each case, those positive integers represent a terminal capability.
-The terminal compiler @TIC@ uses negative integers to handle the cases where
-a capability is not available:
+In each case,
+those positive integers represent a terminal capability.
+The terminal compiler
+.I \%@TIC@
+uses negative integers to handle the cases where a capability is not
+available:
 .bP
 If a capability is absent from this terminal,
-@TIC@ stores a \-1 in the corresponding table.
+.I \%@TIC@
+stores a \-1 in the corresponding table.
 .IP
-The integer value \-1 is represented by two bytes 0377, 0377.
+The integer value \-1 is represented by two bytes 0377,
+0377.
 .br
 Absent Boolean values are represented by the byte 0 (false).
 .bP
 If a capability has been canceled from this terminal,
-@TIC@ stores a \-2 in the corresponding table.
+.I \%@TIC@
+stores a \-2 in the corresponding table.
 .IP
-The integer value \-2 is represented by two bytes 0377, 0376.
+The integer value \-2 is represented by two bytes 0377,
+0376.
 .br
 The Boolean value \-2 is represented by the byte 0376.
 .br
@@ -181,18 +223,22 @@ The Boolean value \-2 is represented by the byte 0376.
 Other negative values are illegal.
 .PP
 The \fIterminal names\fP section comes after the \fIheader\fP.
-It contains the first line of the terminfo description,
+It contains the first line of the
+.I \%term\%info
+description,
 listing the various names for the terminal,
 separated by the \*(``|\*('' character.
 The \fIterminal names\fP section is terminated
 with an \s-1ASCII NUL\s+1 character.
 .PP
 The \fIBoolean flags\fP section has one byte for each flag.
-Boolean capabilities are either 1 or 0 (true or false)
+Boolean capabilities are either 1 or 0
+(true or false)
 according to whether the terminal supports the given capability or not.
 .PP
 Between the \fIBoolean flags\fP section and the \fInumber\fP section,
-a null byte will be inserted, if necessary,
+a null byte will be inserted,
+if necessary,
 to ensure that the \fInumber\fP section begins on an even byte
 This is a relic of the PDP\-11's word-addressed architecture,
 originally designed to avoid traps induced
@@ -212,27 +258,41 @@ It contains all of the values of string capabilities referenced in
 the \fIstrings\fP section.
 Each string is null-terminated.
 Special characters in \*^X or \ec notation are stored in their
-interpreted form, not the printing representation.
-Padding information $<nn> and parameter information %x are
-stored intact in uninterpreted form.
+interpreted form,
+not the printing representation.
+Padding information
+.BI $< nn >
+and parameter information
+.B %x
+are stored intact in uninterpreted form.
 .SS "Extended Storage Format"
-The previous section describes the conventional terminfo binary format.
-With some minor variations of the offsets (see PORTABILITY),
+The previous section describes the conventional
+.I \%term\%info
+binary format.
+With some minor variations of the offsets
+(see PORTABILITY),
 the same binary format is used in all modern Unix systems.
-Each system uses a predefined set of Boolean, number or string capabilities.
+Each system uses a predefined set of Boolean,
+number or string capabilities.
 .PP
-The \fI\%ncurses\fP libraries and applications support
-extended terminfo binary format,
-allowing users to define capabilities which are loaded at runtime.
-This
-extension is made possible by using the fact that the other implementations
-stop reading the terminfo data when they have reached the end of the size given
-in the header.
-\fI\%ncurses\fP checks the size,
+The
+.I \%ncurses
+libraries and applications support extended
+.I \%term\%info
+binary format,
+allowing users to define capabilities that are loaded at runtime.
+This extension is made possible by using the fact that the other
+implementations stop reading the
+.I \%term\%info
+data when they reach the end of the size given in the header.
+.I \%ncurses
+checks the size,
 and if it exceeds that due to the predefined data,
 continues to parse according to its own scheme.
 .PP
-First, it reads the extended header (5 short integers):
+First,
+it reads the extended header
+(5 short integers):
 .RS 5
 .TP 5
 (1)
@@ -256,45 +316,62 @@ include the extended capability \fInames\fP as well as
 extended capability \fIvalues\fP.
 .PP
 Using the counts and sizes,
-\fI\%ncurses\fP allocates arrays and reads data for the extended
-capabilities in the same order as the header information.
+.I \%ncurses
+allocates arrays and reads data for the extended capabilities in the
+same order as the header information.
 .PP
 The extended string table contains values for string capabilities.
-After the end of these values, it contains the names for each of
-the extended capabilities in order, e.g., Booleans, then numbers and
-finally strings.
+After the end of these values,
+it contains the names for each of
+the extended capabilities in order:
+Boolean,
+numeric,
+and string.
 .PP
 By storing terminal descriptions in this way,
-\fI\%ncurses\fP is able to provide a database useful with legacy
-applications,
-as well as providing data for applications which need more than the
-predefined capabilities.
-See \fBuser_caps\fP(5) for an overview
-of the way \fI\%ncurses\fP uses this extended information.
+.I \%ncurses
+is able to provide a database useful with legacy applications,
+as well as providing data for applications that require more information
+about a terminal type than was anticipated
+by X/Open Curses.
+See \fB\%user_caps\fP(5) for an overview of the way
+.I \%ncurses
+uses this extended information.
 .PP
-Applications which manipulate terminal data can use the definitions
-described in \fBterm_variables\fP(3X) which associate the long capability
-names with members of a \fBTERMTYPE\fP structure.
+Applications that manipulate terminal data can use the definitions
+described in \fB\%term_variables\fP(3X) associating the long capability
+names with members of a
+.I \%TERMTYPE
+structure.
 .
 .SS "Extended Number Format"
-On occasion, 16-bit signed integers are not large enough.
-With \fI\%ncurses\fP 6.1,
-a new format was introduced by making a few changes
-to the legacy format:
+On occasion,
+16-bit signed integers are not large enough.
+.I \%ncurses
+6.1 introduced a new format
+by making a few changes to the legacy format:
 .bP
-a different magic number (octal 01036)
+a different magic number
+(octal 01036)
 .bP
 changing the type for the \fInumber\fP array from signed 16-bit integers
 to signed 32-bit integers.
 .PP
-To maintain compatibility, the library presents the same data structures
-to direct users of the \fBTERMTYPE\fP structure as in previous formats.
-However, that cannot provide callers with the extended numbers.
-The library uses a similar but hidden data structure \fBTERMTYPE2\fP
-to provide data for the terminfo functions.
+To maintain compatibility,
+the library presents the same data structures
+to direct users of the
+.I \%TERMTYPE
+structure as in previous formats.
+However,
+that cannot provide callers with the extended numbers.
+The library uses a similar but hidden data structure
+.I \%TERMTYPE2
+to provide data for the
+.I \%term\%info
+functions.
 .SH FILES
 .TP
-.I \*d
+.I @TERMINFO@
 compiled terminal description database
 .SH PORTABILITY
 .SS setupterm
@@ -313,69 +390,101 @@ The routine
 .B setupterm
 must be prepared for both possibilities \-
 this is why the numbers and sizes are included.
-Also, new capabilities must always be added at the end of the lists
-of Boolean, number, and string capabilities.
+Also,
+new capabilities must always be added at the end of the lists
+of Boolean,
+number,
+and string capabilities.
 .SS "Binary Format"
-X/Open Curses does not specify a format for the terminfo database.
-System V curses used a directory-tree of binary files,
+X/Open Curses does not specify a format for the
+.I \%term\%info
+database.
+System\ V
+.I curses
+used a directory-tree of binary files,
 one per terminal description.
 .PP
-Despite the consistent use of little-endian for numbers and the otherwise
-self-describing format, it is not wise to count on portability of binary
-terminfo entries between commercial Unix versions.
-The problem is that there
-are at least three versions of terminfo (under HP\-UX, AIX, and OSF/1) which
-diverged from System V terminfo after SVr1, and have added extension
-capabilities to the string table that (in the binary format) collide with
-System V and X/Open Curses extensions.
-See \fBterminfo\fP(5) for detailed
-discussion of terminfo source compatibility issues.
+Despite the consistent use of little-endian numbers and the otherwise
+self-describing format,
+it is not wise to count on portability of binary
+.I \%term\%info
+entries between commercial Unix versions.
+The problem is that there are at least three versions of
+.I \%term\%info
+(under HP\-UX,
+AIX,
+and OSF/1)
+each of which diverged from System\ V
+.I \%term\%info
+after SVr1,
+and added extension capabilities to the string table that
+(in the binary format)
+collide with System\ V and X/Open Curses extensions.
+See \fB\%terminfo\fP(5) for detailed
+discussion of
+.I \%term\%info
+source compatibility issues.
 .PP
 This implementation is by default compatible with the binary
-terminfo format used by Solaris curses,
+.I \%term\%info
+format used by Solaris
+.IR curses ,
 except in a few less-used details
 where it was found that the latter did not match X/Open Curses.
 The format used by the other Unix versions
-can be matched by building \fI\%ncurses\fP
+can be matched by building
+.I \%ncurses
 with different configuration options.
 .SS "Magic Codes"
-The magic number in a binary terminfo file is the first 16-bits (two bytes).
-Besides making it more reliable for the library to check that a file
-is terminfo,
-utilities such as \fBfile\fP(1) also use that to tell what the file-format is.
-System V defined more than one magic number,
-with 0433, 0435 as screen-dumps (see \fBscr_dump\fP(5)).
+The magic number in a binary
+.I \%term\%info
+file is the first 16 bits
+(two bytes).
+Besides making it more reliable for the library to check that a file is
+.IR \%term\%info ,
+utilities such as \fIfile\fP(1) also use that to tell what the
+file-format is.
+System\ V defined more than one magic number,
+with 0433,
+0435 as screen-dumps
+(see \fB\%scr_dump\fP(5)).
 This implementation uses 01036 as a continuation of that sequence,
 but with a different high-order byte to avoid confusion.
 .SS "The \fITERMTYPE\fP Structure"
-Direct access to the \fBTERMTYPE\fP structure is provided for legacy
-applications.
-Portable applications should use the \fBtigetflag\fP and related functions
-described in \fBcurs_terminfo\fP(3X) for reading terminal capabilities.
+Direct access to the
+.I \%TERMTYPE
+structure is provided for legacy applications.
+Portable applications should use \fB\%tigetflag\fP(3X) and related
+functions to read terminal capabilities.
 .SS "Mixed-case Terminal Names"
 A small number of terminal descriptions use uppercase characters in
 their names.
-If the underlying filesystem ignores the difference between
+If the underlying file system ignores the difference between
 uppercase and lowercase,
-\fI\%ncurses\fP represents the \*(``first character\*(''
-of the terminal name used as
-the intermediate level of a directory tree in (two-character) hexadecimal form.
+.I \%ncurses
+represents the \*(``first character\*('' of the terminal name used as
+the intermediate level of a directory tree in (two-character)
+hexadecimal form.
 .SS Limits
-\fI\%ncurses\fP stores compiled terminal descriptions
-in three related formats,
-described in the sections
+.I \%ncurses
+stores compiled terminal descriptions in three related formats,
+described in the subsections
 .bP
-\fBLEGACY STORAGE FORMAT\fP, and
+.BR "Legacy Storage Format" ,
+and
 .bP
-\fBEXTENDED STORAGE FORMAT\fP, and
+.BR "Extended Storage Format" ,
+and
 .bP
-\fBEXTENDED NUMBER FORMAT\fP.
+.BR "Extended Number Format" .
 .PP
 The legacy storage format and the extended number format differ by
-the types of numeric capability which they can store
-(i.e., 16-bit versus 32-bit integers).
-The extended storage format introduced by \fI\%ncurses\fP 5.0 adds data
-to either of these formats.
+the types of numeric capability that they can store
+(for example,
+16- versus 32-bit integers).
+The extended storage format introduced by
+.I \%ncurses
+5.0 adds data to either of these formats.
 .PP
 Some limitations apply:
 .bP
@@ -390,8 +499,10 @@ Compiled entries are limited to 32768 bytes because offsets into the
 The legacy format could have supported 32768-byte entries,
 but was limited to a virtual memory page's 4096 bytes.
 .SH EXAMPLES
-As an example, here is a description for the Lear-Siegler
-ADM\-3, a popular though rather stupid early terminal:
+Here is a
+.I \%term\%info
+description of the Lear-Siegler ADM-3,
+a popular though rather stupid early terminal.
 .PP
 .EX
 adm3a|lsi adm3a,
@@ -402,7 +513,9 @@ adm3a|lsi adm3a,
         home=\*^\*^, ind=\*^J,
 .EE
 .PP
-and a hexadecimal dump of the compiled terminal description:
+A hexadecimal dump of its compiled terminal description
+(in legacy format)
+follows.
 .PP
 .if t .in +4n
 .ft \*(CW
@@ -436,15 +549,27 @@ Lp-1.
 .SH AUTHORS
 Thomas E. Dickey
 .br
-extended terminfo format for \fI\%ncurses\fP 5.0
+extended
+.I \%term\%info
+format for
+.I \%ncurses
+5.0
 .br
-hashed database support for \fI\%ncurses\fP 5.6
+hashed database support for
+.I \%ncurses
+5.6
 .br
-extended number support for \fI\%ncurses\fP 6.1
+extended number support for
+.I \%ncurses
+6.1
 .sp
 Eric S. Raymond
 .br
-documented legacy terminfo format, e.g., from \fIpcurses\fP.
+documented legacy
+.I \%term\%info
+format
+(that used by
+.IR \%pcurses ).
 .SH SEE ALSO
 \fB\%curses\fP(3X),
 \fB\%curs_terminfo\fP(3X),
index 84d100d840ca448e08f5debd49ee51b8b5b97b91..ac4ab6cfbcf8099895fb73ac448016372716b338 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: term.7,v 1.48 2024/03/16 15:35:01 tom Exp $
-.TH term 7 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" Miscellaneous
+.\" $Id: term.7,v 1.49 2024/05/11 20:39:53 tom Exp $
+.TH term 7 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" Miscellaneous
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -40,7 +40,6 @@
 .el   .ds '' ""
 .\}
 .
-.ds d @TERMINFO@
 .SH NAME
 term \-
 conventions for naming terminal types
@@ -83,7 +82,7 @@ a custom entry incorporating options
 which you wish to override the system default type for your line.
 .PP
 Terminal type descriptions are stored as files of capability data underneath
-\*d.
+@TERMINFO@.
 To browse a list of all terminal names recognized by the system, do
 .sp
         @TOE@ | more
@@ -97,7 +96,7 @@ Invoke it as follows:
         @INFOCMP@ \fIentry_name\fP
 .sp
 where \fIentry_name\fP is the name of the type you wish to examine (and the
-name of its capability file the subdirectory of \*d named for its first
+name of its capability file the subdirectory of @TERMINFO@ named for its first
 letter).
 This command dumps a capability file in the text format described by
 \fBterminfo\fP(5).
@@ -221,7 +220,7 @@ Such programs should fall back
 on the \fITERM\fP environment variable when no \-T option is specified.
 .SH FILES
 .TP
-.I \*d
+.I @TERMINFO@
 compiled terminal description database
 .TP
 .I /etc/inittab
index 717f849e25fb6837b6001d31c4f7cb904702e162..1d712ced5d5f6fa97ef2908812a76d2d7427aac5 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: terminfo.head,v 1.65 2024/04/20 21:14:00 tom Exp $
-.TH terminfo 5 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
+.\" $Id: terminfo.head,v 1.66 2024/05/11 20:39:53 tom Exp $
+.TH terminfo 5 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
 .el    .IP \(bu 2
 ..
 .
-.ds d @TERMINFO@
 .SH NAME
 \fB\%terminfo\fP \-
 terminal capability database
 .SH SYNOPSIS
-\*d/*/*
+@TERMINFO@/*/*
 .SH DESCRIPTION
 .I Terminfo
 is a database describing terminals,
index 4d6daa38b6921905a721f0ee26daa52a97009616..f1a213555ad0d89c8cc60f4a1377678891151b70 100644 (file)
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: terminfo.tail,v 1.148 2024/04/20 21:24:19 tom Exp $
+.\" $Id: terminfo.tail,v 1.149 2024/05/11 20:28:54 tom Exp $
 .ps +1
 .SS "User-Defined Capabilities"
 .
@@ -277,14 +277,14 @@ as a list of colon-separated pathnames of terminal databases to be searched.
 .IP
 An empty pathname (i.e., if the variable begins or ends
 with a colon, or contains adjacent colons)
-is interpreted as the system location \fI\*d\fP.
+is interpreted as the system location \fI@TERMINFO@\fP.
 .bP
 Finally, \fI\%ncurses\fP searches these compiled-in locations:
 .RS
 .bP
 a list of directories (@TERMINFO_DIRS@), and
 .bP
-the system terminfo directory, \fI\*d\fP
+the system terminfo directory, \fI@TERMINFO@\fP
 .RE
 .PP
 The \fBTERMINFO\fP variable can contain a terminal description instead
@@ -2019,7 +2019,7 @@ The \-c (check) option also checks resolved (after tc
 expansion) lengths.
 .SH FILES
 .TP
-.I \*d
+.I @TERMINFO@
 compiled terminal description database directory
 .SH EXTENSIONS
 Searching for terminal descriptions in
index 9c3181ed5c7dffa037d654b672168b663783222a..b73b3c618d67f25c5977ed21974c931c143709a3 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tic.1m,v 1.110 2024/04/27 17:57:06 tom Exp $
-.TH @TIC@ 1M 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.\" $Id: tic.1m,v 1.111 2024/05/11 20:39:53 tom Exp $
+.TH @TIC@ 1M 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -45,7 +45,6 @@
 .el    .IP \(bu 2
 ..
 .
-.ds d @TERMINFO@
 .SH NAME
 \fB\%@TIC@\fP \-
 compile terminal descriptions for \fIterminfo\fR or \fItermcap\fR
@@ -109,7 +108,8 @@ In either case (directory or hashed database),
 For a directory, this would be the \*(``terminfo\*('' leaf,
 versus a "terminfo.db" file.
 .PP
-The results are normally placed in the system terminfo database \fB\*d\fP.
+The results are normally placed
+in the system terminfo database \fB@TERMINFO@\fP.
 The compiled terminal description can be placed
 in a different terminfo database.
 There are two ways to achieve this:
@@ -119,7 +119,7 @@ using the \fB\-o\fP option,
 or by setting the variable \fI\%TERMINFO\fP
 in your shell environment to a valid database location.
 .bP
-Secondly, if \fB@TIC@\fP cannot write in \fI\*d\fP
+Secondly, if \fB@TIC@\fP cannot write in \fI@TERMINFO@\fP
 or the location specified using your \fI\%TERMINFO\fP variable,
 it looks for the directory \fI$HOME/.terminfo\fP
 (or hashed database \fI$HOME/.terminfo.db)\fP;
@@ -135,7 +135,7 @@ directories listed in the \fI\%TERMINFO_DIRS\fP environment variable,
 .bP
 a compiled-in list of directories (@TERMINFO_DIRS@), and
 .bP
-the system terminfo database (\fI\*d\fP).
+the system terminfo database (\fI@TERMINFO@\fP).
 .PP
 The \fIFetching Compiled Descriptions\fP section in the \fBterminfo\fR(5)
 manual goes into further detail.
@@ -419,7 +419,7 @@ The exception is the \fBuse\fP capability.
 .PP
 When a \fBuse\fP=\fIentry\fP\-\fIname\fP field is discovered in a
 terminal entry currently being compiled, \fB@TIC@\fP reads in the binary
-from \fB\*d\fP to complete the entry.
+from \fB@TERMINFO@\fP to complete the entry.
 (Entries created from
 \fIfile\fP will be used first.
 \fB@TIC@\fP duplicates the capabilities in
@@ -443,7 +443,7 @@ will be truncated to the maximum alias length
 and a warning message will be printed.
 .SH FILES
 .TP
-.I \*d
+.I @TERMINFO@
 compiled terminal description database
 .SH NOTES
 There is some evidence that historic \fB@TIC@\fP implementations treated
index c4eba848e06b668465ad366ec33836a27d746dfd..891570e4a6b361894d69ea82349ba1b51e370f25 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: toe.1m,v 1.68 2024/04/20 18:59:26 tom Exp $
-.TH @TOE@ 1M 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.\" $Id: toe.1m,v 1.69 2024/05/11 20:39:53 tom Exp $
+.TH @TOE@ 1M 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -50,7 +50,6 @@
 .ie n  .IP \(bu 4
 .el    .IP \(bu 2
 ..
-.ds d @TERMINFO@
 .SH NAME
 \fB\%@TOE@\fP \-
 list table of entries of \fIterminfo\fR terminal types
@@ -143,7 +142,7 @@ reports the version of \fI\%ncurses\fP associated
 with this program and exits with a successful status.
 .SH FILES
 .TP
-.I \*d
+.I @TERMINFO@
 compiled terminal description database
 .SH PORTABILITY
 \fB\%@TOE@\fP is not provided by other implementations.
index eba073390df5cb1db27379170de0e232b0279c0c..bd25b0b5b96487ce2f90b8fce014244a0425356a 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tput.1,v 1.113 2024/04/20 19:58:50 tom Exp $
-.TH @TPUT@ 1 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.\" $Id: tput.1,v 1.114 2024/05/11 20:39:53 tom Exp $
+.TH @TPUT@ 1 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -45,7 +45,6 @@
 .ie n  .IP \(bu 4
 .el    .IP \(bu 2
 ..
-.ds d @TERMINFO@
 .SH NAME
 \fB\%@TPUT@\fP \-
 initialize a terminal, exercise its capabilities, or query \fI\%term\%info\fP database
@@ -434,7 +433,7 @@ option overrides its value.
 .I @DATADIR@/tabset
 tab stop initialization database
 .TP
-.I \*d
+.I @TERMINFO@
 compiled terminal description database
 .SH PORTABILITY
 Over time
index 185227dcdb039007f5e58ac1c6ff94920056d872..154d91587aaa8c8945446fe06e2068a8db49210e 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tset.1,v 1.85 2024/04/27 17:57:47 tom Exp $
-.TH @TSET@ 1 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.\" $Id: tset.1,v 1.86 2024/05/11 20:39:53 tom Exp $
+.TH @TSET@ 1 2024-05-11 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -47,7 +47,6 @@
 .el    .IP \(bu 2
 ..
 .
-.ds d @TERMINFO@
 .SH NAME
 \fB\%@TSET@\fP,
 \fB\%@RESET@\fP \-
@@ -314,7 +313,7 @@ for the terminal description.
 .I /etc/ttys
 system port name to terminal type mapping database (BSD versions only).
 .TP
-.I \*d
+.I @TERMINFO@
 compiled terminal description database directory
 .SH PORTABILITY
 Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
index 15d05a31b583ea48a40360ef01534d8435ac12f6..2ec3c8941a7a99e2ae95aeb8926417fdd512b71a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2018-2020,2022 Thomas E. Dickey                                *
+ * Copyright 2018-2022,2024 Thomas E. Dickey                                *
  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -49,7 +49,7 @@
 
 #include <tic.h>
 
-MODULE_ID("$Id: lib_newterm.c,v 1.104 2022/07/09 18:58:58 tom Exp $")
+MODULE_ID("$Id: lib_newterm.c,v 1.105 2024/05/11 19:06:59 tom Exp $")
 
 #ifdef USE_TERM_DRIVER
 #define NumLabels      InfoOf(SP_PARM).numlabels
@@ -279,6 +279,7 @@ NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx
 
            /* allow user to set maximum escape delay from the environment */
            if ((value = _nc_getenv_num("ESCDELAY")) >= 0) {
+               value = Min(value, MAX_DELAY_MSECS);
 #if NCURSES_EXT_FUNCS
                NCURSES_SP_NAME(set_escdelay) (NCURSES_SP_ARGx value);
 #else
index bf81cf18a1bec95c0fa289ca2486c4c7261614a2..6d0dbcdf14bc32ff0b35bb4d2750cf1304e680d3 100644 (file)
@@ -35,7 +35,7 @@
  ****************************************************************************/
 
 /*
- * $Id: curses.priv.h,v 1.688 2024/05/04 18:30:25 tom Exp $
+ * $Id: curses.priv.h,v 1.689 2024/05/11 19:05:45 tom Exp $
  *
  *     curses.priv.h
  *
@@ -876,6 +876,12 @@ typedef int (*TYPE_Gpm_GetEvent) (Gpm_Event *);
  */
 #define MAX_DELAY_MSECS 30000
 
+/*
+ * Limit screen dimensions read from environment variables.
+ */
+#define MAX_ENV_LINES  512
+#define MAX_ENV_COLUMNS        512
+
 /*
  * When converting from terminfo to termcap, check for cases where we can trim
  * octal escapes down to 2-character form.  It is useful for terminfo format
index 99097f00fc1d3e9844a1ae03e9e3f4a93c280991..66226b1120dc54a043758825297fa9c8521c7935 100644 (file)
@@ -49,7 +49,7 @@
 #include <locale.h>
 #endif
 
-MODULE_ID("$Id: lib_setup.c,v 1.240 2024/04/20 17:04:05 tom Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.241 2024/05/11 19:07:34 tom Exp $")
 
 /****************************************************************************
  *
@@ -569,11 +569,11 @@ _nc_get_screensize(SCREEN *sp,
             * variable.
             */
            if ((value = _nc_getenv_num("LINES")) > 0) {
-               *linep = value;
+               *linep = Min(value, MAX_ENV_LINES);
                T(("screen size: environment LINES = %d", *linep));
            }
            if ((value = _nc_getenv_num("COLUMNS")) > 0) {
-               *colp = value;
+               *colp = Min(value, MAX_ENV_COLUMNS);
                T(("screen size: environment COLUMNS = %d", *colp));
            }
 
index fd993b8203812e89cf10f528622479137f2c6615..a9f14850daead64cd76394ec743145c037a842f5 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2018-2022,2023 Thomas E. Dickey                                *
+ * Copyright 2018-2023,2024 Thomas E. Dickey                                *
  * Copyright 2008-2016,2017 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -52,7 +52,7 @@
 # endif
 #endif
 
-MODULE_ID("$Id: tinfo_driver.c,v 1.74 2023/09/16 10:44:33 tom Exp $")
+MODULE_ID("$Id: tinfo_driver.c,v 1.75 2024/05/11 19:20:44 tom Exp $")
 
 /*
  * SCO defines TIOCGSIZE and the corresponding struct.  Other systems (SunOS,
@@ -504,11 +504,11 @@ drv_size(TERMINAL_CONTROL_BLOCK * TCB, int *linep, int *colp)
             * variable.
             */
            if ((value = _nc_getenv_num("LINES")) > 0) {
-               *linep = value;
+               *linep = Min(value, MAX_ENV_LINES);
                T(("screen size: environment LINES = %d", *linep));
            }
            if ((value = _nc_getenv_num("COLUMNS")) > 0) {
-               *colp = value;
+               *colp = Min(value, MAX_ENV_COLUMNS);
                T(("screen size: environment COLUMNS = %d", *colp));
            }
        }
index 8a2e6afdec19d88eecc7d15d5900f74755068082..2220960911f6a6559ecbf977e0aaf86d6154ada5 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.5+20240504) unstable; urgency=low
+ncurses6 (6.5+20240511) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 04 May 2024 06:21:09 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 11 May 2024 06:20:08 -0400
 
 ncurses6 (5.9+20131005) unstable; urgency=low
 
index 8a2e6afdec19d88eecc7d15d5900f74755068082..2220960911f6a6559ecbf977e0aaf86d6154ada5 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.5+20240504) unstable; urgency=low
+ncurses6 (6.5+20240511) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 04 May 2024 06:21:09 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 11 May 2024 06:20:08 -0400
 
 ncurses6 (5.9+20131005) unstable; urgency=low
 
index f1521e690d0e912a775e2a6a974ce7bca1820620..ea7256d79c97f54a11434e0e3d5faf006d216d0c 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.5+20240504) unstable; urgency=low
+ncurses6 (6.5+20240511) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 04 May 2024 06:21:09 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 11 May 2024 06:20:08 -0400
 
 ncurses6 (5.9+20120608) unstable; urgency=low
 
index efffabd76a7cde62bcb1696b8c0fa36541f23ad2..65eb84e39b9b36278d48ce0098b6837cc54cba2a 100644 (file)
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.646 2024/05/04 10:21:09 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.647 2024/05/11 10:20:08 tom Exp $\r
 \r
 ; TODO add examples\r
 ; TODO bump ABI to 6\r
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"\r
 !define VERSION_MINOR "5"\r
 !define VERSION_YYYY  "2024"\r
-!define VERSION_MMDD  "0504"\r
+!define VERSION_MMDD  "0511"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
index 322299dabd0b2ff25d3cf3e777460f299e9ff2ac..0b94a91500c14d00e5d787693e1242ebed3dbc6a 100644 (file)
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.5
-Release: 20240504
+Release: 20240511
 License: X11
 Group: Development/Libraries
 URL: https://invisible-island.net/ncurses/
index 8754f296d4071435cc754fb5da7273d0ee782c3e..f524ff7e145041265449398032f7323757951645 100644 (file)
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.5
-Release: 20240504
+Release: 20240511
 License: X11
 Group: Development/Libraries
 URL: https://invisible-island.net/ncurses/
index f6f76b52c788e08d046199be6168cc99c4b5ad8f..95f7ebe0e0f8241b268aff3288f0a87245c11fa9 100644 (file)
@@ -1,7 +1,7 @@
 Summary: Curses library with POSIX thread support.
 Name: ncursest6
 Version: 6.5
-Release: 20240504
+Release: 20240511
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz