diff options
Diffstat (limited to 'packages/ncurses/6.5/ncurses-6.5-20240511.patch')
-rw-r--r-- | packages/ncurses/6.5/ncurses-6.5-20240511.patch | 8153 |
1 files changed, 8153 insertions, 0 deletions
diff --git a/packages/ncurses/6.5/ncurses-6.5-20240511.patch b/packages/ncurses/6.5/ncurses-6.5-20240511.patch new file mode 100644 index 00000000..88a9dc7a --- /dev/null +++ b/packages/ncurses/6.5/ncurses-6.5-20240511.patch @@ -0,0 +1,8153 @@ +# ncurses 6.5 - patch 20240511 - Thomas E. Dickey +# +# ------------------------------------------------------------------------------ +# +# Ncurses 6.5 is at +# https://invisible-island.net/archives/ncurses/ +# https://invisible-mirror.net/archives/ncurses/ +# https://ftp.gnu.org/gnu/ncurses/ +# +# Patches for ncurses 6.5 can be found at +# https://invisible-island.net/archives/ncurses/6.5 +# https://invisible-mirror.net/archives/ncurses/6.5 +# +# ------------------------------------------------------------------------------ +# https://invisible-island.net/archives/ncurses/6.5/ncurses-6.5-20240511.patch.gz +# patch by Thomas E. Dickey <dickey@invisible-island.net> +# created Sun May 12 00:16:58 UTC 2024 +# ------------------------------------------------------------------------------ +# NEWS | 9 +# VERSION | 2 +# dist.mk | 4 +# doc/html/man/curs_add_wch.3x.html | 270 +++++++------ +# doc/html/man/curs_add_wchstr.3x.html | 63 +-- +# doc/html/man/curs_addch.3x.html | 236 ++++++----- +# doc/html/man/curs_addchstr.3x.html | 51 +- +# doc/html/man/curs_attr.3x.html | 13 +# doc/html/man/curs_delch.3x.html | 30 - +# doc/html/man/curs_get_wch.3x.html | 71 +-- +# doc/html/man/curs_getch.3x.html | 128 +++--- +# doc/html/man/curs_getstr.3x.html | 10 +# doc/html/man/curs_getyx.3x.html | 68 +-- +# doc/html/man/curs_inch.3x.html | 90 +--- +# doc/html/man/curs_mouse.3x.html | 20 +# doc/html/man/curs_outopts.3x.html | 32 - +# doc/html/man/curs_sp_funcs.3x.html | 8 +# doc/html/man/curs_termattrs.3x.html | 12 +# doc/html/man/curs_util.3x.html | 165 ++++---- +# doc/html/man/infocmp.1m.html | 8 +# doc/html/man/infotocap.1m.html | 8 +# doc/html/man/ncurses.3x.html | 673 ++++++++++++++++----------------- +# doc/html/man/ncursesw6-config.1.html | 8 +# doc/html/man/term.5.html | 233 +++++------ +# doc/html/man/term.7.html | 8 +# doc/html/man/terminfo.5.html | 10 +# doc/html/man/tic.1m.html | 8 +# doc/html/man/toe.1m.html | 8 +# doc/html/man/tput.1.html | 8 +# doc/html/man/tset.1.html | 8 +# man/MKncu_config.in | 4 +# man/curs_add_wch.3x | 312 +++++++++------ +# man/curs_add_wchstr.3x | 95 ++-- +# man/curs_addch.3x | 148 +++---- +# man/curs_addchstr.3x | 89 ++-- +# man/curs_attr.3x | 14 +# man/curs_delch.3x | 17 +# man/curs_get_wch.3x | 51 +- +# man/curs_getch.3x | 120 +++-- +# man/curs_getstr.3x | 6 +# man/curs_getyx.3x | 139 ++++-- +# man/curs_inch.3x | 123 +++--- +# man/curs_mouse.3x | 13 +# man/curs_outopts.3x | 28 - +# man/curs_sp_funcs.3x | 4 +# man/curs_termattrs.3x | 6 +# man/curs_util.3x | 9 +# man/infocmp.1m | 7 +# man/infotocap.1m | 7 +# man/man_db.renames.in | 6 +# man/manhtml.aliases | 7 +# man/manhtml.externs | 3 +# man/ncurses.3x | 188 +++++---- +# man/term.5 | 427 +++++++++++++------- +# man/term.7 | 11 +# man/terminfo.head | 7 +# man/terminfo.tail | 8 +# man/tic.1m | 16 +# man/toe.1m | 7 +# man/tput.1 | 7 +# man/tset.1 | 7 +# ncurses/base/lib_newterm.c | 5 +# ncurses/curses.priv.h | 8 +# ncurses/tinfo/lib_setup.c | 6 +# ncurses/tinfo/tinfo_driver.c | 8 +# package/debian-mingw/changelog | 4 +# package/debian-mingw64/changelog | 4 +# package/debian/changelog | 4 +# package/mingw-ncurses.nsi | 4 +# package/mingw-ncurses.spec | 2 +# package/ncurses.spec | 2 +# package/ncursest.spec | 2 +# 72 files changed, 2329 insertions(+), 1868 deletions(-) +# ------------------------------------------------------------------------------ +Index: NEWS +Prereq: 1.4117 +--- ncurses-6.5-20240504+/NEWS 2024-05-04 18:43:01.000000000 +0000 ++++ ncurses-6.5-20240511/NEWS 2024-05-11 21:38:14.000000000 +0000 +@@ -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 @@ + 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. +Index: VERSION +--- ncurses-6.5-20240504+/VERSION 2024-05-04 10:21:09.000000000 +0000 ++++ ncurses-6.5-20240511/VERSION 2024-05-11 10:20:08.000000000 +0000 +@@ -1 +1 @@ +-5:0:10 6.5 20240504 ++5:0:10 6.5 20240511 +Index: dist.mk +Prereq: 1.1611 +--- ncurses-6.5-20240504+/dist.mk 2024-05-04 10:21:09.000000000 +0000 ++++ ncurses-6.5-20240511/dist.mk 2024-05-11 10:20:08.000000000 +0000 +@@ -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 @@ + # 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: doc/html/man/curs_add_wch.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_add_wch.3x.html 2024-04-27 18:38:45.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_add_wch.3x.html 2024-05-11 22:32:32.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> +@@ -66,55 +66,85 @@ + + </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. ++</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. ++ ++ 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. ++ ++ <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. ++ ++ <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>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. ++ ++ ++</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. + +- The cursor is not advanced after adding a non-spacing character. +- Subsequent calls to add non-spacing characters will update the same +- position. +- +- <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. +- +- +-</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. +- +- +-</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>Unicode</STRONG> <STRONG>ASCII</STRONG> <STRONG>acsc</STRONG> +- +- +- <STRONG>ACS</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Default</STRONG> <STRONG>Char</STRONG> <STRONG>Glyph</STRONG> <STRONG>Name</STRONG> ++ <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 +@@ -179,7 +209,6 @@ + <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 +@@ -198,124 +227,122 @@ + + + </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&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&T 4410 ++ terminal in the early 1980s. There is no accessible documentation + depicting the lantern symbol on the AT&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: <section> U+00A7 (section +- mark), <Theta> U+0398 (theta), <Phi> U+03A6 (phi), <delta> U+03B4 ++ mark), <Theta> U+0398 (theta), <Phi> U+03A6 (phi), <delta> 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> +@@ -328,7 +355,7 @@ + + + +-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 @@ + <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: doc/html/man/curs_add_wchstr.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_add_wchstr.3x.html 2024-04-27 18:38:45.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_add_wchstr.3x.html 2024-05-11 22:32:32.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -67,53 +67,50 @@ + + + </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. ++ ++ 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 ++ ++ <STRONG>o</STRONG> do not treat the backspace, carriage return, or line feed ++ characters specially; + +- 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. ++ <STRONG>o</STRONG> do not represent unprintable characters with <STRONG><A HREF="curs_util.3x.html">wunctrl(3x)</A></STRONG>; + +- 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 update the cursor position to follow the last character ++ written; + +- <STRONG>o</STRONG> they do not perform checking (such as for the newline, backspace, +- or carriage return characters), +- +- <STRONG>o</STRONG> they do not advance the current cursor position, +- +- <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> +@@ -124,7 +121,7 @@ + + + +-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: doc/html/man/curs_addch.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_addch.3x.html 2024-04-27 18:38:45.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_addch.3x.html 2024-05-11 21:39:56.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> + +@@ -66,71 +66,70 @@ + + </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> 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> 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><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> +@@ -172,16 +171,25 @@ + </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. +- +- <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. ++ In <EM>ncurses</EM>, <STRONG>waddch</STRONG> returns <STRONG>ERR</STRONG> if ++ ++ <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. +@@ -191,14 +199,21 @@ + <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. + + +@@ -207,89 +222,82 @@ + + 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&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&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>). +@@ -300,7 +308,7 @@ + + + +-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 @@ + <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: doc/html/man/curs_addchstr.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_addchstr.3x.html 2024-04-27 18:38:45.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_addchstr.3x.html 2024-05-11 22:32:32.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -66,47 +66,46 @@ + + + </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> +@@ -117,7 +116,7 @@ + + + +-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: doc/html/man/curs_attr.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_attr.3x.html 2024-04-27 18:38:46.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_attr.3x.html 2024-05-11 21:39:56.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> + +@@ -220,6 +220,10 @@ + <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.): + +@@ -332,7 +336,6 @@ + <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 +@@ -497,7 +500,7 @@ + + + +-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: doc/html/man/curs_delch.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_delch.3x.html 2024-04-27 18:38:46.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_delch.3x.html 2024-05-11 21:39:56.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -61,14 +61,13 @@ + + + </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> +@@ -76,19 +75,20 @@ + + 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: doc/html/man/curs_get_wch.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_get_wch.3x.html 2024-04-27 18:38:46.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_get_wch.3x.html 2024-05-11 21:39:56.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -65,47 +65,49 @@ + </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> +@@ -136,11 +138,10 @@ + 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> +@@ -151,10 +152,10 @@ + 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. + + +@@ -162,12 +163,12 @@ + <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: doc/html/man/curs_getch.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_getch.3x.html 2024-04-27 18:38:46.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_getch.3x.html 2024-05-11 21:39:56.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> + +@@ -69,89 +69,91 @@ + </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> +@@ -178,9 +180,9 @@ + <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 <= <EM>n</EM> <= 63 +- + <STRONG>KEY_DL</STRONG> Delete line + <STRONG>KEY_IL</STRONG> Insert line + <STRONG>KEY_DC</STRONG> Delete character +@@ -244,9 +246,9 @@ + <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 +@@ -332,7 +334,7 @@ + <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 +@@ -372,8 +374,8 @@ + 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> +@@ -392,9 +394,9 @@ + 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>. +@@ -424,7 +426,7 @@ + + + +-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: doc/html/man/curs_getstr.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_getstr.3x.html 2024-04-27 18:38:46.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_getstr.3x.html 2024-05-11 21:39:56.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -156,7 +156,7 @@ + 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: +@@ -242,7 +242,7 @@ + + + +-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: doc/html/man/curs_getyx.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_getyx.3x.html 2024-04-27 18:38:46.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_getyx.3x.html 2024-05-11 21:39:56.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -55,53 +55,53 @@ + <STRONG>#include</STRONG> <STRONG><curses.h></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>. + +- Like <STRONG>getyx</STRONG>, the <STRONG>getbegyx</STRONG> and <STRONG>getmaxyx</STRONG> macros store the current +- beginning coordinates and size of the specified window. ++</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE> ++ 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>). ++ ++ 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 "&" is not necessary before the +- variables <EM>y</EM> and <EM>x</EM>. ++ All of these interfaces are implemented as macros. An "&" 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>. +- +- 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). ++ <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 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> +@@ -109,7 +109,7 @@ + + + +-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: doc/html/man/curs_inch.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_inch.3x.html 2024-04-27 18:38:46.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_inch.3x.html 2024-05-11 21:39:56.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> + +@@ -56,67 +56,56 @@ + + <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><curses.h></STRONG> can be used with the <STRONG>&</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. +- +- 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. +- +- In BSD curses, <STRONG>winch</STRONG> returned only the character (as an integer) +- with the <EM>standout</EM> attribute removed. ++ X/Open Curses, Issue 4 describes these functions. It specifies no ++ error conditions for them. + +- <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. ++</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. ++ ++ 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). ++ ++ 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> +@@ -127,20 +116,17 @@ + + + +-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: doc/html/man/curs_mouse.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_mouse.3x.html 2024-04-27 18:38:46.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_mouse.3x.html 2024-05-11 21:39:57.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> + +@@ -373,12 +373,12 @@ + 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 +@@ -394,7 +394,7 @@ + + + +-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: doc/html/man/curs_outopts.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_outopts.3x.html 2024-04-27 18:38:46.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_outopts.3x.html 2024-05-11 21:39:57.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -47,16 +47,16 @@ + + + </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><curses.h></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> +@@ -81,6 +81,14 @@ + 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. +@@ -93,14 +101,6 @@ + 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>, +@@ -196,7 +196,7 @@ + + + +-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 @@ + <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: doc/html/man/curs_sp_funcs.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_sp_funcs.3x.html 2024-04-27 18:38:47.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_sp_funcs.3x.html 2024-05-11 21:39:57.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -294,7 +294,7 @@ + + + +-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: doc/html/man/curs_termattrs.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_termattrs.3x.html 2024-04-27 18:38:47.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_termattrs.3x.html 2024-05-11 21:39:57.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> +@@ -149,7 +149,7 @@ + + + +-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: doc/html/man/curs_util.3x.html +--- ncurses-6.5-20240504+/doc/html/man/curs_util.3x.html 2024-04-27 18:38:47.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/curs_util.3x.html 2024-05-11 21:39:57.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> +@@ -192,159 +192,158 @@ + + <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 +@@ -355,44 +354,44 @@ + 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><unctrl.h></STRONG>, which <EM>ncurses</EM> +- does. However, <EM>ncurses</EM>' <STRONG><curses.h></STRONG> includes <STRONG><unctrl.h></STRONG>, matching the ++ does. However, <EM>ncurses</EM>' <STRONG><curses.h></STRONG> includes <STRONG><unctrl.h></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: doc/html/man/infocmp.1m.html +--- ncurses-6.5-20240504+/doc/html/man/infocmp.1m.html 2024-04-27 18:38:48.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/infocmp.1m.html 2024-05-11 21:39:58.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> + +@@ -531,7 +531,7 @@ + + + +-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: doc/html/man/infotocap.1m.html +--- ncurses-6.5-20240504+/doc/html/man/infotocap.1m.html 2024-04-27 18:38:48.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/infotocap.1m.html 2024-05-11 21:39:58.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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: doc/html/man/ncurses.3x.html +--- ncurses-6.5-20240504+/doc/html/man/ncurses.3x.html 2024-04-27 18:38:49.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/ncurses.3x.html 2024-05-11 21:39:59.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> + +@@ -61,20 +61,20 @@ + 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. +@@ -160,63 +160,63 @@ + 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>. +- +- 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>. ++ 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>. ++ ++ 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 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 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 + <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. + +@@ -234,7 +234,7 @@ + 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> a <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> +@@ -244,17 +244,21 @@ + + + </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 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 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 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>. + +@@ -272,53 +276,56 @@ + 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 +@@ -375,12 +382,12 @@ + 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> +@@ -442,11 +449,11 @@ + 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> +@@ -509,10 +516,10 @@ + 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> +@@ -576,9 +583,9 @@ + 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> +@@ -643,8 +650,8 @@ + 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> +@@ -776,8 +783,8 @@ + 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> +@@ -787,235 +794,235 @@ + 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. + +@@ -1028,62 +1035,62 @@ + 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 +@@ -1093,10 +1100,10 @@ + 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 +@@ -1110,20 +1117,20 @@ + + <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. + +@@ -1133,25 +1140,30 @@ + + + </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><curses.h></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><ncurses/curses.h></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 +@@ -1265,7 +1277,7 @@ + <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 +@@ -1302,8 +1314,8 @@ + 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> +@@ -1314,155 +1326,158 @@ + <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>. +- +- <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>. +- +- <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. ++ 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>. ++ ++ The library facilitates auditing and troubleshooting of its behavior; ++ see <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>. ++ ++ 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. + + +@@ -1476,7 +1491,7 @@ + + + +-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: doc/html/man/ncursesw6-config.1.html +--- ncurses-6.5-20240504+/doc/html/man/ncursesw6-config.1.html 2024-04-27 18:38:49.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/ncursesw6-config.1.html 2024-05-11 21:39:59.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -112,7 +112,7 @@ + + + +-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: doc/html/man/term.5.html +--- ncurses-6.5-20240504+/doc/html/man/term.5.html 2024-04-27 18:38:49.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/term.5.html 2024-05-11 22:32:35.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> + +@@ -51,103 +51,103 @@ + 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 <term.h>. ++ 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. +@@ -156,7 +156,7 @@ + <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. + +@@ -182,23 +182,23 @@ + 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 $<nn> and parameter information %x are stored intact in ++ information <STRONG>$<</STRONG><EM>nn</EM><STRONG>></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): + +@@ -220,24 +220,22 @@ + + 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. +- +- 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. ++ 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 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) + +@@ -245,10 +243,10 @@ + 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> +@@ -271,85 +269,84 @@ + + + </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. ++ 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 terminfo +- format used by Solaris curses, except in a few less-used details where ++ 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, +@@ -358,7 +355,8 @@ + 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. +@@ -386,12 +384,12 @@ + + </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> +@@ -399,12 +397,11 @@ + + + +-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: doc/html/man/term.7.html +--- ncurses-6.5-20240504+/doc/html/man/term.7.html 2024-04-27 18:38:49.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/term.7.html 2024-05-11 21:39:59.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -216,7 +216,7 @@ + + + +-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: doc/html/man/terminfo.5.html +--- ncurses-6.5-20240504+/doc/html/man/terminfo.5.html 2024-04-27 18:38:49.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/terminfo.5.html 2024-05-11 21:39:59.000000000 +0000 +@@ -32,19 +32,19 @@ + * 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> +@@ -2487,7 +2487,7 @@ + + + +-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: doc/html/man/tic.1m.html +--- ncurses-6.5-20240504+/doc/html/man/tic.1m.html 2024-04-27 18:38:49.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/tic.1m.html 2024-05-11 21:39:59.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -482,7 +482,7 @@ + + + +-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: doc/html/man/toe.1m.html +--- ncurses-6.5-20240504+/doc/html/man/toe.1m.html 2024-04-27 18:38:49.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/toe.1m.html 2024-05-11 21:39:59.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> + +@@ -185,7 +185,7 @@ + + + +-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: doc/html/man/tput.1.html +--- ncurses-6.5-20240504+/doc/html/man/tput.1.html 2024-04-27 18:38:49.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/tput.1.html 2024-05-11 21:39:59.000000000 +0000 +@@ -28,19 +28,19 @@ + * 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> + +@@ -555,7 +555,7 @@ + + + +-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: doc/html/man/tset.1.html +--- ncurses-6.5-20240504+/doc/html/man/tset.1.html 2024-04-27 18:38:49.000000000 +0000 ++++ ncurses-6.5-20240511/doc/html/man/tset.1.html 2024-05-11 21:39:59.000000000 +0000 +@@ -27,19 +27,19 @@ + * 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> + +@@ -393,7 +393,7 @@ + + + +-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: man/MKncu_config.in +Prereq: 1.24 +--- ncurses-6.5-20240504+/man/MKncu_config.in 2024-04-20 21:13:38.000000000 +0000 ++++ ncurses-6.5-20240511/man/MKncu_config.in 2024-05-11 20:39:53.000000000 +0000 +@@ -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: man/curs_add_wch.3x +Prereq: 1.62 +--- ncurses-6.5-20240504+/man/curs_add_wch.3x 2024-04-20 21:20:07.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_add_wch.3x 2024-05-11 21:31:45.000000000 +0000 +@@ -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 @@ + \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: +-.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. +-.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. ++.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 ++.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 ++.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 @@ + .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 +-.bP +-if it is not possible to add a complete character in the window. +-.PP +-The latter may be due to different causes: +-.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. ++These functions return ++.B OK ++on success and ++.B ERR ++on failure. ++In ++.IR \%ncurses , ++.B \%wadd_wch ++returns ++.B ERR ++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 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 @@ + .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 @@ + \[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. +-.PP +-This implementation assumes that \fIwch\fP 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 ++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 ++.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 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: man/curs_add_wchstr.3x +Prereq: 1.39 +--- ncurses-6.5-20240504+/man/curs_add_wchstr.3x 2024-04-20 21:20:07.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_add_wchstr.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + \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. +-.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: ++.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 ++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 ++do not treat the backspace, ++carriage return, ++or line feed characters specially; + .bP +-they do not perform checking +-(such as for the newline, backspace, or carriage return characters), ++do not represent unprintable characters with \fB\%wunctrl\fP(3X); + .bP +-they do not advance the current cursor position, ++do not update the cursor position to follow the last character written; + .bP +-they do not expand other control characters to ^-escapes, and +-.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 +-.bP +-if the \fIwin\fP parameter is null or +-.bP +-if the \fIwchstr\fP parameter is null. ++.I \%ncurses ++returns ++.B ERR ++if ++.bP ++.I win ++is ++.B NULL ++or ++.bP ++.I wchstr ++is ++.BR NULL "." + .PP + Functions prefixed with \*(``mv\*('' first perform cursor movement and + fail if the position +@@ -115,9 +133,12 @@ + .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: man/curs_addch.3x +Prereq: 1.85 +--- ncurses-6.5-20240504+/man/curs_addch.3x 2024-04-20 19:03:47.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_addch.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + \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 @@ + 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 @@ + 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 @@ + 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 @@ + .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 @@ + 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 @@ + .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 @@ + 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 @@ + 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 @@ + 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: man/curs_addchstr.3x +Prereq: 1.45 +--- ncurses-6.5-20240504+/man/curs_addchstr.3x 2024-04-20 21:20:07.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_addchstr.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + \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. +-.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: +-.bP +-they do not perform checking +-(such as for the newline, backspace, or carriage return characters), ++.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 ++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 ++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 +-.bP +-if the \fIwin\fP parameter is null or +-.bP +-if the \fIwchstr\fP parameter is null. ++.I \%ncurses ++returns ++.B ERR ++if ++.bP ++.I win ++is ++.B NULL ++or ++.bP ++.I chstr ++is ++.BR NULL "." + .PP + Functions prefixed with \*(``mv\*('' first perform cursor movement and + fail if the position +@@ -109,9 +133,12 @@ + .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: man/curs_attr.3x +Prereq: 1.105 +--- ncurses-6.5-20240504+/man/curs_attr.3x 2024-04-27 17:54:42.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_attr.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + .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: man/curs_delch.3x +Prereq: 1.34 +--- ncurses-6.5-20240504+/man/curs_delch.3x 2024-04-20 19:24:14.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_delch.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + .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 @@ + .SH PORTABILITY + X/Open Curses, + Issue 4 describes these functions. ++It specifies no error conditions for them. + .PP + SVr4 + .I curses +Index: man/curs_get_wch.3x +Prereq: 1.40 +--- ncurses-6.5-20240504+/man/curs_get_wch.3x 2024-04-20 19:23:03.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_get_wch.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + .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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + the + .I \%WINDOW + pointer is +-.BR NULL , ++.BR NULL "," + or + .bP + its timeout expires without any data arriving, +@@ -188,12 +189,12 @@ + 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 @@ + 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: man/curs_getch.3x +Prereq: 1.87 +--- ncurses-6.5-20240504+/man/curs_getch.3x 2024-04-20 19:18:18.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_getch.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + .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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + .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 @@ + 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 @@ + 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 @@ + 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 @@ + (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 @@ + .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 @@ + 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 @@ + \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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + .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 @@ + .I curses + implementations, + including +-.IR \%ncurses , ++.IR \%ncurses "," + honor the + .I \%term\%info + key definitions; +@@ -502,7 +509,7 @@ + .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 @@ + 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 @@ + .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 @@ + 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 @@ + .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 @@ + with + .B \%errno + set to +-.BR \%EINTR . ++.BR \%EINTR "." + .PP + .B \%KEY_MOUSE + is mentioned in X/Open Curses, +@@ -661,7 +671,7 @@ + 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 @@ + .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: man/curs_getstr.3x +Prereq: 1.58 +--- ncurses-6.5-20240504+/man/curs_getstr.3x 2024-04-20 19:18:18.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_getstr.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + .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: man/curs_getyx.3x +Prereq: 1.44 +--- ncurses-6.5-20240504+/man/curs_getyx.3x 2024-04-20 21:20:07.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_getyx.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + \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. +-.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. ++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 ++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. +-.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; ++These macros are described in X/Open Curses, ++Issue 4. ++.PP ++.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: man/curs_inch.3x +Prereq: 1.51 +--- ncurses-6.5-20240504+/man/curs_inch.3x 2024-04-20 21:20:07.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_inch.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + .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 @@ + .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. +-.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. +-.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, ++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 ++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 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: man/curs_mouse.3x +Prereq: 1.98 +--- ncurses-6.5-20240504+/man/curs_mouse.3x 2024-04-20 19:02:07.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_mouse.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + .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: man/curs_outopts.3x +Prereq: 1.64 +--- ncurses-6.5-20240504+/man/curs_outopts.3x 2024-04-20 21:24:19.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_outopts.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -27,29 +27,29 @@ + .\" 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 @@ + 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 @@ + 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 @@ + 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: man/curs_sp_funcs.3x +Prereq: 1.50 +--- ncurses-6.5-20240504+/man/curs_sp_funcs.3x 2024-04-20 18:56:31.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_sp_funcs.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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: man/curs_termattrs.3x +Prereq: 1.41 +--- ncurses-6.5-20240504+/man/curs_termattrs.3x 2024-04-20 21:20:07.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_termattrs.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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: man/curs_util.3x +Prereq: 1.101 +--- ncurses-6.5-20240504+/man/curs_util.3x 2024-04-20 21:20:07.000000000 +0000 ++++ ncurses-6.5-20240511/man/curs_util.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + .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 @@ + .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 @@ + 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: man/infocmp.1m +Prereq: 1.109 +--- ncurses-6.5-20240504+/man/infocmp.1m 2024-03-16 15:35:01.000000000 +0000 ++++ ncurses-6.5-20240511/man/infocmp.1m 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + 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: man/infotocap.1m +Prereq: 1.41 +--- ncurses-6.5-20240504+/man/infotocap.1m 2024-03-16 15:35:01.000000000 +0000 ++++ ncurses-6.5-20240511/man/infotocap.1m 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + 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: man/man_db.renames.in +Prereq: 1.73 +--- ncurses-6.5-20240504+/man/man_db.renames.in 2024-04-13 23:39:11.000000000 +0000 ++++ ncurses-6.5-20240511/man/man_db.renames.in 2024-05-11 20:30:32.000000000 +0000 +@@ -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 @@ + 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 @@ + 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 @@ + wrefresh.3x wrefresh.3ncurses + wsetscrreg.3x wsetscrreg.3ncurses + wtimeout.3x wtimeout.3ncurses ++wunctrl.3x wunctrl.3ncurses + # + # Other: + getty.8 getty.8 +Index: man/manhtml.aliases +Prereq: 1.35 +--- ncurses-6.5-20240504+/man/manhtml.aliases 2024-04-14 00:36:21.000000000 +0000 ++++ ncurses-6.5-20240511/man/manhtml.aliases 2024-05-11 21:52:17.000000000 +0000 +@@ -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 @@ + 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 @@ + 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 @@ + 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 @@ + wnoutrefresh(3X) curs_refresh(3X) + wrefresh(3X) curs_refresh(3X) + wsetscrreg(3X) curs_outopts(3X) ++wunctrl(3X) curs_util(3X) +Index: man/manhtml.externs +Prereq: 1.25 +--- ncurses-6.5-20240504+/man/manhtml.externs 2024-04-20 19:26:05.000000000 +0000 ++++ ncurses-6.5-20240511/man/manhtml.externs 2024-05-11 20:35:15.000000000 +0000 +@@ -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 @@ + profile(5) + putc(3) + putchar(3) ++putwchar(3) + putwc(3) + read(2) + readline(3) +Index: man/ncurses.3x +Prereq: 1.214 +--- ncurses-6.5-20240504+/man/ncurses.3x 2024-04-27 17:55:43.000000000 +0000 ++++ ncurses-6.5-20240511/man/ncurses.3x 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + .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 @@ + (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 @@ + .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 @@ + .\" 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 @@ + 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 @@ + 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 @@ + \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 @@ + 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 @@ + .TS + center; + Li L. +-bf \fIbool\fP (\fBTRUE\fP or \fBFALSE\fP) ++bf a \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 @@ + 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 @@ + .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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + 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 @@ + .bP + location(s) configured and compiled into + .I \%ncurses +-.RS 3 ++.RS + .if !'\*(td'' \{\ + .bP + .I \%@TERMINFO_DIRS@ +@@ -1661,29 +1680,49 @@ + .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 @@ + .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 @@ + 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 @@ + \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 @@ + .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 @@ + 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 @@ + includes + .I \%term.h + and +-.IR \% termios.h . ++.IR \%termios.h . + Again, + .I \%ncurses + and Solaris +Index: man/term.5 +Prereq: 1.77 +--- ncurses-6.5-20240504+/man/term.5 2024-04-20 21:24:19.000000000 +0000 ++++ ncurses-6.5-20240511/man/term.5 2024-05-11 20:39:53.000000000 +0000 +@@ -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 +@@ -55,69 +55,101 @@ + .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 @@ + 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; +-.TP 5 +-(6) the size, in bytes, of the \fIstring table\fP. ++(5) the number of offsets ++(short integers) ++in the \fIstrings\fP section; ++.TP 5 ++(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 @@ + 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 @@ + 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 @@ + 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. +-.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. ++.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 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 @@ + .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 @@ + 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 @@ + 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 @@ + .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: man/term.7 +Prereq: 1.48 +--- ncurses-6.5-20240504+/man/term.7 2024-03-16 15:35:01.000000000 +0000 ++++ ncurses-6.5-20240511/man/term.7 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + 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 @@ + @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 @@ + 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: man/terminfo.head +Prereq: 1.65 +--- ncurses-6.5-20240504+/man/terminfo.head 2024-04-20 21:14:00.000000000 +0000 ++++ ncurses-6.5-20240511/man/terminfo.head 2024-05-11 20:39:53.000000000 +0000 +@@ -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 +@@ -51,12 +51,11 @@ + .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: man/terminfo.tail +Prereq: 1.148 +--- ncurses-6.5-20240504+/man/terminfo.tail 2024-04-20 21:24:19.000000000 +0000 ++++ ncurses-6.5-20240511/man/terminfo.tail 2024-05-11 20:28:54.000000000 +0000 +@@ -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 @@ + .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 @@ + expansion) lengths. + .SH FILES + .TP +-.I \*d ++.I @TERMINFO@ + compiled terminal description database directory + .SH EXTENSIONS + Searching for terminal descriptions in +Index: man/tic.1m +Prereq: 1.110 +--- ncurses-6.5-20240504+/man/tic.1m 2024-04-27 17:57:06.000000000 +0000 ++++ ncurses-6.5-20240511/man/tic.1m 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + 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 @@ + 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 @@ + .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 @@ + .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 @@ + 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: man/toe.1m +Prereq: 1.68 +--- ncurses-6.5-20240504+/man/toe.1m 2024-04-20 18:59:26.000000000 +0000 ++++ ncurses-6.5-20240511/man/toe.1m 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + 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: man/tput.1 +Prereq: 1.113 +--- ncurses-6.5-20240504+/man/tput.1 2024-04-20 19:58:50.000000000 +0000 ++++ ncurses-6.5-20240511/man/tput.1 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + .I @DATADIR@/tabset + tab stop initialization database + .TP +-.I \*d ++.I @TERMINFO@ + compiled terminal description database + .SH PORTABILITY + Over time +Index: man/tset.1 +Prereq: 1.85 +--- ncurses-6.5-20240504+/man/tset.1 2024-04-27 17:57:47.000000000 +0000 ++++ ncurses-6.5-20240511/man/tset.1 2024-05-11 20:39:53.000000000 +0000 +@@ -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 @@ + .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: ncurses/base/lib_newterm.c +Prereq: 1.104 +--- ncurses-6.5-20240504+/ncurses/base/lib_newterm.c 2022-07-09 18:58:58.000000000 +0000 ++++ ncurses-6.5-20240511/ncurses/base/lib_newterm.c 2024-05-11 19:06:59.000000000 +0000 +@@ -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 @@ + + /* 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: ncurses/curses.priv.h +Prereq: 1.688 +--- ncurses-6.5-20240504+/ncurses/curses.priv.h 2024-05-04 18:30:25.000000000 +0000 ++++ ncurses-6.5-20240511/ncurses/curses.priv.h 2024-05-11 19:05:45.000000000 +0000 +@@ -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 + * +@@ -877,6 +877,12 @@ + #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 + * also, but not as important. +Index: ncurses/tinfo/lib_setup.c +Prereq: 1.240 +--- ncurses-6.5-20240504+/ncurses/tinfo/lib_setup.c 2024-04-20 17:04:05.000000000 +0000 ++++ ncurses-6.5-20240511/ncurses/tinfo/lib_setup.c 2024-05-11 19:07:34.000000000 +0000 +@@ -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 @@ + * 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: ncurses/tinfo/tinfo_driver.c +Prereq: 1.74 +--- ncurses-6.5-20240504+/ncurses/tinfo/tinfo_driver.c 2023-09-16 10:44:33.000000000 +0000 ++++ ncurses-6.5-20240511/ncurses/tinfo/tinfo_driver.c 2024-05-11 19:20:44.000000000 +0000 +@@ -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 @@ + * 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: package/debian-mingw/changelog +--- ncurses-6.5-20240504+/package/debian-mingw/changelog 2024-05-04 10:21:09.000000000 +0000 ++++ ncurses-6.5-20240511/package/debian-mingw/changelog 2024-05-11 10:20:08.000000000 +0000 +@@ -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: package/debian-mingw64/changelog +--- ncurses-6.5-20240504+/package/debian-mingw64/changelog 2024-05-04 10:21:09.000000000 +0000 ++++ ncurses-6.5-20240511/package/debian-mingw64/changelog 2024-05-11 10:20:08.000000000 +0000 +@@ -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: package/debian/changelog +--- ncurses-6.5-20240504+/package/debian/changelog 2024-05-04 10:21:09.000000000 +0000 ++++ ncurses-6.5-20240511/package/debian/changelog 2024-05-11 10:20:08.000000000 +0000 +@@ -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: package/mingw-ncurses.nsi +Prereq: 1.646 +--- ncurses-6.5-20240504+/package/mingw-ncurses.nsi 2024-05-04 10:21:09.000000000 +0000 ++++ ncurses-6.5-20240511/package/mingw-ncurses.nsi 2024-05-11 10:20:08.000000000 +0000 +@@ -1,4 +1,4 @@ +-; $Id: mingw-ncurses.nsi,v 1.646 2024/05/04 10:21:09 tom Exp $
++; $Id: mingw-ncurses.nsi,v 1.647 2024/05/11 10:20:08 tom Exp $
+
+ ; TODO add examples
+ ; TODO bump ABI to 6
+@@ -10,7 +10,7 @@ + !define VERSION_MAJOR "6"
+ !define VERSION_MINOR "5"
+ !define VERSION_YYYY "2024"
+-!define VERSION_MMDD "0504"
++!define VERSION_MMDD "0511"
+ !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
+
+ !define MY_ABI "5"
+Index: package/mingw-ncurses.spec +--- ncurses-6.5-20240504+/package/mingw-ncurses.spec 2024-05-04 10:21:09.000000000 +0000 ++++ ncurses-6.5-20240511/package/mingw-ncurses.spec 2024-05-11 10:20:08.000000000 +0000 +@@ -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: package/ncurses.spec +--- ncurses-6.5-20240504+/package/ncurses.spec 2024-05-04 10:21:09.000000000 +0000 ++++ ncurses-6.5-20240511/package/ncurses.spec 2024-05-11 10:20:08.000000000 +0000 +@@ -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: package/ncursest.spec +--- ncurses-6.5-20240504+/package/ncursest.spec 2024-05-04 10:21:09.000000000 +0000 ++++ ncurses-6.5-20240511/package/ncursest.spec 2024-05-11 10:20:08.000000000 +0000 +@@ -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 |