diff options
Diffstat (limited to 'packages/ncurses/6.5/ncurses-6.5-20250405.patch')
-rw-r--r-- | packages/ncurses/6.5/ncurses-6.5-20250405.patch | 7855 |
1 files changed, 7855 insertions, 0 deletions
diff --git a/packages/ncurses/6.5/ncurses-6.5-20250405.patch b/packages/ncurses/6.5/ncurses-6.5-20250405.patch new file mode 100644 index 00000000..5b42a98e --- /dev/null +++ b/packages/ncurses/6.5/ncurses-6.5-20250405.patch @@ -0,0 +1,7855 @@ +# ncurses 6.5 - patch 20250405 - 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-20250405.patch.gz +# patch by Thomas E. Dickey <dickey@invisible-island.net> +# created Sun Apr 6 00:25:52 UTC 2025 +# ------------------------------------------------------------------------------ +# NEWS | 13 +# VERSION | 2 +# dist.mk | 4 +# doc/html/man/adacursesw6-config.1.html | 10 +# doc/html/man/clear.1.html | 8 +# doc/html/man/curs_add_wch.3x.html | 10 +# doc/html/man/curs_addch.3x.html | 14 +# doc/html/man/curs_attr.3x.html | 8 +# doc/html/man/curs_color.3x.html | 316 +++++++-------- +# doc/html/man/curs_delch.3x.html | 21 - +# doc/html/man/curs_deleteln.3x.html | 10 +# doc/html/man/curs_extend.3x.html | 10 +# doc/html/man/curs_get_wch.3x.html | 59 +- +# doc/html/man/curs_get_wstr.3x.html | 127 +++--- +# doc/html/man/curs_getch.3x.html | 207 +++++----- +# doc/html/man/curs_getstr.3x.html | 30 - +# doc/html/man/curs_inopts.3x.html | 10 +# doc/html/man/curs_mouse.3x.html | 115 ++--- +# doc/html/man/curs_move.3x.html | 19 +# doc/html/man/curs_outopts.3x.html | 92 ++-- +# doc/html/man/curs_printw.3x.html | 39 + +# doc/html/man/curs_scanw.3x.html | 61 +- +# doc/html/man/curs_scroll.3x.html | 27 - +# doc/html/man/curs_terminfo.3x.html | 266 ++++++------ +# doc/html/man/curs_util.3x.html | 38 - +# doc/html/man/curs_variables.3x.html | 48 +- +# doc/html/man/ncurses.3x.html | 639 +++++++++++++++---------------- +# doc/html/man/resizeterm.3x.html | 15 +# doc/html/man/scr_dump.5.html | 8 +# doc/html/man/tabs.1.html | 8 +# doc/html/man/term.5.html | 10 +# doc/html/man/terminfo.5.html | 2 +# doc/html/man/tput.1.html | 8 +# doc/html/man/user_caps.5.html | 6 +# man/MKada_config.in | 8 +# man/clear.1 | 6 +# man/curs_add_wch.3x | 8 +# man/curs_addch.3x | 17 +# man/curs_attr.3x | 8 +# man/curs_color.3x | 52 +- +# man/curs_delch.3x | 25 - +# man/curs_deleteln.3x | 6 +# man/curs_extend.3x | 8 +# man/curs_get_wch.3x | 42 +- +# man/curs_get_wstr.3x | 48 +- +# man/curs_getch.3x | 125 +++--- +# man/curs_getstr.3x | 36 + +# man/curs_inopts.3x | 6 +# man/curs_mouse.3x | 25 - +# man/curs_move.3x | 34 + +# man/curs_outopts.3x | 111 +++-- +# man/curs_printw.3x | 111 +++-- +# man/curs_scanw.3x | 118 +++-- +# man/curs_scroll.3x | 7 +# man/curs_terminfo.3x | 94 ++-- +# man/curs_util.3x | 51 +- +# man/curs_variables.3x | 27 - +# man/ncurses.3x | 139 ++++-- +# man/resizeterm.3x | 7 +# man/scr_dump.5 | 18 +# man/tabs.1 | 6 +# man/term.5 | 8 +# man/terminfo.tail | 8 +# man/tput.1 | 6 +# man/user_caps.5 | 8 +# misc/terminfo.src | 106 +++-- +# 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 +# progs/infocmp.c | 140 +++++- +# 74 files changed, 2121 insertions(+), 1580 deletions(-) +# ------------------------------------------------------------------------------ +Index: NEWS +Prereq: 1.4267 +--- ncurses-6.5-20250329+/NEWS 2025-03-29 22:52:37.000000000 +0000 ++++ ncurses-6.5-20250405/NEWS 2025-04-05 22:31:28.000000000 +0000 +@@ -26,7 +26,7 @@ + -- sale, use or other dealings in this Software without prior written -- + -- authorization. -- + ------------------------------------------------------------------------------- +--- $Id: NEWS,v 1.4267 2025/03/29 22:52:37 tom Exp $ ++-- $Id: NEWS,v 1.4271 2025/04/05 22:31:28 tom Exp $ + ------------------------------------------------------------------------------- + + This is a log of changes that ncurses has gone through since Zeyd started +@@ -46,6 +46,17 @@ + Changes through 1.9.9e did not credit all contributions; + it is not possible to add this information. + ++20250405 ++ + improve formatting/style of manpages (patches by Branden Robinson). ++ + improve infocmp -E/-e fallback feature (report by Ville Rissanen): ++ + prefix names with "ti_" if they begin with a digit, e.g., 9term ++ + escape backslashes and double-quotes in description fields ++ + modify infocmp -E/-e fallback feature to reduce stricter compiler ++ warnings for the extended capability data. ++ + add sclp -TD ++ + add op to vt525 -TD ++ + update contour -TD ++ + 20250329 + + add XM/xm to ms-terminal, to enable mouse with experimental Windows + driver -TD +Index: VERSION +--- ncurses-6.5-20250329+/VERSION 2025-03-29 11:09:16.000000000 +0000 ++++ ncurses-6.5-20250405/VERSION 2025-04-05 09:48:54.000000000 +0000 +@@ -1 +1 @@ +-5:0:10 6.5 20250329 ++5:0:10 6.5 20250405 +Index: dist.mk +Prereq: 1.1662 +--- ncurses-6.5-20250329+/dist.mk 2025-03-29 11:09:16.000000000 +0000 ++++ ncurses-6.5-20250405/dist.mk 2025-04-05 09:48:54.000000000 +0000 +@@ -26,7 +26,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: dist.mk,v 1.1662 2025/03/29 11:09:16 tom Exp $ ++# $Id: dist.mk,v 1.1663 2025/04/05 09:48:54 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 = 20250329 ++NCURSES_PATCH = 20250405 + + # We don't append the patch to the version, since this only applies to releases + VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) +Index: doc/html/man/adacursesw6-config.1.html +--- ncurses-6.5-20250329+/doc/html/man/adacursesw6-config.1.html 2024-04-27 18:38:45.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/adacursesw6-config.1.html 2025-04-05 22:33:03.000000000 +0000 +@@ -1,6 +1,6 @@ + <!-- + **************************************************************************** +- * Copyright 2019-2023,2024 Thomas E. Dickey * ++ * Copyright 2019-2024,2025 Thomas E. Dickey * + * Copyright 2010-2014,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: MKada_config.in,v 1.35 2024/04/20 21:13:27 tom Exp @ ++ * @Id: MKada_config.in,v 1.37 2025/04/05 22:26:08 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>adacursesw6\-config 1 2024-04-20 ncurses 6.5 User commands</TITLE> ++<TITLE>adacursesw6\-config 1 2025-04-05 ncurses 6.5 User commands</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">adacursesw6\-config 1 2024-04-20 ncurses 6.5 User commands</H1> ++<H1 class="no-header">adacursesw6\-config 1 2025-04-05 ncurses 6.5 User commands</H1> + <PRE> + <STRONG><A HREF="adacursesw6-config.1.html">adacursesw6-config(1)</A></STRONG> User commands <STRONG><A HREF="adacursesw6-config.1.html">adacursesw6-config(1)</A></STRONG> + +@@ -128,7 +128,7 @@ + + + +-ncurses 6.5 2024-04-20 <STRONG><A HREF="adacursesw6-config.1.html">adacursesw6-config(1)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="adacursesw6-config.1.html">adacursesw6-config(1)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/clear.1.html +--- ncurses-6.5-20250329+/doc/html/man/clear.1.html 2025-01-19 00:54:58.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/clear.1.html 2025-04-05 22:33:03.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: clear.1,v 1.51 2025/01/19 00:49:39 tom Exp @ ++ * @Id: clear.1,v 1.53 2025/04/05 21:56:26 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>clear 1 2025-01-18 ncurses 6.5 User commands</TITLE> ++<TITLE>clear 1 2025-04-05 ncurses 6.5 User commands</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">clear 1 2025-01-18 ncurses 6.5 User commands</H1> ++<H1 class="no-header">clear 1 2025-04-05 ncurses 6.5 User commands</H1> + <PRE> + <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG> User commands <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG> + +@@ -148,7 +148,7 @@ + + + +-ncurses 6.5 2025-01-18 <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_add_wch.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_add_wch.3x.html 2025-03-15 22:08:51.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_add_wch.3x.html 2025-04-05 22:33:03.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.112 2025/03/15 20:38:41 tom Exp @ ++ * @Id: curs_add_wch.3x,v 1.114 2025/04/05 21:58:37 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 2025-03-15 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_add_wch 3x 2025-04-05 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 2025-03-15 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_add_wch 3x 2025-04-05 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> + +@@ -163,7 +163,7 @@ + + If the cursor is at the bottom of the scrolling region when advancement + occurs at the right margin, and <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG> is enabled for <EM>win</EM>, the +- cursor wraps as above and the scrolling region scrolls up one line. ++ scrolling region scrolls up one line and the cursor wraps as above. + Otherwise, advancement and scrolling do not occur, and <STRONG>waddch</STRONG> returns + <STRONG>ERR</STRONG>. + +@@ -450,7 +450,7 @@ + + + +-ncurses 6.5 2025-03-15 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_addch.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_addch.3x.html 2025-03-15 22:08:51.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_addch.3x.html 2025-04-05 22:33:03.000000000 +0000 +@@ -28,19 +28,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_addch.3x,v 1.132 2025/03/15 20:40:50 tom Exp @ ++ * @Id: curs_addch.3x,v 1.135 2025/04/05 21:58:37 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 2025-03-15 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_addch 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_addch 3x 2025-03-15 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_addch 3x 2025-04-05 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> + +@@ -125,7 +125,7 @@ + + If the cursor is at the bottom of the scrolling region when advancement + occurs at the right margin, and <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG> is enabled for <EM>win</EM>, the +- cursor wraps as above and the scrolling region scrolls up one line. ++ scrolling region scrolls up one line and the cursor wraps as above. + Otherwise, advancement and scrolling do not occur, and <STRONG>waddch</STRONG> returns + <STRONG>ERR</STRONG>. + +@@ -301,7 +301,7 @@ + + The <EM>displayed</EM> values of <EM>ACS</EM><STRONG>_</STRONG> constants depend on + +- <STRONG>o</STRONG> the <EM>ncurses</EM> ABI--for example, wide-character versus non-wide- ++ <STRONG>o</STRONG> the <EM>ncurses</EM> ABI -- for example, wide-character versus non-wide- + character configurations (the former is capable of displaying + Unicode while the latter is not), and + +@@ -333,7 +333,7 @@ + character. 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> ++ 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 the +@@ -365,7 +365,7 @@ + + + +-ncurses 6.5 2025-03-15 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_attr.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_attr.3x.html 2025-02-15 20:06:25.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_attr.3x.html 2025-04-05 22:33:03.000000000 +0000 +@@ -28,19 +28,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_attr.3x,v 1.136 2025/02/15 19:35:37 tom Exp @ ++ * @Id: curs_attr.3x,v 1.138 2025/04/05 21:56:26 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 2025-02-15 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_attr 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_attr 3x 2025-02-15 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_attr 3x 2025-04-05 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> + +@@ -493,7 +493,7 @@ + + + +-ncurses 6.5 2025-02-15 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_color.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_color.3x.html 2025-03-01 22:03:50.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_color.3x.html 2025-04-05 22:33:03.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_color.3x,v 1.116 2025/03/01 21:17:37 tom Exp @ ++ * @Id: curs_color.3x,v 1.118 2025/04/05 21:59:03 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_color 3x 2025-03-01 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_color 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_color 3x 2025-03-01 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_color 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> + +@@ -159,118 +159,110 @@ + + + </PRE><H2><a name="h2-CONSTANTS">CONSTANTS</a></H2><PRE> +- In <STRONG><curses.h></STRONG> the following macros are defined. These are the standard +- colors (ISO-6429). <EM>curses</EM> also assumes that <STRONG>COLOR_BLACK</STRONG> is the default +- background color for all terminals. +- +- <STRONG>COLOR_BLACK</STRONG> +- <STRONG>COLOR_RED</STRONG> +- <STRONG>COLOR_GREEN</STRONG> +- <STRONG>COLOR_YELLOW</STRONG> +- <STRONG>COLOR_BLUE</STRONG> +- <STRONG>COLOR_MAGENTA</STRONG> +- <STRONG>COLOR_CYAN</STRONG> +- <STRONG>COLOR_WHITE</STRONG> ++ ISO 6429 and ECMA-48 define eight standard colors (also known as "ANSI" ++ colors). <EM>curses.h</EM> defines object-like macros <STRONG>COLOR_BLACK</STRONG>, <STRONG>COLOR_RED</STRONG>, ++ <STRONG>COLOR_GREEN</STRONG>, <STRONG>COLOR_YELLOW</STRONG>, <STRONG>COLOR_BLUE</STRONG>, <STRONG>COLOR_MAGENTA</STRONG>, <STRONG>COLOR_CYAN</STRONG>, and ++ <STRONG>COLOR_WHITE</STRONG> accordingly. <EM>curses</EM> assumes that <STRONG>COLOR_BLACK</STRONG> is the ++ default background color for all terminals. <EM>ncurses</EM> offers an ++ extension to override that assumption; see <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG>. ++ Some terminals support additional colors that lack standard names. + +- Some terminals support more than the eight (8) "ANSI" colors. There +- are no standard names for those additional colors. +- +- <STRONG>A_COLOR</STRONG> is a bit mask that extracts a color pair identifier from a +- <EM>chtype</EM>. ++ <STRONG>A_COLOR</STRONG> is a bit mask that, when bitwise "and"-ed with a <EM>chtype</EM>, ++ extracts its color pair identifier. + + + </PRE><H2><a name="h2-VARIABLES">VARIABLES</a></H2><PRE> + + </PRE><H3><a name="h3-COLORS">COLORS</a></H3><PRE> +- is initialized by <STRONG>start_color</STRONG> to the maximum number of colors the ++ is initialized by <STRONG>start_color</STRONG> to the maximum number of colors the + terminal can support. + + + </PRE><H3><a name="h3-COLOR_PAIRS">COLOR_PAIRS</a></H3><PRE> +- is initialized by <STRONG>start_color</STRONG> to the maximum number of color pairs the ++ is initialized by <STRONG>start_color</STRONG> to the maximum number of color pairs the + terminal can support. Often, its value is the product <STRONG>COLORS</STRONG> x <STRONG>COLORS</STRONG>, + but this is not always true. + +- <STRONG>o</STRONG> A few terminals use the HLS color space (see <STRONG>start_color</STRONG> below), ++ <STRONG>o</STRONG> A few terminals use the HLS color space (see <STRONG>start_color</STRONG> below), + ignoring this rule; and + +- <STRONG>o</STRONG> terminals supporting a large number of colors are limited to the ++ <STRONG>o</STRONG> terminals supporting a large number of colors are limited to the + number of color pairs that a <EM>signed</EM> <EM>short</EM> value can represent. + + + </PRE><H2><a name="h2-FUNCTIONS">FUNCTIONS</a></H2><PRE> + + </PRE><H3><a name="h3-start_color">start_color</a></H3><PRE> +- The <STRONG>start_color</STRONG> routine requires no arguments. It must be called if +- the programmer wants to use colors, and before any other color +- manipulation routine is called. It is good practice to call this ++ The <STRONG>start_color</STRONG> routine requires no arguments. It must be called if ++ the programmer wants to use colors, and before any other color ++ manipulation routine is called. It is good practice to call this + routine right after <STRONG>initscr</STRONG>. <STRONG>start_color</STRONG> does this: + +- <STRONG>o</STRONG> It initializes two global variables, <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG> ++ <STRONG>o</STRONG> It initializes two global variables, <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG> + (respectively defining the maximum number of colors and color pairs + the terminal can support). + +- <STRONG>o</STRONG> It initializes the special color pair <STRONG>0</STRONG> to the default foreground ++ <STRONG>o</STRONG> It initializes the special color pair <STRONG>0</STRONG> to the default foreground + and background colors. No other color pairs are initialized. + +- <STRONG>o</STRONG> It restores the colors on the terminal to the values they had when ++ <STRONG>o</STRONG> It restores the colors on the terminal to the values they had when + the terminal was just turned on. + +- <STRONG>o</STRONG> If the terminal supports the <STRONG>initc</STRONG> (<STRONG>initialize_color</STRONG>) capability, +- <STRONG>start_color</STRONG> initializes its internal table representing the red, ++ <STRONG>o</STRONG> If the terminal supports the <STRONG>initc</STRONG> (<STRONG>initialize_color</STRONG>) capability, ++ <STRONG>start_color</STRONG> initializes its internal table representing the red, + green, and blue components of the color palette. + + The components depend on whether the terminal uses CGA (aka "ANSI") +- or HLS (i.e., the <STRONG>hls</STRONG> (<STRONG>hue_lightness_saturation</STRONG>) capability is +- set). The table is initialized first for eight basic colors +- (black, red, green, yellow, blue, magenta, cyan, and white), using ++ or HLS (i.e., the <STRONG>hls</STRONG> (<STRONG>hue_lightness_saturation</STRONG>) capability is ++ set). The table is initialized first for eight basic colors ++ (black, red, green, yellow, blue, magenta, cyan, and white), using + weights that depend upon the CGA/HLS choice. For "ANSI" colors the +- weights are <STRONG>680</STRONG> or <STRONG>0</STRONG> depending on whether the corresponding red, +- green, or blue component is used or not. That permits using <STRONG>1000</STRONG> +- to represent bold/bright colors. After the initial eight colors +- (if the terminal supports more than eight colors) the components +- are initialized using the same pattern, but with weights of <STRONG>1000</STRONG>. ++ weights are <STRONG>680</STRONG> or <STRONG>0</STRONG> depending on whether the corresponding red, ++ green, or blue component is used or not. That permits using <STRONG>1000</STRONG> ++ to represent bold/bright colors. After the initial eight colors ++ (if the terminal supports more than eight colors) the components ++ are initialized using the same pattern, but with weights of <STRONG>1000</STRONG>. + SVr4 uses a similar scheme, but uses <STRONG>1000</STRONG> for the components of the + initial eight colors. + + <STRONG>start_color</STRONG> does not attempt to set the terminal's color palette to +- match its built-in table. An application may use <STRONG>init_color</STRONG> to ++ match its built-in table. An application may use <STRONG>init_color</STRONG> to + alter the internal table along with the terminal's color. + +- These limits apply to color values and color pairs. Values outside ++ These limits apply to color values and color pairs. Values outside + these limits are not valid, and may result in a runtime error: + +- <STRONG>o</STRONG> <STRONG>COLORS</STRONG> corresponds to the terminal database's <STRONG>max_colors</STRONG> ++ <STRONG>o</STRONG> <STRONG>COLORS</STRONG> corresponds to the terminal database's <STRONG>max_colors</STRONG> + capability, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>). + +- <STRONG>o</STRONG> color values are expected to be in the range <STRONG>0</STRONG> to <STRONG>COLORS-1</STRONG>, ++ <STRONG>o</STRONG> color values are expected to be in the range <STRONG>0</STRONG> to <STRONG>COLORS-1</STRONG>, + inclusive (including <STRONG>0</STRONG> and <STRONG>COLORS-1</STRONG>). + +- <STRONG>o</STRONG> a special color value <STRONG>-1</STRONG> is used in certain extended functions to ++ <STRONG>o</STRONG> a special color value <STRONG>-1</STRONG> is used in certain extended functions to + denote the <EM>default</EM> <EM>color</EM> (see <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>). + +- <STRONG>o</STRONG> <STRONG>COLOR_PAIRS</STRONG> corresponds to the terminal database's <STRONG>max_pairs</STRONG> ++ <STRONG>o</STRONG> <STRONG>COLOR_PAIRS</STRONG> corresponds to the terminal database's <STRONG>max_pairs</STRONG> + capability, (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>). + +- <STRONG>o</STRONG> valid color pair values are in the range <STRONG>1</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>, ++ <STRONG>o</STRONG> valid color pair values are in the range <STRONG>1</STRONG> to <STRONG>COLOR_PAIRS-1</STRONG>, + inclusive. + + <STRONG>o</STRONG> color pair <STRONG>0</STRONG> is special; it denotes "no color". + +- Color pair <STRONG>0</STRONG> is assumed to be white on black, but is actually +- whatever the terminal implements before color is initialized. It ++ Color pair <STRONG>0</STRONG> is assumed to be white on black, but is actually ++ whatever the terminal implements before color is initialized. It + cannot be modified by the application. + + + </PRE><H3><a name="h3-has_colors">has_colors</a></H3><PRE> + <STRONG>has_colors</STRONG> returns <STRONG>TRUE</STRONG> if the terminal supports colors and <STRONG>FALSE</STRONG> if it +- does not. <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> must be called first, but +- <STRONG>start_color</STRONG> need not be. An application might call <STRONG>has_colors</STRONG> to +- decide whether to use color or a video attribute like <STRONG>A_BOLD</STRONG> to render ++ does not. <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> must be called first, but ++ <STRONG>start_color</STRONG> need not be. An application might call <STRONG>has_colors</STRONG> to ++ decide whether to use color or a video attribute like <STRONG>A_BOLD</STRONG> to render + text. + +- Color support in <EM>curses</EM> requires that the terminal type description +- support the capabilities <STRONG>max_colors</STRONG> (<STRONG>colors</STRONG>), <STRONG>max_pairs</STRONG> (<STRONG>pairs</STRONG>), and ++ Color support in <EM>curses</EM> requires that the terminal type description ++ support the capabilities <STRONG>max_colors</STRONG> (<STRONG>colors</STRONG>), <STRONG>max_pairs</STRONG> (<STRONG>pairs</STRONG>), and + any of + + <STRONG>o</STRONG> <STRONG>set_foreground</STRONG> (<STRONG>setf</STRONG>) and <STRONG>set_background</STRONG> (<STRONG>setb</STRONG>); +@@ -282,208 +274,208 @@ + + </PRE><H3><a name="h3-can_change_color">can_change_color</a></H3><PRE> + The <STRONG>can_change_color</STRONG> routine requires no arguments. It returns <STRONG>TRUE</STRONG> if +- the terminal supports colors and can change their definitions; other, +- it returns <STRONG>FALSE</STRONG>. This routine facilitates writing terminal- ++ the terminal supports colors and can change their definitions; other, ++ it returns <STRONG>FALSE</STRONG>. This routine facilitates writing terminal- + independent programs. + + + </PRE><H3><a name="h3-init_pair">init_pair</a></H3><PRE> + The <STRONG>init_pair</STRONG> routine changes the definition of a color pair. It takes +- three arguments: the number of the color pair to be changed, the ++ three arguments: the number of the color pair to be changed, the + foreground color number, and the background color number. For portable + applications: + +- <STRONG>o</STRONG> The first argument must be a valid color pair value. If default +- colors are used (see <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>) the upper limit is +- adjusted to allow for extra pairs which use a default color in ++ <STRONG>o</STRONG> The first argument must be a valid color pair value. If default ++ colors are used (see <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG>) the upper limit is ++ adjusted to allow for extra pairs which use a default color in + foreground and/or background. + + <STRONG>o</STRONG> The second and third arguments must be valid color values. + +- If the color pair was previously initialized, the screen is refreshed +- and all occurrences of that color pair are changed to the new ++ If the color pair was previously initialized, the screen is refreshed ++ and all occurrences of that color pair are changed to the new + definition. + +- As an extension, <EM>ncurses</EM> allows you to set color pair <STRONG>0</STRONG> via the +- <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG> routine, or to specify the use of default ++ As an extension, <EM>ncurses</EM> allows you to set color pair <STRONG>0</STRONG> via the ++ <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG> routine, or to specify the use of default + colors (color number <STRONG>-1</STRONG>) if you first invoke the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> + routine. + + + </PRE><H3><a name="h3-init_extended_pair">init_extended_pair</a></H3><PRE> +- Because <STRONG>init_pair</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that limits ++ Because <STRONG>init_pair</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that limits + color pairs and color-values to 32767 on modern hardware. The +- extension <STRONG>init_extended_pair</STRONG> uses <STRONG>int</STRONG>s for the color pair and color- ++ extension <STRONG>init_extended_pair</STRONG> uses <STRONG>int</STRONG>s for the color pair and color- + value, allowing a larger number of colors to be supported. + + + </PRE><H3><a name="h3-init_color">init_color</a></H3><PRE> +- The <STRONG>init_color</STRONG> routine changes the definition of a color. It takes ++ The <STRONG>init_color</STRONG> routine changes the definition of a color. It takes + four arguments: the number of the color to be changed followed by three + RGB values (for the amounts of red, green, and blue components). + +- <STRONG>o</STRONG> The first argument must be a valid color value; default colors are +- not allowed here. (See the section <STRONG>Colors</STRONG> for the default color ++ <STRONG>o</STRONG> The first argument must be a valid color value; default colors are ++ not allowed here. (See the section <STRONG>Colors</STRONG> for the default color + index.) + +- <STRONG>o</STRONG> Each of the last three arguments must be a value in the range <STRONG>0</STRONG> ++ <STRONG>o</STRONG> Each of the last three arguments must be a value in the range <STRONG>0</STRONG> + through <STRONG>1000</STRONG>. + +- When <STRONG>init_color</STRONG> is used, all occurrences of that color on the screen ++ When <STRONG>init_color</STRONG> is used, all occurrences of that color on the screen + immediately change to the new definition. + + + </PRE><H3><a name="h3-init_extended_color">init_extended_color</a></H3><PRE> +- Because <STRONG>init_color</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that limits +- color-values and their red, green, and blue components to 32767 on +- modern hardware. The extension <STRONG>init_extended_color</STRONG> uses <STRONG>int</STRONG>s for the +- color value and for setting the red, green, and blue components, ++ Because <STRONG>init_color</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that limits ++ color-values and their red, green, and blue components to 32767 on ++ modern hardware. The extension <STRONG>init_extended_color</STRONG> uses <STRONG>int</STRONG>s for the ++ color value and for setting the red, green, and blue components, + allowing a larger number of colors to be supported. + + + </PRE><H3><a name="h3-color_content">color_content</a></H3><PRE> + The <STRONG>color_content</STRONG> routine gives programmers a way to find the intensity +- of the red, green, and blue (RGB) components in a color. It requires +- four arguments: the color number, and three addresses of <STRONG>short</STRONG>s for +- storing the information about the amounts of red, green, and blue ++ of the red, green, and blue (RGB) components in a color. It requires ++ four arguments: the color number, and three addresses of <STRONG>short</STRONG>s for ++ storing the information about the amounts of red, green, and blue + components in the given color. + +- <STRONG>o</STRONG> The first argument must be a valid color value, i.e., <STRONG>0</STRONG> through ++ <STRONG>o</STRONG> The first argument must be a valid color value, i.e., <STRONG>0</STRONG> through + <STRONG>COLORS-1</STRONG>, inclusive. + +- <STRONG>o</STRONG> The values that are stored at the addresses pointed to by the last +- three arguments are in the range <STRONG>0</STRONG> (no component) through <STRONG>1000</STRONG> ++ <STRONG>o</STRONG> The values that are stored at the addresses pointed to by the last ++ three arguments are in the range <STRONG>0</STRONG> (no component) through <STRONG>1000</STRONG> + (maximum amount of component), inclusive. + + + </PRE><H3><a name="h3-extended_color_content">extended_color_content</a></H3><PRE> +- Because <STRONG>color_content</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that +- limits color-values and their red, green, and blue components to 32767 ++ Because <STRONG>color_content</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that ++ limits color-values and their red, green, and blue components to 32767 + on modern hardware. The extension <STRONG>extended_color_content</STRONG> uses <STRONG>int</STRONG>s for +- the color value and for returning the red, green, and blue components, ++ the color value and for returning the red, green, and blue components, + allowing a larger number of colors to be supported. + + + </PRE><H3><a name="h3-pair_content">pair_content</a></H3><PRE> +- The <STRONG>pair_content</STRONG> routine allows programmers to find out what colors a +- given color pair consists of. It requires three arguments: the color ++ The <STRONG>pair_content</STRONG> routine allows programmers to find out what colors a ++ given color pair consists of. It requires three arguments: the color + pair number, and two addresses of <STRONG>short</STRONG>s for storing the foreground and + the background color numbers. + +- <STRONG>o</STRONG> The first argument must be a valid color value, i.e., in the range ++ <STRONG>o</STRONG> The first argument must be a valid color value, i.e., in the range + <STRONG>1</STRONG> through <STRONG>COLOR_PAIRS-1</STRONG>, inclusive. + +- <STRONG>o</STRONG> The values that are stored at the addresses pointed to by the +- second and third arguments are in the range <STRONG>0</STRONG> through <STRONG>COLORS</STRONG>, ++ <STRONG>o</STRONG> The values that are stored at the addresses pointed to by the ++ second and third arguments are in the range <STRONG>0</STRONG> through <STRONG>COLORS</STRONG>, + inclusive. + + + </PRE><H3><a name="h3-extended_pair_content">extended_pair_content</a></H3><PRE> + Because <STRONG>pair_content</STRONG> uses signed <STRONG>short</STRONG>s for its parameters, that limits + color pair and color-values to 32767 on modern hardware. The extension +- <STRONG>extended_pair_content</STRONG> uses <STRONG>int</STRONG>s for the color pair and for returning +- the foreground and background colors, allowing a larger number of ++ <STRONG>extended_pair_content</STRONG> uses <STRONG>int</STRONG>s for the color pair and for returning ++ the foreground and background colors, allowing a larger number of + colors to be supported. + + + </PRE><H3><a name="h3-reset_color_pairs">reset_color_pairs</a></H3><PRE> +- The extension <STRONG>reset_color_pairs</STRONG> tells <EM>ncurses</EM> to discard all of the +- color pair information which was set with <STRONG>init_pair</STRONG>. It also touches +- the current- and standard-screens, allowing an application to switch ++ The extension <STRONG>reset_color_pairs</STRONG> tells <EM>ncurses</EM> to discard all of the ++ color pair information which was set with <STRONG>init_pair</STRONG>. It also touches ++ the current- and standard-screens, allowing an application to switch + color palettes rapidly. + + + </PRE><H3><a name="h3-COLOR_PAIR">COLOR_PAIR</a></H3><PRE> + <STRONG>COLOR_PAIR(</STRONG><EM>n</EM><STRONG>)</STRONG> converts a color pair number to an attribute. Attributes +- can hold color pairs in the range 0 to 255. If you need a color pair +- larger than that, you must use functions such as <STRONG>attr_set</STRONG> (which pass +- the color pair as a separate parameter) rather than the legacy ++ can hold color pairs in the range 0 to 255. If you need a color pair ++ larger than that, you must use functions such as <STRONG>attr_set</STRONG> (which pass ++ the color pair as a separate parameter) rather than the legacy + functions such as <STRONG>attrset</STRONG>. + + + </PRE><H3><a name="h3-PAIR_NUMBER">PAIR_NUMBER</a></H3><PRE> +- <STRONG>PAIR_NUMBER(</STRONG><EM>attr</EM>) extracts the color information from its <EM>attr</EM> +- parameter and returns it as a color pair number; it is the inverse ++ <STRONG>PAIR_NUMBER(</STRONG><EM>attr</EM>) extracts the color information from its <EM>attr</EM> ++ parameter and returns it as a color pair number; it is the inverse + operation of <STRONG>COLOR_PAIR</STRONG>. + + + </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE> +- <STRONG>can_change_color</STRONG> and <STRONG>has_colors</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>. The other ++ <STRONG>can_change_color</STRONG> and <STRONG>has_colors</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>. The other + functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure. + +- In <EM>ncurses</EM>, functions returning an <EM>int</EM> recognize several error ++ In <EM>ncurses</EM>, functions returning an <EM>int</EM> recognize several error + conditions. + +- <STRONG>o</STRONG> All return <STRONG>ERR</STRONG> if the screen has not been initialized; see ++ <STRONG>o</STRONG> All return <STRONG>ERR</STRONG> if the screen has not been initialized; see + <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>. + +- <STRONG>o</STRONG> All except <STRONG>start_color</STRONG> return <STRONG>ERR</STRONG> if <STRONG>start_color</STRONG> has not been ++ <STRONG>o</STRONG> All except <STRONG>start_color</STRONG> return <STRONG>ERR</STRONG> if <STRONG>start_color</STRONG> has not been + called, or itself returned <STRONG>ERR</STRONG>. + +- <STRONG>o</STRONG> <STRONG>start_color</STRONG> returns <STRONG>ERR</STRONG> if it cannot allocate memory for its color ++ <STRONG>o</STRONG> <STRONG>start_color</STRONG> returns <STRONG>ERR</STRONG> if it cannot allocate memory for its color + pair table. + +- <STRONG>o</STRONG> <STRONG>init_color</STRONG> returns <STRONG>ERR</STRONG> if the terminal type does not support +- assignable color values; that is, if the <STRONG>initialize_color</STRONG> (<STRONG>initc</STRONG>) ++ <STRONG>o</STRONG> <STRONG>init_color</STRONG> returns <STRONG>ERR</STRONG> if the terminal type does not support ++ assignable color values; that is, if the <STRONG>initialize_color</STRONG> (<STRONG>initc</STRONG>) + capability is absent from its description. + +- <STRONG>o</STRONG> <STRONG>init_color</STRONG> returns <STRONG>ERR</STRONG> if any of its <EM>r</EM>, <EM>g</EM>, <EM>b</EM> arguments is outside ++ <STRONG>o</STRONG> <STRONG>init_color</STRONG> returns <STRONG>ERR</STRONG> if any of its <EM>r</EM>, <EM>g</EM>, <EM>b</EM> arguments is outside + the range 0-1000 inclusive. + +- <STRONG>o</STRONG> <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>, <STRONG>init_extended_pair</STRONG>, <STRONG>init_extended_color</STRONG>, +- <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>, <STRONG>extended_color_content</STRONG>, and ++ <STRONG>o</STRONG> <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>, <STRONG>init_extended_pair</STRONG>, <STRONG>init_extended_color</STRONG>, ++ <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>, <STRONG>extended_color_content</STRONG>, and + <STRONG>extended_pair_content</STRONG> return <STRONG>ERR</STRONG> on attempts to use + +- <STRONG>o</STRONG> color identifiers outside the range 0-<STRONG>COLORS</STRONG>-1 inclusive, the ++ <STRONG>o</STRONG> color identifiers outside the range 0-<STRONG>COLORS</STRONG>-1 inclusive, the + default colors extension notwithstanding, or + +- <STRONG>o</STRONG> color pair identifiers outside the range 0-<STRONG>COLOR_PAIRS</STRONG>-1 ++ <STRONG>o</STRONG> color pair identifiers outside the range 0-<STRONG>COLOR_PAIRS</STRONG>-1 + inclusive. + + + </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> +- In <EM>ncurses</EM>, <STRONG>init_pair</STRONG> accepts negative foreground and background color +- arguments to support its <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> extension, but only ++ In <EM>ncurses</EM>, <STRONG>init_pair</STRONG> accepts negative foreground and background color ++ arguments to support its <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> extension, but only + after the latter function has been called. + +- The assumption that <STRONG>COLOR_BLACK</STRONG> is the terminal's default background ++ The assumption that <STRONG>COLOR_BLACK</STRONG> is the terminal's default background + color can be overridden using <EM>ncurses</EM>'s <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG> + extension. + +- In <EM>ncurses</EM>, each pointer passed to <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG> can ++ In <EM>ncurses</EM>, each pointer passed to <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG> can + be null, in which case the library ignores it, permitting the + application to disregard unnecessary information. + +- In <EM>ncurses</EM>, each screen has a color activation flag, color palette, ++ In <EM>ncurses</EM>, each screen has a color activation flag, color palette, + color pair table, and associated <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG> values; +- <STRONG>start_color</STRONG> affects only the current screen. The SVr4 and X/Open +- Curses interface was not really designed with this in mind; historical ++ <STRONG>start_color</STRONG> affects only the current screen. The SVr4 and X/Open ++ Curses interface was not really designed with this in mind; historical + implementations may use a single shared color palette. + +- Setting an implicit background color via a color pair affects only +- character cells that a character write operation explicitly touches. +- To change the background color used when parts of a window are blanked ++ Setting an implicit background color via a color pair affects only ++ character cells that a character write operation explicitly touches. ++ To change the background color used when parts of a window are blanked + by erasing or scrolling operations, see <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>. + +- Several caveats apply to IBM PC-compatible machines of the 80486 era ++ Several caveats apply to IBM PC-compatible machines of the 80486 era + and earlier with CGA/EGA/VGA video. + +- <STRONG>o</STRONG> <STRONG>COLOR_YELLOW</STRONG> is actually brown. To get yellow, combine ++ <STRONG>o</STRONG> <STRONG>COLOR_YELLOW</STRONG> is actually brown. To get yellow, combine + <STRONG>COLOR_YELLOW</STRONG> with the <STRONG>A_BOLD</STRONG> attribute. + +- <STRONG>o</STRONG> The <STRONG>A_BLINK</STRONG> attribute should in theory make the background bright. +- This often fails to work, and even VGA controllers for which it +- mostly works, such as those from Paradise and compatibles, do the ++ <STRONG>o</STRONG> The <STRONG>A_BLINK</STRONG> attribute should in theory make the background bright. ++ This often fails to work, and even VGA controllers for which it ++ mostly works, such as those from Paradise and compatibles, do the + wrong thing when you try to set a bright "yellow" background -- you + get a blinking yellow foreground instead. + +- <STRONG>o</STRONG> Color RGB values are not configurable on these devices (in text ++ <STRONG>o</STRONG> Color RGB values are not configurable on these devices (in text + mode). + + + </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE> +- The functions marked as extensions originated in <EM>ncurses</EM>, and are not +- found in SVr4 <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous <EM>curses</EM> ++ The functions marked as extensions originated in <EM>ncurses</EM>, and are not ++ found in SVr4 <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous <EM>curses</EM> + implementation. + + +@@ -494,78 +486,78 @@ + X/Open Curses Issue 4 describes these functions. It specifies no error + conditions for them. + +- <EM>ncurses</EM> satisfies X/Open Curses's minimum maximums for <EM>COLORS</EM> and ++ <EM>ncurses</EM> satisfies X/Open Curses's minimum maximums for <EM>COLORS</EM> and + <EM>COLOR</EM><STRONG>_</STRONG><EM>PAIRS</EM>. + +- X/Open Curses does not specify a limit for the number of colors and ++ X/Open Curses does not specify a limit for the number of colors and + color pairs which a terminal can support. However, in its use of <EM>short</EM> +- for the parameters, it carries over SVr4's implementation detail for +- the compiled <EM>terminfo</EM> database, which uses signed 16-bit numbers. ++ for the parameters, it carries over SVr4's implementation detail for ++ the compiled <EM>terminfo</EM> database, which uses signed 16-bit numbers. + <EM>ncurses</EM> provides extended versions of the functions using <EM>short</EM> +- parameters, allowing applications to use larger color and pair ++ parameters, allowing applications to use larger color and pair + identifiers. + +- SVr4 <EM>curses</EM> returns <EM>ERR</EM> from <EM>pair</EM><STRONG>_</STRONG><EM>content</EM> if its <EM>pair</EM> argument was not +- initialized using <EM>init</EM><STRONG>_</STRONG><EM>pairs</EM>, and from <EM>color</EM><STRONG>_</STRONG><EM>content</EM> if the terminal ++ SVr4 <EM>curses</EM> returns <EM>ERR</EM> from <EM>pair</EM><STRONG>_</STRONG><EM>content</EM> if its <EM>pair</EM> argument was not ++ initialized using <EM>init</EM><STRONG>_</STRONG><EM>pairs</EM>, and from <EM>color</EM><STRONG>_</STRONG><EM>content</EM> if the terminal + does not support changing colors. <EM>ncurses</EM> does neither. + + + </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> +- SVr3.2 (1987) introduced color support with all of the symbols in the +- synopsis above except those marked as extensions. It reserved color +- pair 0 as the terminal's initial, "uncolored" state, and limited the +- number of possible color pairs to 64, because the color pair datum was ++ SVr3.2 (1987) introduced color support with all of the symbols in the ++ synopsis above except those marked as extensions. It reserved color ++ pair 0 as the terminal's initial, "uncolored" state, and limited the ++ number of possible color pairs to 64, because the color pair datum was + encoded in six bits of a <EM>chtype</EM>. + +- SVr4 made only internal changes, such as moving the storage of color +- state from the <EM>SCREEN</EM> structure (pointed to by <EM>SP</EM>) to the <EM>TERMINAL</EM> ++ SVr4 made only internal changes, such as moving the storage of color ++ state from the <EM>SCREEN</EM> structure (pointed to by <EM>SP</EM>) to the <EM>TERMINAL</EM> + structure (pointed to by <EM>cur</EM><STRONG>_</STRONG><EM>term</EM>). + +- Other <EM>curses</EM> implementations impose different limits on the number of ++ Other <EM>curses</EM> implementations impose different limits on the number of + colors and color pairs. + +- <STRONG>o</STRONG> <EM>PCCurses</EM> (1987-1990) provided for only 8 colors (and therefore ++ <STRONG>o</STRONG> <EM>PCCurses</EM> (1987-1990) provided for only 8 colors (and therefore + required at most 8x8 = 64 color pairs). + + <STRONG>o</STRONG> <EM>PDCurses</EM> (1992-present) inherited the 8-color limitation from +- <EM>PCCurses</EM>, but changed this to 256 in version 2.5 (2001), and ++ <EM>PCCurses</EM>, but changed this to 256 in version 2.5 (2001), and + widened its <EM>chtype</EM> from 16 to 32 bits. + + <STRONG>o</STRONG> X/Open Curses (1992-present) specified a new structure type, +- <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, to store the character code, attribute flags, and color +- pair identifier, allowing an increased range of color pairs. It +- specifies a <EM>short</EM> as storing identifiers for colors and color +- pairs, limiting portable values to 15 bits; negative values are ++ <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, to store the character code, attribute flags, and color ++ pair identifier, allowing an increased range of color pairs. It ++ specifies a <EM>short</EM> as storing identifiers for colors and color ++ pairs, limiting portable values to 15 bits; negative values are + invalid in System V. + +- <STRONG>o</STRONG> <EM>ncurses</EM> (1992-present), in its non-wide configuration, uses 8 bits ++ <STRONG>o</STRONG> <EM>ncurses</EM> (1992-present), in its non-wide configuration, uses 8 bits + of <EM>chtype</EM> for the color pair identifier. + +- Version 5.3 (2002) offered a wide-character interface, but encoded ++ Version 5.3 (2002) offered a wide-character interface, but encoded + the color pair identifier with attributes in the character type. + +- Since version 6 (2015), <EM>ncurses</EM> uses a separate <EM>int</EM> for the color +- pair identifier in a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, introducing extension functions to +- manage the wider type. When a color pair value fits in 8 bits, ++ Since version 6 (2015), <EM>ncurses</EM> uses a separate <EM>int</EM> for the color ++ pair identifier in a <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, introducing extension functions to ++ manage the wider type. When a color pair value fits in 8 bits, + <EM>ncurses</EM> permits color pair data to be manipulated via the functions +- taking <EM>chtype</EM> arguments, even when a <EM>curses</EM> window uses wide- ++ taking <EM>chtype</EM> arguments, even when a <EM>curses</EM> window uses wide- + character cells. + +- <STRONG>o</STRONG> NetBSD <EM>curses</EM> used 6 bits for the color pair identifier from 2000 +- (when it first added color support) until 2004. At that point, +- NetBSD widened the color pair identifier to use 9 bits. As of +- 2025, that size is unchanged. Like <EM>ncurses</EM> before version 6, the +- NetBSD color pair datum is stored in the attributes field of ++ <STRONG>o</STRONG> NetBSD <EM>curses</EM> used 6 bits for the color pair identifier from 2000 ++ (when it first added color support) until 2004. At that point, ++ NetBSD widened the color pair identifier to use 9 bits. As of ++ 2025, that size is unchanged. Like <EM>ncurses</EM> before version 6, the ++ NetBSD color pair datum is stored in the attributes field of + <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, limiting the number of color pairs. + + + </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_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, + <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> + + + +-ncurses 6.5 2025-03-01 <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_delch.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_delch.3x.html 2025-01-19 00:54:58.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_delch.3x.html 2025-04-05 22:33:03.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_delch.3x,v 1.47 2025/01/19 00:49:39 tom Exp @ ++ * @Id: curs_delch.3x,v 1.49 2025/04/05 21:59: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 2025-01-18 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_delch 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_delch 3x 2025-01-18 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_delch 3x 2025-04-05 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> + +@@ -73,16 +73,21 @@ + </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>, they return <STRONG>ERR</STRONG> if <EM>win</EM> is <EM>NULL</EM>. ++ In <EM>ncurses</EM>, these functions fail if + +- Functions prefixed with "mv" first perform cursor movement and fail if ++ <STRONG>o</STRONG> the <EM>curses</EM> screen has not been initialized, or ++ ++ <STRONG>o</STRONG> (for functions taking a <EM>WINDOW</EM> pointer argument) <EM>win</EM> is a null ++ pointer. ++ ++ 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. + + +@@ -90,7 +95,7 @@ + X/Open Curses Issue 4 describes these functions. It specifies no error + conditions for them. + +- SVr4 describes a successful return value only as "an integer value ++ SVr4 describes a successful return value only as "an integer value + other than <EM>ERR</EM>". + + +@@ -103,7 +108,7 @@ + + + +-ncurses 6.5 2025-01-18 <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_deleteln.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_deleteln.3x.html 2025-02-02 00:43:57.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_deleteln.3x.html 2025-04-05 22:33:03.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_deleteln.3x,v 1.51 2025/02/01 22:49:56 tom Exp @ ++ * @Id: curs_deleteln.3x,v 1.53 2025/04/05 22:00:17 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_deleteln 3x 2025-02-01 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_deleteln 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_deleteln 3x 2025-02-01 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_deleteln 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> + +@@ -79,8 +79,6 @@ + negative, respectively, as if by repeatedly calling <STRONG>winsertln</STRONG> or + <STRONG>wdeleteln</STRONG>. + +- <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of these functions. +- + + </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. +@@ -115,7 +113,7 @@ + + + +-ncurses 6.5 2025-02-01 <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_extend.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_extend.3x.html 2025-01-19 00:54:58.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_extend.3x.html 2025-04-05 22:33:03.000000000 +0000 +@@ -28,19 +28,19 @@ + * authorization. * + **************************************************************************** + * Author: Thomas E. Dickey 1999-on +- * @Id: curs_extend.3x,v 1.54 2025/01/19 00:49:39 tom Exp @ ++ * @Id: curs_extend.3x,v 1.56 2025/04/05 22:01:03 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_extend 3x 2025-01-18 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_extend 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_extend 3x 2025-01-18 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_extend 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> + +@@ -76,7 +76,7 @@ + <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> interfaces. Normally these names are available for + use, since the essential decision is made through use of <STRONG><A HREF="tic.1m.html">tic(1)</A></STRONG>'s <STRONG>-x</STRONG> + option to include such extensions in terminal type descriptions. +- <STRONG>use_extended_names</STRONG> can prevent <EM>ncurses</EM> from recognizing these ++ <STRONG>use_extended_names(FALSE)</STRONG> prevents <EM>ncurses</EM> from recognizing these + capabilities to ensure compatibility with other implementations of + <EM>curses</EM>. + +@@ -116,7 +116,7 @@ + + + +-ncurses 6.5 2025-01-18 <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_get_wch.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_get_wch.3x.html 2025-02-15 20:06:26.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_get_wch.3x.html 2025-04-05 22:33:03.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.66 2025/02/15 19:35:48 tom Exp @ ++ * @Id: curs_get_wch.3x,v 1.69 2025/04/05 22:03:24 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 2025-02-15 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_get_wch 3x 2025-04-05 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 2025-02-15 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_get_wch 3x 2025-04-05 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> + +@@ -116,21 +116,29 @@ + + </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE> + <STRONG>wget_wch</STRONG> returns <STRONG>OK</STRONG> when it reads a wide character, <STRONG>KEY_CODE_YES</STRONG> when +- it reads a function key code, and <STRONG>ERR</STRONG> on failure. <STRONG>wget_wch</STRONG> fails if ++ it reads a function key code, and <STRONG>ERR</STRONG> on failure. <STRONG>wget_wch</STRONG> fails if ++ its timeout expires without any data arriving, which cannot happen if ++ <STRONG><A HREF="nodelay.3x.html">nodelay(3x)</A></STRONG> is in effect on the window. + +- <STRONG>o</STRONG> its timeout expires without any data arriving, or ++ In <EM>ncurses</EM>, <STRONG>wget_wch</STRONG> also fails if + +- <STRONG>o</STRONG> execution was interrupted by a signal, in which case <EM>errno</EM> is set +- to <EM>EINTR</EM>. ++ <STRONG>o</STRONG> the <EM>curses</EM> screen has not been initialized, ++ ++ <STRONG>o</STRONG> (for functions taking a <EM>WINDOW</EM> pointer argument) <EM>win</EM> is a null ++ pointer, or + +- Functions taking a <EM>WINDOW</EM> pointer argument fail if <EM>win</EM> is a null +- pointer. ++ <STRONG>o</STRONG> execution was interrupted by a signal, in which case <EM>errno</EM> is set ++ to <EM>EINTR</EM>. + + 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>unget_wch</STRONG> returns <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> if there is no more room in the +- input queue. ++ <STRONG>unget_wch</STRONG> returns <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure. In <EM>ncurses</EM>, ++ <STRONG>unget_wch</STRONG> fails if ++ ++ <STRONG>o</STRONG> the <EM>curses</EM> screen has not been initialized, or ++ ++ <STRONG>o</STRONG> there is no more room in the input queue. + + + </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> +@@ -139,13 +147,12 @@ + All of these functions except <STRONG>wget_wch</STRONG> and <STRONG>unget_wch</STRONG> may be implemented + as macros. + +- Unlike <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG>, <STRONG>wget_wch</STRONG> and its variants store the value of the +- 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 from +- conventional character codes. An application can overcome this +- limitation by pushing function key codes with <STRONG>ungetch</STRONG> and subsequently ++ Unlike <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG>, <STRONG>wget_wch</STRONG> stores the value of the 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 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>. + + +@@ -160,18 +167,18 @@ + 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 <EM>wget</EM><STRONG>_</STRONG><EM>wch</EM> with signal handlers. + + + </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> +- X/Open Curses Issue 4 (1995) initially specified these functions. The +- System V Interface Definition Version 4 of the same year specified ++ X/Open Curses Issue 4 (1995) initially specified these functions. The ++ System V Interface Definition Version 4 of the same year specified + functions named <EM>wgetwch</EM> (with its variants) <EM>ungetwch</EM>. These were later +- additions to SVr4.<EM>x</EM>, not appearing in the first SVr4 (1989). They ++ additions to SVr4.<EM>x</EM>, not appearing in the first SVr4 (1989). They + differ from X/Open's later <EM>wget</EM><STRONG>_</STRONG><EM>wch</EM> and <EM>unget</EM><STRONG>_</STRONG><EM>wch</EM> in that <EM>wgetwch</EM> takes +- no <EM>wch</EM> argument, but returns the (wide) key code as an <EM>int</EM> (with no +- provision for distinguishing a character code from a function key ++ no <EM>wch</EM> argument, but returns the (wide) key code as an <EM>int</EM> (with no ++ provision for distinguishing a character code from a function key + code); and <EM>ungetwch</EM> takes a non-<EM>const</EM> <EM>int</EM> argument. + + +@@ -179,12 +186,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 2025-02-15 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_get_wstr.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_get_wstr.3x.html 2025-02-15 15:07:46.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_get_wstr.3x.html 2025-04-05 22:57:19.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_get_wstr.3x,v 1.70 2025/02/15 14:55:47 tom Exp @ ++ * @Id: curs_get_wstr.3x,v 1.75 2025/04/05 22:36:46 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_wstr 3x 2025-02-15 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_get_wstr 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_get_wstr 3x 2025-02-15 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_get_wstr 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> + +@@ -80,36 +80,36 @@ + <STRONG>o</STRONG> always terminates the string with a null wide character (after any + <EM>WEOF</EM>); + +- <STRONG>o</STRONG> interprets the screen's erase and kill characters (see ++ <STRONG>o</STRONG> interprets the screen's wide erase and wide kill characters (see + <STRONG><A HREF="curs_termattrs.3x.html">erasewchar(3x)</A></STRONG> and <STRONG><A HREF="curs_termattrs.3x.html">killwchar(3x)</A></STRONG>); + + <STRONG>o</STRONG> recognizes function keys only if the screen's keypad option is + enabled (see <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG>); + + <STRONG>o</STRONG> treats the function keys <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> the same as the +- erase character; and ++ wide erase character; and + +- <STRONG>o</STRONG> discards function key inputs other than those treated as the erase +- character, calling <STRONG><A HREF="curs_beep.3x.html">beep(3x)</A></STRONG>. ++ <STRONG>o</STRONG> discards function key inputs other than those treated as the wide ++ erase or wide kill characters, calling <STRONG><A HREF="curs_beep.3x.html">beep(3x)</A></STRONG>. + +- The erase character replaces the character at the end of the buffer +- with a null wide character, while the kill character does the same for +- the entire buffer. ++ The wide erase character replaces the character at the end of the ++ buffer with a null wide character, while the wide kill character does ++ the same for the entire buffer. + + If the screen's echo option is enabled (see <STRONG><A HREF="curs_inopts.3x.html">echo(3x)</A></STRONG>), <STRONG>wget_wstr</STRONG> + updates <EM>win</EM> with <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>. Further, + +- <STRONG>o</STRONG> the erase character and its function key synonyms move the cursor +- to the left, and ++ <STRONG>o</STRONG> the wide erase character and its function key synonyms move the ++ cursor to the left, and + +- <STRONG>o</STRONG> the kill character returns the cursor to where it was located when +- <STRONG>wget_wstr</STRONG> was called. ++ <STRONG>o</STRONG> the wide kill character returns the cursor to where it was located ++ when <STRONG>wget_wstr</STRONG> was called. + + <STRONG>wgetn_wstr</STRONG> is similar, but reads at most <EM>n</EM> wide characters, aiding the +- application to avoid overrunning the buffer to which <EM>wstr</EM> points. An +- attempt to input more than <EM>n</EM> wide characters (other than the +- terminating line feed or carriage return) is ignored with a beep. If <EM>n</EM> +- is negative, <STRONG>wgetn_wstr</STRONG> reads up to <EM>LINE</EM><STRONG>_</STRONG><EM>MAX</EM> wide characters (see ++ application to avoid overrunning the buffer to which <EM>wstr</EM> points. ++ <EM>curses</EM> ignores an attempt to input more than <EM>n</EM> wide characters (other ++ than the terminating line feed or carriage return), calling <STRONG><A HREF="curs_beep.3x.html">beep(3x)</A></STRONG>. ++ If <EM>n</EM> is negative, <STRONG>wgetn_wstr</STRONG> reads up to <EM>LINE</EM><STRONG>_</STRONG><EM>MAX</EM> wide characters (see + <STRONG>sysconf(3)</STRONG>). + + <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of these functions. +@@ -118,36 +118,41 @@ + </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>, they return <STRONG>ERR</STRONG> if ++ In <EM>ncurses</EM>, these functions fail if + +- <STRONG>o</STRONG> <EM>win</EM> is <EM>NULL</EM>, or ++ <STRONG>o</STRONG> the <EM>curses</EM> screen has not been initialized, + +- <STRONG>o</STRONG> if an internal <STRONG><A HREF="curs_get_wch.3x.html">wget_wch(3x)</A></STRONG> call fails. ++ <STRONG>o</STRONG> (for functions taking a <EM>WINDOW</EM> pointer argument) <EM>win</EM> is a null ++ pointer, + +- Functions prefixed with "mv" first perform cursor movement and fail if ++ <STRONG>o</STRONG> <EM>str</EM> is a null pointer, or ++ ++ <STRONG>o</STRONG> an internal <STRONG><A HREF="curs_get_wch.3x.html">wget_wch(3x)</A></STRONG> call fails. ++ ++ 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 of these functions except <STRONG>wgetn_wstr</STRONG> may be implemented as macros. + +- Reading input that overruns the buffer pointed to by <EM>wstr</EM> causes +- undefined results. Use the <STRONG>n</STRONG>-infixed functions, and allocate ++ Reading input that overruns the buffer pointed to by <EM>wstr</EM> causes ++ undefined results. Use the <STRONG>n</STRONG>-infixed functions, and allocate + sufficient storage for <EM>wstr</EM> -- at least <EM>n</EM>+1 times <STRONG>sizeof(wchar_t)</STRONG>. + +- These functions cannot store a <STRONG>KEY_</STRONG> value in <EM>wstr</EM> because there is no ++ These functions cannot store a <STRONG>KEY_</STRONG> value in <EM>wstr</EM> because there is no + way to distinguish it from a valid <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> value. + +- While these functions conceptually implement a series of calls to +- <STRONG>wget_wch</STRONG>, they also temporarily change properties of the <EM>curses</EM> screen +- to permit simple editing of the input buffer. Each function saves the +- screen's state, calls <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG>, and, if the screen was in canonical +- ("cooked") mode, <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG>. Before returning, it restores the saved +- screen state. Other implementations differ in detail, affecting which +- control characters they can accept in the buffer; see section ++ While these functions conceptually implement a series of calls to ++ <STRONG>wget_wch</STRONG>, they also temporarily change properties of the <EM>curses</EM> screen ++ to permit simple editing of the input buffer. Each function saves the ++ screen's state, calls <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG>, and, if the screen was in canonical ++ ("cooked") mode, <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG>. Before returning, it restores the saved ++ screen state. Other implementations differ in detail, affecting which ++ control characters they can accept in the buffer; see section + "PORTABILITY" below. + +- Unlike <STRONG><A HREF="curs_getstr.3x.html">getstr(3x)</A></STRONG> and related functions of <EM>ncurses</EM>'s non-wide API, ++ Unlike <STRONG><A HREF="curs_getstr.3x.html">getstr(3x)</A></STRONG> and related functions of <EM>ncurses</EM>'s non-wide API, + these functions do not return <STRONG>KEY_RESIZE</STRONG> if a <EM>SIGWINCH</EM> event interrupts + the function. + +@@ -164,75 +169,75 @@ + X/Open Curses Issue 4 describes these functions. It specifies no error + conditions for them. + +- Issue 4 documented these functions as passing an array of <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>, but +- that was an error, conflicting with the following language in the ++ Issue 4 documented these functions as passing an array of <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>, but ++ that was an error, conflicting with the following language in the + standard. + +- The effect of <EM>get</EM><STRONG>_</STRONG><EM>wstr</EM>() is as though a series of calls to +- <EM>get</EM><STRONG>_</STRONG><EM>wch</EM>() were made, until a newline character, end-of-line ++ The effect of <EM>get</EM><STRONG>_</STRONG><EM>wstr</EM>() is as though a series of calls to ++ <EM>get</EM><STRONG>_</STRONG><EM>wch</EM>() were made, until a newline character, end-of-line + character, or end-of-file character is processed. + +- <EM>get</EM><STRONG>_</STRONG><EM>wch</EM> can return a negative value (<EM>WEOF</EM>), but <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> is a unsigned +- type. All of the vendors implement these functions using <EM>wint</EM><STRONG>_</STRONG><EM>t</EM>, ++ <EM>get</EM><STRONG>_</STRONG><EM>wch</EM> can return a negative value (<EM>WEOF</EM>), but <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> is a unsigned ++ type. All of the vendors implement these functions using <EM>wint</EM><STRONG>_</STRONG><EM>t</EM>, + following the Issue 7 standard. + +- X/Open Curses Issue 7 is unclear whether the terminating null wide +- character counts toward the length parameter <EM>n</EM>. A similar issue +- affected <EM>wgetnstr</EM> in Issue 4, Version 2; Issue 7 revised that +- function's description to address the issue, but not that of ++ X/Open Curses Issue 7 is unclear whether the terminating null wide ++ character counts toward the length parameter <EM>n</EM>. A similar issue ++ affected <EM>wgetnstr</EM> in Issue 4, Version 2; Issue 7 revised that ++ function's description to address the issue, but not that of + <EM>wget</EM><STRONG>_</STRONG><EM>nwstr</EM>, leaving it ambiguous. <EM>ncurses</EM> counts the terminator in the + length. + +- X/Open Curses does not specify what happens if the length <EM>n</EM> is ++ X/Open Curses does not specify what happens if the length <EM>n</EM> is + negative. + +- <STRONG>o</STRONG> For consistency with <EM>wgetnstr</EM>, <EM>ncurses</EM> 6.2 uses a limit based on ++ <STRONG>o</STRONG> For consistency with <EM>wgetnstr</EM>, <EM>ncurses</EM> 6.2 uses a limit based on + <EM>LINE</EM><STRONG>_</STRONG><EM>MAX</EM>. + +- <STRONG>o</STRONG> Some other implementations (such as Solaris <EM>xcurses</EM>) do the same, ++ <STRONG>o</STRONG> Some other implementations (such as Solaris <EM>xcurses</EM>) do the same, + while others (<EM>PDCurses</EM>) do not permit a negative <EM>n</EM>. + +- <STRONG>o</STRONG> NetBSD 7 <EM>curses</EM> imitates <EM>ncurses</EM> 6.1 and earlier, treating a ++ <STRONG>o</STRONG> NetBSD 7 <EM>curses</EM> imitates <EM>ncurses</EM> 6.1 and earlier, treating a + negative <EM>n</EM> as an unbounded count of wide characters. + + Implementations vary in their handling of input control characters. + + <STRONG>o</STRONG> While they may enable the screen's echo option, some do not take it +- out of raw mode, and may take cbreak mode into account when +- deciding whether to handle echoing within <EM>wgetn</EM><STRONG>_</STRONG><EM>wstr</EM> or to rely on ++ out of raw mode, and may take cbreak mode into account when ++ deciding whether to handle echoing within <EM>wgetn</EM><STRONG>_</STRONG><EM>wstr</EM> or to rely on + it as a side effect of calling <EM>wget</EM><STRONG>_</STRONG><EM>wch</EM>. + +- Since 1995, <EM>ncurses</EM> has provided handlers for <EM>SIGINTR</EM> and <EM>SIGQUIT</EM> +- events, which are typically generated at the keyboard with <STRONG>^C</STRONG> and ++ Since 1995, <EM>ncurses</EM> has provided handlers for <EM>SIGINTR</EM> and <EM>SIGQUIT</EM> ++ events, which are typically generated at the keyboard with <STRONG>^C</STRONG> and + <STRONG>^\</STRONG> respectively. In cbreak mode, those handlers catch a signal and +- stop the program, whereas other implementations write those ++ stop the program, whereas other implementations write those + characters into the buffer. + +- <STRONG>o</STRONG> Starting with <EM>ncurses</EM> 6.3 (2021), <EM>wgetn</EM><STRONG>_</STRONG><EM>wstr</EM> preserves raw mode if +- the screen was already in that state, allowing one to enter the +- characters the terminal interprets as interrupt and quit events ++ <STRONG>o</STRONG> Starting with <EM>ncurses</EM> 6.3 (2021), <EM>wgetn</EM><STRONG>_</STRONG><EM>wstr</EM> preserves raw mode if ++ the screen was already in that state, allowing one to enter the ++ characters the terminal interprets as interrupt and quit events + into the buffer, for consistency with SVr4 <EM>curses</EM>'s <EM>wgetnstr</EM>. + + + </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> +- X/Open Curses Issue 4 (1995) initially specified these functions. The +- System V Interface Definition Version 4 of the same year specified ++ X/Open Curses Issue 4 (1995) initially specified these functions. The ++ System V Interface Definition Version 4 of the same year specified + functions named <EM>wgetwstr</EM> and <EM>wgetnwstr</EM> (and the usual variants). These + were later additions to SVr4.<EM>x</EM>, not appearing in the first SVr4 (1989). +- Except in name, their declarations did not differ from X/Open's later +- <EM>wget</EM><STRONG>_</STRONG><EM>wstr</EM> and <EM>wgetn</EM><STRONG>_</STRONG><EM>wstr</EM> until X/Open Curses Issue 7 (2009) eventually ++ Except in name, their declarations did not differ from X/Open's later ++ <EM>wget</EM><STRONG>_</STRONG><EM>wstr</EM> and <EM>wgetn</EM><STRONG>_</STRONG><EM>wstr</EM> until X/Open Curses Issue 7 (2009) eventually + changed the type of the buffer argument to a pointer to <EM>wint</EM><STRONG>_</STRONG><EM>t</EM>. + + + </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE> +- <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library ++ <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(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_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> + + + +-ncurses 6.5 2025-02-15 <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_getch.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_getch.3x.html 2025-03-15 22:08:52.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_getch.3x.html 2025-04-05 22:33:03.000000000 +0000 +@@ -28,19 +28,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_getch.3x,v 1.121 2025/03/15 22:04:20 tom Exp @ ++ * @Id: curs_getch.3x,v 1.127 2025/04/05 22:04:30 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 2025-03-15 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_getch 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_getch 3x 2025-03-15 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_getch 3x 2025-04-05 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> + +@@ -111,24 +111,26 @@ + + + </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 +- (those corresponding to the ECMA-6 character set--see +- <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 +- multiple <STRONG>wgetch</STRONG> calls. ++ Call <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG> on a window to configure keypad mode when reading input ++ from it. In <EM>keypad</EM> <EM>mode</EM>, <EM>curses</EM> treats 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) 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 a window is in keypad mode, <STRONG>wgetch</STRONG> ++ translates these key strokes to a numeric code corresponding to the ++ <STRONG>KEY_</STRONG> symbols listed in subsection "Predefined Key Codes" below. If a ++ window is not in keypad mode, <STRONG>wgetch</STRONG> returns a sequence of codes ++ typically starting with the escape character, which the application ++ must collect individually 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 +- outside the range of eight-bit character codes. ++ whose names begin with <STRONG>KEY_</STRONG>; these object-like macros have integer ++ 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 +- values outside the range of eight-bit codes. ++ integer values outside the range of eight-bit character codes. + + A variable intended to hold a function key code must thus be of type + <EM>short</EM> or larger. +@@ -146,27 +148,28 @@ + to the unique sequence defined by the terminal. + + <STRONG>o</STRONG> If the escape sequence matches no function keys defined for the +- terminal type, <STRONG>wgetch</STRONG> returns the code of the last (most recent) +- character it has read. ++ terminal type, call <STRONG>wgetch</STRONG> repeatedly to obtain the codes of the ++ individual characters of the sequence, in the order they occurred ++ in the input. + + <STRONG>o</STRONG> If <STRONG>wgetch</STRONG> cannot decide the validity of the input as a function key +- because it has not read enough characters to disambiguate it, the +- function waits until it has this information or the <EM>escape</EM> <EM>delay</EM>, +- configured by the global variable <EM>ESCDELAY</EM> (an extension; see +- section "EXTENSIONS" below) or the environment variable of the same +- name (see section "ENVIRONMENT" of <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>), also an extension, +- elapses. +- +- Consequently, a user of a <EM>curses</EM> application that employs keypad mode +- may experience a pause or "hang" after the escape key is pressed while +- <EM>curses</EM> collects sufficient characters to disambiguate the input. If +- the window is in "no time-out" mode, the escape delay is effectively +- infinite; see <STRONG><A HREF="notimeout.3x.html">notimeout(3x)</A></STRONG>. In the event of such a pause, further ++ because it has not read enough characters to disambiguate it, the ++ function waits until it has this information or the <EM>escape</EM> <EM>delay</EM> ++ elapses. Configure the escape delay with the global variable ++ <EM>ESCDELAY</EM>, an extension (see section "EXTENSIONS" below), or the ++ environment variable of the same name (see section "ENVIRONMENT" of ++ <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>), also an extension. ++ ++ Consequently, a user of a <EM>curses</EM> application that employs keypad mode ++ may experience a pause or "hang" after pressing the escape key while ++ <EM>curses</EM> collects sufficient characters to disambiguate the input. If ++ the window is in "no time-out" mode, the escape delay is effectively ++ infinite; see <STRONG><A HREF="notimeout.3x.html">notimeout(3x)</A></STRONG>. In the event of such a pause, 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 ++ <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 + screen. + +@@ -174,16 +177,16 @@ + </PRE><H3><a name="h3-Predefined-Key-Codes">Predefined Key Codes</a></H3><PRE> + The header file <EM>curses.h</EM> defines the following function key codes. + +- <STRONG>o</STRONG> Except for the special case of <STRONG>KEY_RESIZE</STRONG>, a window's keypad mode ++ <STRONG>o</STRONG> Except for the special case of <STRONG>KEY_RESIZE</STRONG>, a window's keypad mode + must be enabled for <STRONG>wgetch</STRONG> to read these codes from it. + +- <STRONG>o</STRONG> Not all of these are necessarily supported on any particular ++ <STRONG>o</STRONG> Not all of these are necessarily supported on any particular + terminal. + +- <STRONG>o</STRONG> The naming convention may seem obscure, with some apparent +- misspellings (such as "RSUME" for "resume"); the names correspond +- to the <EM>terminfo</EM> capability names for the keys, and were +- standardized before the IBM PC/AT keyboard layout achieved a ++ <STRONG>o</STRONG> The naming convention may seem obscure, with some apparent ++ misspellings (such as "RSUME" for "resume"); the names correspond ++ to the <EM>terminfo</EM> capability names for the keys, and were ++ standardized before the IBM PC/AT keyboard layout achieved a + dominant position in industry. + + <STRONG>Symbol</STRONG> <STRONG>Key</STRONG> <STRONG>name</STRONG> +@@ -245,10 +248,10 @@ + <STRONG>KEY_REFERENCE</STRONG> Ref(erence) key + <STRONG>KEY_REFRESH</STRONG> Refresh key + <STRONG>KEY_REPLACE</STRONG> Replace key ++ + <STRONG>KEY_RESIZE</STRONG> Screen resized + <STRONG>KEY_RESTART</STRONG> Restart key + <STRONG>KEY_RESUME</STRONG> Resume key +- + <STRONG>KEY_SAVE</STRONG> Save key + <STRONG>KEY_SELECT</STRONG> Select key + <STRONG>KEY_SUSPEND</STRONG> Suspend key +@@ -292,105 +295,113 @@ + +-----+------+-------+ + | C1 | down | C3 | + +-----+------+-------+ +- Two of the symbols in the list above do <EM>not</EM> correspond to a physical ++ Two of the symbols in the list above do <EM>not</EM> correspond to a physical + key. + +- <STRONG>o</STRONG> <STRONG>wgetch</STRONG> returns <STRONG>KEY_RESIZE</STRONG>, even if the window's keypad mode is ++ <STRONG>o</STRONG> <STRONG>wgetch</STRONG> returns <STRONG>KEY_RESIZE</STRONG>, even if the window's keypad mode is + disabled, if <EM>ncurses</EM> has handled a <STRONG>SIGWINCH</STRONG> signal since <STRONG>wgetch</STRONG> was + called; see <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> and <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>. + +- <STRONG>o</STRONG> <STRONG>wgetch</STRONG> returns <STRONG>KEY_MOUSE</STRONG> to indicate that a mouse event is pending +- collection; see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>. Receipt of this code requires a +- window's keypad mode to be enabled, because to interpret mouse +- input (as with <STRONG>xterm(1)</STRONG>'s mouse protocol), <EM>ncurses</EM> must read an ++ <STRONG>o</STRONG> <STRONG>wgetch</STRONG> returns <STRONG>KEY_MOUSE</STRONG> to indicate that a mouse event is pending ++ collection; see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>. Receipt of this code requires a ++ window's keypad mode to be enabled, because to interpret mouse ++ input (as with <STRONG>xterm(1)</STRONG>'s mouse protocol), <EM>ncurses</EM> must read an + escape sequence, as with a function key. + + + </PRE><H3><a name="h3-Testing-Key-Codes">Testing Key Codes</a></H3><PRE> +- In <EM>ncurses</EM>, <STRONG>has_key</STRONG> returns a Boolean value indicating whether the +- terminal type recognizes its parameter as a key code value. See also ++ In <EM>ncurses</EM>, <STRONG>has_key</STRONG> returns a Boolean value indicating whether the ++ terminal type recognizes its parameter as a key code value. See also + <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> and <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>. + + + </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE> + <STRONG>wgetch</STRONG> returns a key code identifying the key event as described above, + which may include <STRONG>KEY_RESIZE</STRONG> or <STRONG>KEY_MOUSE</STRONG> indicating non-key events, or +- <STRONG>ERR</STRONG> on failure. <STRONG>wgetch</STRONG> fails if ++ <STRONG>ERR</STRONG> on failure. <STRONG>wgetch</STRONG> fails if its timeout expires without any data ++ arriving, which cannot happen if <STRONG><A HREF="nodelay.3x.html">nodelay(3x)</A></STRONG> is in effect on the ++ window. ++ ++ In <EM>ncurses</EM>, <STRONG>wgetch</STRONG> also fails if + +- <STRONG>o</STRONG> its timeout expires without any data arriving, or ++ <STRONG>o</STRONG> the <EM>curses</EM> screen has not been initialized, ++ ++ <STRONG>o</STRONG> (for functions taking a <EM>WINDOW</EM> pointer argument) <EM>win</EM> is a null ++ pointer, or + + <STRONG>o</STRONG> execution was interrupted by a signal, in which case <EM>errno</EM> is set + to <EM>EINTR</EM>. + +- <STRONG>ungetch</STRONG> returns <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure. <STRONG>ungetch</STRONG> fails if +- there is no more room in the input queue. ++ 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>ungetch</STRONG> returns <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure. In <EM>ncurses</EM>, <STRONG>ungetch</STRONG> ++ fails if + +- <STRONG>has_key</STRONG> returns <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>. ++ <STRONG>o</STRONG> the <EM>curses</EM> screen has not been initialized, or + +- Functions taking a <EM>WINDOW</EM> pointer argument fail if <EM>win</EM> is a null +- pointer. ++ <STRONG>o</STRONG> there is no more room in the input queue. + +- 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>has_key</STRONG> returns <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>. + + + </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> + <STRONG>getch</STRONG>, <STRONG>mvgetch</STRONG>, and <STRONG>mvwgetch</STRONG> may be implemented as macros. + +- <EM>curses</EM> discourages assignment of the ESC key to a discrete function by ++ <EM>curses</EM> discourages assignment of the ESC key to a discrete function by + the programmer because the library requires a delay while it awaits the + potential remainder of a terminal escape sequence. + +- Some key strokes are indistinguishable from control characters; for +- example, <STRONG>KEY_ENTER</STRONG> may be the same as <STRONG>^M</STRONG>, and <STRONG>KEY_BACKSPACE</STRONG> may be the +- same as <STRONG>^H</STRONG> or <STRONG>^?</STRONG>. Consult the <EM>terminfo</EM> entry for the terminal type to +- determine whether this is the case; see <STRONG><A HREF="infocmp.1m.html">infocmp(1)</A></STRONG>. Some <EM>curses</EM> ++ Some key strokes are indistinguishable from control characters; for ++ example, <STRONG>KEY_ENTER</STRONG> may be the same as <STRONG>^M</STRONG>, and <STRONG>KEY_BACKSPACE</STRONG> may be the ++ same as <STRONG>^H</STRONG> or <STRONG>^?</STRONG>. Consult the <EM>terminfo</EM> entry for the terminal type to ++ determine whether this is the case; see <STRONG><A HREF="infocmp.1m.html">infocmp(1)</A></STRONG>. Some <EM>curses</EM> + implementations, including <EM>ncurses</EM>, honor the <EM>terminfo</EM> key definitions; + others treat such control characters specially. + +- <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, ++ <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, + 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 ++ <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 + similar) keypad. + + <STRONG>o</STRONG> "Enter or send" is X/Open Curses's description of this key. + +- <EM>curses</EM> treats the Enter or Return key in the <EM>alphabetic</EM> section of the ++ <EM>curses</EM> treats the Enter or Return key in the <EM>alphabetic</EM> section of the + keyboard differently. + + <STRONG>o</STRONG> It usually produces a control code for carriage return (<STRONG>^M</STRONG>) or line + feed (<STRONG>^J</STRONG>). + +- <STRONG>o</STRONG> Depending on the terminal mode (raw, cbreak, or canonical), and +- whether <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> or <STRONG><A HREF="curs_inopts.3x.html">nonl(3x)</A></STRONG> has been called, <STRONG>wgetch</STRONG> may return +- either a carriage return or line feed upon an Enter or Return key ++ <STRONG>o</STRONG> Depending on the terminal mode (raw, cbreak, or canonical), and ++ whether <STRONG><A HREF="curs_inopts.3x.html">nl(3x)</A></STRONG> or <STRONG><A HREF="curs_inopts.3x.html">nonl(3x)</A></STRONG> has been called, <STRONG>wgetch</STRONG> may return ++ either a carriage return or line feed upon an Enter or Return key + stroke. + +- Use of <STRONG>wgetch</STRONG> with <STRONG><A HREF="curs_inopts.3x.html">echo(3x)</A></STRONG> and neither <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG> nor <STRONG><A HREF="curs_inopts.3x.html">raw(3x)</A></STRONG> is not ++ Use of <STRONG>wgetch</STRONG> with <STRONG><A HREF="curs_inopts.3x.html">echo(3x)</A></STRONG> and neither <STRONG><A HREF="curs_inopts.3x.html">cbreak(3x)</A></STRONG> nor <STRONG><A HREF="curs_inopts.3x.html">raw(3x)</A></STRONG> is not + well-defined. + +- Historically, the list of key code macros above was influenced by the +- keyboard of the AT&T 7300 (also known variously as the "3B1", "Safari +- 4", and "UNIX PC"), a 1985 machine rich in function keys. Today's +- computer keyboards are based on that of the IBM PC/AT and tend to have ++ Historically, the list of key code macros above was influenced by the ++ keyboard of the AT&T 7300 (also known variously as the "3B1", "Safari ++ 4", and "UNIX PC"), a 1985 machine rich in function keys. Today's ++ computer keyboards are based on that of the IBM PC/AT and tend to have + fewer. A <EM>curses</EM> application can expect such a keyboard to transmit key +- codes <STRONG>KEY_UP</STRONG>, <STRONG>KEY_DOWN</STRONG>, <STRONG>KEY_LEFT</STRONG>, <STRONG>KEY_RIGHT</STRONG>, <STRONG>KEY_HOME</STRONG>, <STRONG>KEY_END</STRONG>, +- <STRONG>KEY_PPAGE</STRONG> (Page Up), <STRONG>KEY_NPAGE</STRONG> (Page Down), <STRONG>KEY_IC</STRONG> (Insert), <STRONG>KEY_DC</STRONG> ++ codes <STRONG>KEY_UP</STRONG>, <STRONG>KEY_DOWN</STRONG>, <STRONG>KEY_LEFT</STRONG>, <STRONG>KEY_RIGHT</STRONG>, <STRONG>KEY_HOME</STRONG>, <STRONG>KEY_END</STRONG>, ++ <STRONG>KEY_PPAGE</STRONG> (Page Up), <STRONG>KEY_NPAGE</STRONG> (Page Down), <STRONG>KEY_IC</STRONG> (Insert), <STRONG>KEY_DC</STRONG> + (Delete), <STRONG>KEY_A1</STRONG>, <STRONG>KEY_A3</STRONG>, <STRONG>KEY_B2</STRONG>, <STRONG>KEY_C1</STRONG>, <STRONG>KEY_C3</STRONG>, and <STRONG>KEY_F(</STRONG><EM>n</EM><STRONG>)</STRONG> for 1 <= + <EM>n</EM> <= 12. + + + </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE> + In <EM>ncurses</EM>, when a window's "no time-out" mode is <EM>not</EM> set, the <STRONG>ESCDELAY</STRONG> +- variable configures the duration of the timer used to disambiguate a +- function key character sequence from a series of key strokes beginning ++ variable configures the duration of the timer used to disambiguate a ++ 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> is an <EM>ncurses</EM> extension, and is not found in SVr4 <EM>curses</EM>, ++ <STRONG>has_key</STRONG> is an <EM>ncurses</EM> extension, and is not found in SVr4 <EM>curses</EM>, + 4.4BSD <EM>curses</EM>, or any other previous <EM>curses</EM> implementation. + + +@@ -398,32 +409,32 @@ + Applications employing <EM>ncurses</EM> extensions should condition their use on + the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro. + +- Except as noted in section "EXTENSIONS" above, X/Open Curses Issue 4 ++ Except as noted in section "EXTENSIONS" above, X/Open Curses Issue 4 + describes these functions. It specifies no error conditions for them. + +- SVr4 describes a successful return value only as "an integer value ++ SVr4 describes a successful return value only as "an integer value + other than <EM>ERR</EM>". + + <EM>wgetch</EM> reads only single-byte characters. + +- The echo behavior of these functions on input of <EM>KEY</EM><STRONG>_</STRONG> or backspace ++ The echo behavior of these functions on input of <EM>KEY</EM><STRONG>_</STRONG> or backspace + characters is not documented in SVr4 <EM>curses</EM>. + +- The behavior of <EM>wgetch</EM> in the presence of signal handlers is not +- documented in SVr4 <EM>curses</EM> and is unspecified by 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 interrupted a ++ The behavior of <EM>wgetch</EM> in the presence of signal handlers is not ++ documented in SVr4 <EM>curses</EM> and is unspecified by 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 interrupted a + <STRONG>read(2)</STRONG> call in progress, and also (in some implementations) whether an +- input timeout or non-blocking mode had been set. A portable <EM>curses</EM> +- application prepares for two cases: (a) signal receipt does not ++ input timeout or non-blocking mode had been set. A portable <EM>curses</EM> ++ application prepares for two cases: (a) signal receipt does not + interrupt <EM>wgetch</EM>; or (b) signal receipt interrupts <EM>wgetch</EM> and causes it + to return <EM>ERR</EM> with <EM>errno</EM> set to <EM>EINTR</EM>. + + <EM>KEY</EM><STRONG>_</STRONG><EM>MOUSE</EM> is mentioned in X/Open Curses, along with a few related <EM>term-</EM> +- <EM>info</EM> capabilities, but no higher-level functions use the feature. The ++ <EM>info</EM> capabilities, but no higher-level functions use the feature. The + implementation in <EM>ncurses</EM> is an extension. + +- <EM>KEY</EM><STRONG>_</STRONG><EM>RESIZE</EM> and <EM>has</EM><STRONG>_</STRONG><EM>key</EM> are extensions first implemented for <EM>ncurses</EM>. ++ <EM>KEY</EM><STRONG>_</STRONG><EM>RESIZE</EM> and <EM>has</EM><STRONG>_</STRONG><EM>key</EM> are extensions first implemented for <EM>ncurses</EM>. + By 2022, <EM>PDCurses</EM> and NetBSD <EM>curses</EM> had added them along with + <EM>KEY</EM><STRONG>_</STRONG><EM>MOUSE</EM>. + +@@ -431,26 +442,28 @@ + </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> + 4BSD (1980) introduced <EM>wgetch</EM> and its variants. + +- <EM>ncurses</EM> 1.9.9g (1996) added <EM>has</EM><STRONG>_</STRONG><EM>key</EM>. ++ SVr3 (1987) added <EM>ungetch</EM>. ++ ++ <EM>ncurses</EM> 1.9.9g (1996) furnished the <EM>has</EM><STRONG>_</STRONG><EM>key</EM> extension. + + + </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE> +- ECMA-6 "7-bit coded Character Set" <https://ecma-international.org/ ++ ECMA-6 "7-bit coded Character Set" <https://ecma-international.org/ + publications-and-standards/standards/ecma-6/> + +- ECMA-48 "Control Functions for Coded Character Sets" <https:// ++ ECMA-48 "Control Functions for Coded Character Sets" <https:// + ecma-international.org/publications-and-standards/standards/ecma-48/> + +- <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library ++ <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> describes comparable functions of the <EM>ncurses</EM> library + in its wide-character configuration (<EM>ncursesw</EM>). + +- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>, +- <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>, ++ <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, + <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>, <STRONG>ascii(7)</STRONG> + + + +-ncurses 6.5 2025-03-15 <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <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-20250329+/doc/html/man/curs_getstr.3x.html 2025-02-02 00:43:57.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_getstr.3x.html 2025-04-05 22:33:03.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_getstr.3x,v 1.85 2025/02/01 22:49:13 tom Exp @ ++ * @Id: curs_getstr.3x,v 1.89 2025/04/05 22:07:21 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 2025-02-01 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_getstr 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_getstr 3x 2025-02-01 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_getstr 3x 2025-04-05 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> + +@@ -85,7 +85,7 @@ + erase character; and + + <STRONG>o</STRONG> discards function key inputs other than those treated as the erase +- character, calling <STRONG><A HREF="curs_beep.3x.html">beep(3x)</A></STRONG>. ++ or kill characters, calling <STRONG><A HREF="curs_beep.3x.html">beep(3x)</A></STRONG>. + + The erase character replaces the character at the end of the buffer + with a null character, while the kill character does the same for the +@@ -101,10 +101,11 @@ + <STRONG>wgetstr</STRONG> was called. + + <STRONG>wgetnstr</STRONG> is similar, but reads at most <EM>n</EM> characters, aiding the +- application to avoid overrunning the buffer to which <EM>str</EM> points. An +- attempt to input more than <EM>n</EM> characters (other than the terminating +- line feed or carriage return) is ignored with a beep. If <EM>n</EM> is +- negative, <STRONG>wgetn_wstr</STRONG> reads up to <EM>LINE</EM><STRONG>_</STRONG><EM>MAX</EM> characters (see <STRONG>sysconf(3)</STRONG>). ++ application to avoid overrunning the buffer to which <EM>str</EM> points. ++ <EM>curses</EM> ignores an attempt to input more than <EM>n</EM> characters (other than ++ the terminating line feed or carriage return), calling <STRONG><A HREF="curs_beep.3x.html">beep(3x)</A></STRONG>. If <EM>n</EM> ++ is negative, <STRONG>wgetn_wstr</STRONG> reads up to <EM>LINE</EM><STRONG>_</STRONG><EM>MAX</EM> characters (see ++ <STRONG>sysconf(3)</STRONG>). + + <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> describes the variants of these functions. + +@@ -112,11 +113,16 @@ + </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>, they return <STRONG>ERR</STRONG> if ++ In <EM>ncurses</EM>, these functions fail if + +- <STRONG>o</STRONG> <EM>win</EM> is <EM>NULL</EM>, or ++ <STRONG>o</STRONG> the <EM>curses</EM> screen has not been initialized, + +- <STRONG>o</STRONG> if an internal <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> call fails. ++ <STRONG>o</STRONG> (for functions taking a <EM>WINDOW</EM> pointer argument) <EM>win</EM> is a null ++ pointer, ++ ++ <STRONG>o</STRONG> <EM>str</EM> is a null pointer, or ++ ++ <STRONG>o</STRONG> an internal <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> call fails. + + Further, in <EM>ncurses</EM>, these functions return <STRONG>KEY_RESIZE</STRONG> if a <EM>SIGWINCH</EM> + event interrupts the function. +@@ -266,7 +272,7 @@ + + + +-ncurses 6.5 2025-02-01 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_inopts.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_inopts.3x.html 2025-03-15 22:08:52.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_inopts.3x.html 2025-04-05 22:33:04.000000000 +0000 +@@ -28,19 +28,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_inopts.3x,v 1.102 2025/03/15 21:11:52 tom Exp @ ++ * @Id: curs_inopts.3x,v 1.104 2025/04/05 22:07:49 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_inopts 3x 2025-03-15 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_inopts 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_inopts 3x 2025-03-15 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_inopts 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> + +@@ -292,7 +292,7 @@ + describe two related but distinct aspects of input handling, at the + risk of confusing the user. The functions <STRONG>halfdelay</STRONG>, <STRONG>nodelay</STRONG>, <STRONG>timeout</STRONG>, + and <STRONG>wtimeout</STRONG> configure whether the input character reading function +- (<STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG> or <STRONG><A HREF="curs_get_wch.3x.html">get_wch(3x)</A></STRONG>) waits for keyboard input to begin, and for ++ (<STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> or <STRONG><A HREF="curs_get_wch.3x.html">wget_wch(3x)</A></STRONG>) waits for keyboard input to begin, and for + how long. <STRONG>keypad</STRONG> configures whether that function waits for further + input if the first character it reads is ESC. Calling <STRONG>notimeout</STRONG>, which + has nothing to do with <STRONG>timeout</STRONG> or <STRONG>wtimeout</STRONG>, makes this delay in +@@ -409,7 +409,7 @@ + + + +-ncurses 6.5 2025-03-15 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_mouse.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_mouse.3x.html 2025-03-01 22:03:51.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_mouse.3x.html 2025-04-05 22:33:04.000000000 +0000 +@@ -28,19 +28,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_mouse.3x,v 1.123 2025/03/01 21:33:30 tom Exp @ ++ * @Id: curs_mouse.3x,v 1.126 2025/04/05 22:08:22 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 2025-03-01 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_mouse 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_mouse 3x 2025-03-01 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_mouse 3x 2025-04-05 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> + +@@ -98,9 +98,9 @@ + bit set indicating the event type. + + <EM>ncurses</EM> ignores mouse events when input is in canonical ("cooked") +- mode, and produces an error beep when canonical mode is simulated in a +- window by a function such as <STRONG><A HREF="curs_getstr.3x.html">getstr(3x)</A></STRONG> that expects a linefeed to +- terminate its input loop. ++ mode, and produces an error beep when they occur while the library ++ simulates canonical mode in a window, as with <STRONG><A HREF="curs_getstr.3x.html">getstr(3x)</A></STRONG>, which expects ++ a line feed to terminate its input loop. + + + </PRE><H3><a name="h3-has_mouse">has_mouse</a></H3><PRE> +@@ -233,18 +233,17 @@ + events separated by more than the mouse interval as a "long press", or, + with motion, as a "drag". + +- Calling <STRONG>mouseinterval(0)</STRONG> disables click resolution. When <EM>ncurses</EM> +- detects a mouse event, it awaits further input activity up to this +- interval, and then checks for a subsequent mouse event which can be +- combined with the first event. If the timeout expires without input +- activity (which would happen with a zero interval), then no click +- resolution occurs. ++ When <EM>ncurses</EM> detects a mouse event, it awaits further input activity up ++ to this interval, and then checks for a subsequent mouse event which ++ can be combined with the first event. If the timeout expires without ++ input activity, then no click resolution occurs. Calling ++ <STRONG>mouseinterval(0)</STRONG> disables click resolution. + +- This function returns the previous interval value. Use ++ <STRONG>mouseinterval</STRONG> returns the previous interval value. Use + <STRONG>mouseinterval(-1)</STRONG> to obtain the interval without altering it. + + The mouse interval is set to one sixth of a second when the +- corresponding screen is initialized, e.g., in <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or ++ corresponding screen is initialized, e.g., in <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or + <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>. + + +@@ -268,16 +267,16 @@ + + <STRONG>mousemask</STRONG> returns the mask of reportable events. + +- <STRONG>mouseinterval</STRONG> returns the previous interval value, unless the terminal +- was not initialized. In that case, it returns the maximum interval ++ <STRONG>mouseinterval</STRONG> returns the previous interval value, unless the terminal ++ was not initialized. In that case, it returns the maximum interval + value (166). + + + </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> +- The order of the <STRONG>MEVENT</STRONG> structure members is not guaranteed. ++ The order of the <STRONG>MEVENT</STRONG> structure members is not guaranteed. + Additional fields may be added to the structure in the future. + +- Under <EM>ncurses</EM>, these calls are implemented using either <EM>xterm</EM>'s built- ++ Under <EM>ncurses</EM>, these calls are implemented using either <EM>xterm</EM>'s built- + in mouse-tracking API or platform-specific drivers including + + <STRONG>o</STRONG> Alessandro Rubini's gpm server +@@ -286,12 +285,12 @@ + + <STRONG>o</STRONG> OS/2 EMX + +- If you are using an unsupported configuration, mouse events are not ++ If you are using an unsupported configuration, mouse events are not + visible to <EM>ncurses</EM> (and the <STRONG>mousemask</STRONG> function always returns <STRONG>0</STRONG>). + +- If the terminal type possesses the (nonstandard) <EM>terminfo</EM> string +- capability <STRONG>XM</STRONG>, <EM>ncurses</EM>'s <EM>xterm</EM> mouse driver uses it when initializing +- the terminal for mouse operation. The default, if <STRONG>XM</STRONG> is not found, ++ If the terminal type possesses the (nonstandard) <EM>terminfo</EM> string ++ capability <STRONG>XM</STRONG>, <EM>ncurses</EM>'s <EM>xterm</EM> mouse driver uses it when initializing ++ the terminal for mouse operation. The default, if <STRONG>XM</STRONG> is not found, + corresponds to private mode 1000 of <EM>xterm</EM>. + + \E[?1000%?%p1%{1}%=%th%el%; +@@ -300,47 +299,47 @@ + + \E[?1006;1000%?%p1%{1}%=%th%el%; + +- The <EM>id</EM> member of the mouse event structure is not presently used; no +- terminal type or operating system interface supports reporting events +- from distinguishable pointing devices. If you synthesize an <EM>MEVENT</EM>, ++ The <EM>id</EM> member of the mouse event structure is not presently used; no ++ terminal type or operating system interface supports reporting events ++ from distinguishable pointing devices. If you synthesize an <EM>MEVENT</EM>, + use an <EM>id</EM> of 0. + + The <EM>z</EM> member of the mouse event structure is not presently used. It is +- intended for use with touch screens (which may be pressure-sensitive) ++ intended for use with touch screens (which may be pressure-sensitive) + or with 3D-mice/trackballs/power gloves. + +- The <STRONG>ALL_MOUSE_EVENTS</STRONG> class does not include <STRONG>REPORT_MOUSE_POSITION</STRONG>. +- They are distinct. For example, in <EM>xterm</EM>, wheel/scrolling mice send +- position reports as a sequence of presses of buttons 4 or 5 without ++ The <STRONG>ALL_MOUSE_EVENTS</STRONG> class does not include <STRONG>REPORT_MOUSE_POSITION</STRONG>. ++ They are distinct. For example, in <EM>xterm</EM>, wheel/scrolling mice send ++ position reports as a sequence of presses of buttons 4 or 5 without + matching button-releases. + + + </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE> +- These functions are <EM>ncurses</EM> extensions, and are not found in SVr4 +- <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous <EM>curses</EM> implementation. +- (SVr4 <EM>curses</EM> did have a <EM>getmouse</EM> function, which took no argument and ++ These functions are <EM>ncurses</EM> extensions, and are not found in SVr4 ++ <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous <EM>curses</EM> implementation. ++ (SVr4 <EM>curses</EM> did have a <EM>getmouse</EM> function, which took no argument and + returned an <EM>unsigned</EM> <EM>long</EM>.) + + + </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE> + Applications employing the <EM>ncurses</EM> mouse extension should condition its +- use on the visibility of the <STRONG>NCURSES_MOUSE_VERSION</STRONG> preprocessor macro. +- When the interface changes, the macro's value increments. Multiple +- versions are available when <EM>ncurses</EM> is configured; see section ++ use on the visibility of the <STRONG>NCURSES_MOUSE_VERSION</STRONG> preprocessor macro. ++ When the interface changes, the macro's value increments. Multiple ++ versions are available when <EM>ncurses</EM> is configured; see section + "ALTERNATE CONFIGURATIONS" of <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>. The following values may be + specified. + + <STRONG>1</STRONG> has definitions for reserved events. The mask uses 28 bits. + +- <STRONG>2</STRONG> adds definitions for button 5, removes the definitions for ++ <STRONG>2</STRONG> adds definitions for button 5, removes the definitions for + reserved events. The mask uses 29 bits. + + + </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> +- SVr4 (1989) added mouse support to its variant of <STRONG>xterm(1)</STRONG>. It is ++ SVr4 (1989) added mouse support to its variant of <STRONG>xterm(1)</STRONG>. It is + mentioned in a few places, with little supporting documentation. + +- <STRONG>o</STRONG> Its "libcurses" manual page lists functions for this feature ++ <STRONG>o</STRONG> Its "libcurses" manual page lists functions for this feature + prototyped in <EM>curses.h</EM>. + + extern int mouse_set(long int); +@@ -359,46 +358,46 @@ + <STRONG>mouse_info</STRONG> <STRONG>minfo</STRONG> <STRONG>Mi</STRONG> Mouse status information + <STRONG>req_mouse_pos</STRONG> <STRONG>reqmp</STRONG> <STRONG>RQ</STRONG> Request mouse position report + +- <STRONG>o</STRONG> The interface made assumptions (as does <EM>ncurses</EM>) about the escape ++ <STRONG>o</STRONG> The interface made assumptions (as does <EM>ncurses</EM>) about the escape + sequences sent to and received from the terminal. + +- For instance, the SVr4 <EM>curses</EM> library used the <STRONG>get_mouse</STRONG> (<STRONG>getm</STRONG>) ++ For instance, the SVr4 <EM>curses</EM> library used the <STRONG>get_mouse</STRONG> (<STRONG>getm</STRONG>) + capability to tell the terminal which mouse button events it should +- send, passing the mouse-button bit mask to the terminal. Also, it +- could ask the terminal where the mouse was using the <STRONG>req_mouse_pos</STRONG> ++ send, passing the mouse-button bit mask to the terminal. Also, it ++ could ask the terminal where the mouse was using the <STRONG>req_mouse_pos</STRONG> + (<STRONG>reqmp</STRONG>) capability. + +- Those features required a terminal program that had been modified ++ Those features required a terminal program that had been modified + to work with SVr4 <EM>curses</EM>. They were not part of the X Consortium's + <EM>xterm</EM>. + +- When developing the <EM>xterm</EM> mouse support for <EM>ncurses</EM> in September 1995, +- Eric Raymond was uninterested in using the same interface due to its ++ When developing the <EM>xterm</EM> mouse support for <EM>ncurses</EM> in September 1995, ++ Eric Raymond was uninterested in using the same interface due to its + lack of documentation. Later, in 1998, Mark Hesseling provided support +- in <EM>PDCurses</EM> 2.3 using the SVr4 interface. <EM>PDCurses</EM>, however, does not +- use video terminals, making it unnecessary to be concerned about ++ in <EM>PDCurses</EM> 2.3 using the SVr4 interface. <EM>PDCurses</EM>, however, does not ++ use video terminals, making it unnecessary to be concerned about + compatibility with the escape sequences. + + + </PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE> + Mouse events from <EM>xterm</EM> are <EM>not</EM> ignored in canonical ("cooked") mode if +- they have been enabled by <STRONG>mousemask</STRONG>. Instead, the <EM>xterm</EM> mouse report ++ they have been enabled by <STRONG>mousemask</STRONG>. Instead, the <EM>xterm</EM> mouse report + sequence appears in the string read. + +- 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. ++ 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>key_mouse</STRONG> (<STRONG>kmous</STRONG>) to "\E[M" (the +- beginning of the response from <EM>xterm</EM> for mouse clicks). Other values +- of <STRONG>key_mouse</STRONG> are permitted under the same assumption -- that is, a +- mouse report begins with the value of the <STRONG>key_mouse</STRONG> (<STRONG>kmous</STRONG>) string ++ beginning of the response from <EM>xterm</EM> for mouse clicks). Other values ++ of <STRONG>key_mouse</STRONG> are permitted under the same assumption -- that is, a ++ mouse report begins with the value of the <STRONG>key_mouse</STRONG> (<STRONG>kmous</STRONG>) string + capability. + + 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 +- <STRONG>key_mouse</STRONG> (<STRONG>kmous</STRONG>) is defined in the terminal description, or if the +- terminal type's primary name or aliases contain the string "xterm", ++ terminals supporting the <EM>xterm</EM> mouse protocol, <EM>ncurses</EM> assumes that if ++ <STRONG>key_mouse</STRONG> (<STRONG>kmous</STRONG>) is defined in the terminal description, or if the ++ terminal type's primary name or aliases contain the string "xterm", + then the terminal may send mouse events. <EM>ncurses</EM> checks the <STRONG>kmous</STRONG> cap- +- code first, allowing use of newer <EM>xterm</EM> mouse protocols, such as its ++ code first, allowing use of newer <EM>xterm</EM> mouse protocols, such as its + private mode 1006. + + +@@ -408,7 +407,7 @@ + + + +-ncurses 6.5 2025-03-01 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_move.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_move.3x.html 2025-03-09 00:55:54.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_move.3x.html 2025-04-05 22:33:04.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_move.3x,v 1.61 2025/03/08 23:18:46 tom Exp @ ++ * @Id: curs_move.3x,v 1.63 2025/04/05 22:08:55 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_move 3x 2025-03-08 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_move 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_move 3x 2025-03-08 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_move 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG> + +@@ -66,11 +66,14 @@ + + + </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. ++ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure. In <EM>ncurses</EM>, ++ these functions fail if + +- They fail if the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries. ++ <STRONG>o</STRONG> the <EM>curses</EM> screen has not been initialized, + +- In <EM>ncurses</EM>, <STRONG>wmove</STRONG> fails if <EM>win</EM> is <EM>NULL</EM>. ++ <STRONG>o</STRONG> (for <STRONG>wmove</STRONG>) <EM>win</EM> is a null pointer, or ++ ++ <STRONG>o</STRONG> the position (<EM>y</EM>, <EM>x</EM>) is outside the window boundaries. + + + </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> +@@ -81,7 +84,7 @@ + X/Open Curses Issue 4 describes these functions. It specifies no error + conditions for them. + +- SVr4 describes a successful return value only as "an integer value ++ SVr4 describes a successful return value only as "an integer value + other than <EM>ERR</EM>". + + +@@ -94,7 +97,7 @@ + + + +-ncurses 6.5 2025-03-08 <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_outopts.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_outopts.3x.html 2025-03-22 22:52:51.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_outopts.3x.html 2025-04-05 22:57:19.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_outopts.3x,v 1.93 2025/03/22 22:46:52 tom Exp @ ++ * @Id: curs_outopts.3x,v 1.98 2025/04/05 22:40:21 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 2025-03-22 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_outopts 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_outopts 3x 2025-03-22 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_outopts 3x 2025-04-05 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> + +@@ -110,36 +110,36 @@ + + + </PRE><H3><a name="h3-leaveok">leaveok</a></H3><PRE> +- Normally, the hardware cursor is left at the location of the window +- cursor being refreshed. The <STRONG>leaveok</STRONG> option allows the cursor to be +- left wherever the update happens to leave it. It is useful for +- applications where the cursor is not used, since it reduces the need +- for cursor motions. ++ Normally, <EM>curses</EM> leaves the hardware cursor at the library's cursor ++ location of the window being refreshed. The <STRONG>leaveok</STRONG> option allows the ++ cursor to be left wherever the update happens to leave it. It is ++ useful for applications that do not employ a visible cursor, since it ++ reduces the need for cursor motions. + + + </PRE><H3><a name="h3-scrollok">scrollok</a></H3><PRE> +- The <STRONG>scrollok</STRONG> option controls what happens when the cursor of a window +- is moved off the edge of the window or scrolling region, either as a +- result of a newline action on the bottom line, or typing the last +- character of the last line. If disabled, (<EM>bf</EM> is <STRONG>FALSE</STRONG>), the cursor is +- left on the bottom line. If enabled, (<EM>bf</EM> is <STRONG>TRUE</STRONG>), the window is +- scrolled up one line (Note that to get the physical scrolling effect on +- the terminal, it is also necessary to call <STRONG>idlok</STRONG>). ++ The <STRONG>scrollok</STRONG> option controls what happens when a window's cursor moves ++ off the edge of the window or scrolling region, either as a result of a ++ newline occurring on the bottom line, or writing to the last character ++ of the last line. If disabled (<EM>bf</EM> is <STRONG>FALSE</STRONG>), <EM>curses</EM> leaves the cursor ++ on the bottom line of the window. If enabled (<EM>bf</EM> is <STRONG>TRUE</STRONG>), <EM>curses</EM> ++ scrolls the window up one line. (To get the physical scrolling effect ++ on the terminal, the application must also enable <STRONG>idlok</STRONG>). + + + </PRE><H3><a name="h3-setscrreg_wsetscrreg">setscrreg, wsetscrreg</a></H3><PRE> +- The <STRONG>setscrreg</STRONG> and <STRONG>wsetscrreg</STRONG> routines allow the application programmer +- to set a software scrolling region in a window. The <EM>top</EM> and <EM>bot</EM> +- parameters are the line numbers of the top and bottom margin of the +- scrolling region. (Line 0 is the top line of the window.) If this +- option and <STRONG>scrollok</STRONG> are enabled, an attempt to move off the bottom +- margin line causes all lines in the scrolling region to scroll one line +- in the direction of the first line. Only the text of the window is +- scrolled. (Note that this has nothing to do with the use of a physical +- scrolling region capability in the terminal, like that in the VT100. +- If <STRONG>idlok</STRONG> is enabled and the terminal has either a scrolling region or +- insert/delete line capability, they will probably be used by the output +- routines.) ++ The <STRONG>wsetscrreg</STRONG> and <STRONG>setscrreg</STRONG> functions allow the application to set a ++ software scrolling region in the specified window or <STRONG>stdscr</STRONG>, ++ respectively. The <EM>top</EM> and <EM>bot</EM> parameters are the line numbers of the ++ top and bottom margin of the scrolling region. (Line 0 is the top line ++ of the window.) If this option and <STRONG>scrollok</STRONG> are enabled, an attempt to ++ move off the bottom margin line causes all lines in the scrolling ++ region to scroll one line in the direction of the first line. Only the ++ text of the window is scrolled. (This process has nothing to do with ++ the scrolling region capability of the terminal, as found in the DEC ++ VT100.) If <STRONG>idlok</STRONG> is enabled and the terminal has either a scrolling ++ region or insert/delete line capability, they will probably be used by ++ the output routines.) + + + </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE> +@@ -147,20 +147,27 @@ + upon failure. All other routines that return an integer always return + <STRONG>OK</STRONG>. + +- In this implementation, ++ In <EM>ncurses</EM>, these functions fail if + +- <STRONG>o</STRONG> those functions that have a window pointer will return <STRONG>ERR</STRONG> if the +- window pointer is null ++ <STRONG>o</STRONG> the <EM>curses</EM> screen has not been initialized, + +- <STRONG>o</STRONG> <STRONG>wsetscrreg</STRONG> returns <STRONG>ERR</STRONG> if the scrolling region limits extend +- outside the window boundaries. ++ <STRONG>o</STRONG> (for functions taking a <EM>WINDOW</EM> pointer argument) <EM>win</EM> is a null ++ pointer, or ++ ++ <STRONG>o</STRONG> (for <STRONG>setscrreg</STRONG> and <STRONG>wsetscrreg</STRONG>) the function is passed arguments ++ describing a scrolling region with limits that extend outside the ++ window boundaries. + + + </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> +- <STRONG>clearok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>scrollok</STRONG>, <STRONG>idcok</STRONG>, and <STRONG>setscrreg</STRONG> may be implemented as ++ <STRONG>clearok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>scrollok</STRONG>, <STRONG>idcok</STRONG>, and <STRONG>setscrreg</STRONG> may be implemented as + macros. + +- The <STRONG>immedok</STRONG> routine is useful for windows that are used as terminal ++ Unlike the other functions described by this page, <STRONG>setscrreg</STRONG> does not ++ accept a pointer-to-<EM>WINDOW</EM> parameter, but operates on <STRONG>stdscr</STRONG>. Use ++ <STRONG>wsetscrreg</STRONG> to configure the scrolling region of a selected window. ++ ++ The <STRONG>immedok</STRONG> routine is useful for windows that are used as terminal + emulators. + + +@@ -168,18 +175,19 @@ + X/Open Curses Issue 4 describes these functions. It specifies no error + conditions for them. + +- Some historic <EM>curses</EM> implementations, as an undocumented feature, did +- the equivalent of "<STRONG>clearok(</STRONG>...<STRONG>,</STRONG> <STRONG>1)</STRONG>" when <STRONG>touchwin(stdstr)</STRONG> or ++ Some historic <EM>curses</EM> implementations, as an undocumented feature, did ++ the equivalent of "<STRONG>clearok(</STRONG>...<STRONG>,</STRONG> <STRONG>1)</STRONG>" when <STRONG>touchwin(stdstr)</STRONG> or + <STRONG>clear(stdstr)</STRONG> were used. This trick does not work with <EM>ncurses</EM>. + +- Early System V <EM>curses</EM> implementations specified that with <EM>scrollok</EM> +- enabled, any window modification triggering a scroll also forced a +- physical refresh. X/Open Curses does not require this, and <EM>ncurses</EM> ++ Early System V <EM>curses</EM> implementations specified that with <EM>scrollok</EM> ++ enabled, any window modification triggering a scroll also forced a ++ physical refresh. X/Open Curses does not require this, and <EM>ncurses</EM> + avoids doing so to better optimize vertical motions upon a <EM>wrefresh</EM>. + + X/Open Curses does not mention that the cursor should be made invisible +- as a side-effect of <EM>leaveok</EM>. SVr4 <EM>curses</EM> documentation notes this, but +- the code neglects it. Use <STRONG><A HREF="curs_kernel.3x.html">curs_set(3x)</A></STRONG> to make the cursor invisible. ++ as a side-effect of <EM>leaveok</EM>. SVr4 <EM>curses</EM> documentation notes this ++ behavior, but the code neglects to implement it. Use <STRONG><A HREF="curs_kernel.3x.html">curs_set(3x)</A></STRONG> to ++ make the cursor invisible. + + + </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> +@@ -199,7 +207,7 @@ + + + +-ncurses 6.5 2025-03-22 <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_printw.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_printw.3x.html 2025-01-19 00:54:59.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_printw.3x.html 2025-04-05 22:33:04.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_printw.3x,v 1.57 2025/01/19 00:51:10 tom Exp @ ++ * @Id: curs_printw.3x,v 1.60 2025/04/05 22:20:25 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_printw 3x 2025-01-18 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_printw 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_printw 3x 2025-01-18 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_printw 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> + +@@ -114,31 +114,34 @@ + + + </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> +- While <STRONG>printw</STRONG> was implemented in 4BSD (November 1980), it was unused +- until 4.2BSD (August 1983), which employed it for games. That early +- version of <EM>curses</EM> preceded the ANSI C standard of 1989. It did not use +- <EM>varargs.h</EM>, though that had been available since Seventh Edition Unix ++ 4BSD (1980) introduced <EM>wprintw</EM> and its variants. It implemented all as ++ functions, not macros; this initial distribution of <EM>curses</EM> preceded the ++ ANSI C standard of 1989, prior to which a variadic macro facility was ++ not widely available. <EM>printw</EM> went unused in Berkeley distributions ++ until 4.1cBSD (1983), which employed it in games. 4BSD's <EM>wprintw</EM> did ++ not use <EM>varargs.h</EM>, which had been available since Seventh Edition Unix + (1979). In 1991 (a couple of years after SVr4 was generally available, + and after the C standard was published), other developers updated the + library, using <EM>stdarg.h</EM> internally in 4.4BSD <EM>curses</EM>. Even with this + improvement, BSD <EM>curses</EM> did not use function prototypes (nor even + declare functions) in <EM>curses.h</EM> until 1992. + +- SVr2 (1984) documented <STRONG>printw</STRONG> and <STRONG>wprintw</STRONG> tersely as "printf on <STRONG>stdscr</STRONG>" +- and "printf on <EM>win</EM>", respectively. ++ 4BSD documented <EM>printw</EM> and <EM>wprintw</EM> tersely as "printf on <EM>stdscr</EM>" and ++ "printf on <EM>win</EM>", respectively. + +- SVr3 (1987) added <STRONG>mvprintw</STRONG> and <STRONG>mvwprintw</STRONG>, with a three-line summary +- asserting that they were analogous to <STRONG>printf(3)</STRONG>, explaining that the +- string that <STRONG>printf(3)</STRONG> would write to the standard output stream would +- instead be output using <STRONG>waddstr</STRONG> to the given window. SVr3 also +- implemented <STRONG>vwprintw</STRONG>, describing its third parameter as a <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, +- defined in <EM>varargs.h</EM>, and referred the reader to the manual pages for ++ SVr3 summarized the functions in three lines, asserting that they were ++ analogous to <STRONG>printf(3)</STRONG>, explaining that the string that <STRONG>printf(3)</STRONG> would ++ write to the standard output stream would instead be output using ++ <EM>waddstr</EM> to the given window. ++ ++ SVr3 added <EM>vwprintw</EM>, describing its third parameter as a <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, ++ defined in <EM>varargs.h</EM>, and referred the reader to the manual pages for + <EM>varargs</EM> and <EM>vprintf</EM> for detailed descriptions. + +- SVr4 (1989) introduced no new variations of <EM>printw</EM>, but provided for ++ SVr4 (1989) introduced no new variations of <EM>printw</EM>, but provided for + using either <EM>varargs.h</EM> or <EM>stdarg.h</EM> to define the <EM>va</EM><STRONG>_</STRONG><EM>list</EM> type. + +- X/Open Curses Issue 4 (1995), defined <STRONG>vw_printw</STRONG> to replace <STRONG>vwprintw</STRONG>, ++ X/Open Curses Issue 4 (1995), defined <EM>vw</EM><STRONG>_</STRONG><EM>printw</EM> to replace <EM>vwprintw</EM>, + stating that its <EM>va</EM><STRONG>_</STRONG><EM>list</EM> type is defined in <EM>stdarg.h</EM>. + + +@@ -147,7 +150,7 @@ + + + +-ncurses 6.5 2025-01-18 <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_scanw.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_scanw.3x.html 2025-01-19 00:54:59.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_scanw.3x.html 2025-04-05 22:33:04.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_scanw.3x,v 1.57 2025/01/19 00:51:10 tom Exp @ ++ * @Id: curs_scanw.3x,v 1.60 2025/04/05 22:20:10 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_scanw 3x 2025-01-18 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_scanw 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_scanw 3x 2025-01-18 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_scanw 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> + +@@ -141,36 +141,35 @@ + + + </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> +- <STRONG>scanw</STRONG> was implemented in 4BSD (November 1980); that early version of +- <EM>curses</EM> preceded the ANSI C standard of 1989. The function was unused +- in Berkeley distributions for over ten years, until 4.4BSD, which +- employed it in a game. The 4BSD <STRONG>scanw</STRONG> did not use <EM>varargs.h</EM>, though +- that had been available since Seventh Edition Unix (1979). In 1991 (a +- couple of years after SVr4 was generally available, and after the C +- standard was published), other developers updated the library, using +- <EM>stdarg.h</EM> internally in 4.4BSD <EM>curses</EM>. Even with this improvement, BSD +- <EM>curses</EM> did not use function prototypes (nor even declare functions) in +- <EM>curses.h</EM> until 1992. +- +- SVr2 (1984) documented <STRONG>scanw</STRONG> and <STRONG>wscanw</STRONG> tersely as "scanf through +- <STRONG>stdscr</STRONG>" and "scanf through <EM>win</EM>", respectively. +- +- SVr3 (1987) added <STRONG>mvscanw</STRONG>, and <STRONG>mvwscanw</STRONG>, stating +- +- "[t]hese routines correspond to <STRONG>scanf(3S)</STRONG>, as do their arguments +- and return values. <STRONG>wgetstr</STRONG>() is called on the window, and the +- resulting line is used as input for the scan." +- +- SVr3 also implemented <STRONG>vwscanw</STRONG>, describing its third parameter as a +- <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, defined in <EM>varargs.h</EM>, and referred the reader to the manual +- pages for <EM>varargs</EM> and <EM>vprintf</EM> for detailed descriptions. (Because the +- SVr3 documentation does not mention <EM>vscanf</EM>, the reference to <EM>vprintf</EM> +- might not be an error). ++ 4BSD (1980) introduced <EM>wscanw</EM> and its variants. It implemented all as ++ functions, not macros; this initial distribution of <EM>curses</EM> preceded the ++ ANSI C standard of 1989, prior to which a variadic macro facility was ++ not widely available. <EM>scanw</EM> went unused in Berkeley distributions ++ until 4.3BSD-Reno (1990), which employed it in a game. 4BSD's <EM>wscanw</EM> ++ did not use <EM>varargs.h</EM>, which had been available since Seventh Edition ++ Unix (1979). In 1991 (a couple of years after SVr4 was generally ++ available, and after the C standard was published), other developers ++ updated the library, using <EM>stdarg.h</EM> internally in 4.4BSD <EM>curses</EM>. Even ++ with this improvement, BSD <EM>curses</EM> did not use function prototypes (nor ++ even declare functions) in <EM>curses.h</EM> until 1992. ++ ++ 4BSD documented <EM>scanw</EM> and <EM>wscanw</EM> tersely as "scanf through <EM>stdscr</EM>" and ++ "scanf through <EM>win</EM>", respectively. SVr3 (1987) stated ++ ++ [t]hese routines correspond to <STRONG>scanf(3S)</STRONG>, as do their arguments ++ and return values. <EM>wgetstr</EM>() is called on the window, and the ++ resulting line is used as input for the scan. ++ ++ SVr3 added <EM>vwscanw</EM>, describing its third parameter as a <EM>va</EM><STRONG>_</STRONG><EM>list</EM>, ++ defined in <EM>varargs.h</EM>, and referred the reader to the manual pages for ++ <EM>varargs</EM> and <EM>vprintf</EM> for detailed descriptions. (Because SVr3 ++ documentation does not mention <EM>vscanf</EM>, the reference to <EM>vprintf</EM> might ++ not be an error). + +- SVr4 (1989) introduced no new variations of <EM>scanw</EM>, but provided for ++ SVr4 (1989) introduced no new variations of <EM>scanw</EM>, but provided for + using either <EM>varargs.h</EM> or <EM>stdarg.h</EM> to define the <EM>va</EM><STRONG>_</STRONG><EM>list</EM> type. + +- X/Open Curses Issue 4 (1995), defined <EM>vw</EM><STRONG>_</STRONG><EM>scanw</EM> to replace <EM>vwscanw</EM>, ++ X/Open Curses Issue 4 (1995), defined <EM>vw</EM><STRONG>_</STRONG><EM>scanw</EM> to replace <EM>vwscanw</EM>, + stating that its <EM>va</EM><STRONG>_</STRONG><EM>list</EM> type is defined in <EM>stdarg.h</EM>. + + +@@ -179,7 +178,7 @@ + + + +-ncurses 6.5 2025-01-18 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_scroll.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_scroll.3x.html 2025-02-02 00:43:58.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_scroll.3x.html 2025-04-05 22:33:04.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_scroll.3x,v 1.57 2025/02/02 00:02:49 tom Exp @ ++ * @Id: curs_scroll.3x,v 1.59 2025/04/05 22:20:39 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_scroll 3x 2025-02-01 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_scroll 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_scroll 3x 2025-02-01 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_scroll 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> + +@@ -86,7 +86,8 @@ + + <STRONG>o</STRONG> the <EM>curses</EM> screen has not been initialized, + +- <STRONG>o</STRONG> <EM>win</EM> is a null pointer, or ++ <STRONG>o</STRONG> (for functions taking a <EM>WINDOW</EM> pointer argument) <EM>win</EM> is a null ++ pointer, or + + <STRONG>o</STRONG> scrolling is not enabled in the window (as by <STRONG><A HREF="scrollok.3x.html">scrollok(3x)</A></STRONG>). + +@@ -94,7 +95,7 @@ + </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> + <STRONG>scroll</STRONG> and <STRONG>scrl</STRONG> may be implemented as macros. + +- Unusually, there is no <STRONG>wscroll</STRONG> function; <STRONG>scroll</STRONG> behaves as one would ++ Unusually, there is no <STRONG>wscroll</STRONG> function; <STRONG>scroll</STRONG> behaves as one would + expect <STRONG>wscroll</STRONG> to, accepting a <EM>WINDOW</EM> pointer argument. + + +@@ -102,16 +103,16 @@ + X/Open Curses Issue 4 describes these functions. It specifies no error + conditions for them. + +- SVr4 describes a successful return value only as "an integer value ++ SVr4 describes a successful return value only as "an integer value + other than <EM>ERR</EM>". + +- SVr4 indicates that the optimization of physically scrolling +- immediately if the scroll region is the entire screen "is" performed, +- not "may be" performed. <EM>ncurses</EM> deliberately does not guarantee that +- this occurs, to leave open the possibility of better optimization of ++ SVr4 indicates that the optimization of physically scrolling ++ immediately if the scroll region is the entire screen "is" performed, ++ not "may be" performed. <EM>ncurses</EM> deliberately does not guarantee that ++ this occurs, to leave open the possibility of better optimization of + multiple scroll actions on the next update. + +- Neither SVr4 <EM>curses</EM> nor X/Open Curses specify whether these functions ++ Neither SVr4 <EM>curses</EM> nor X/Open Curses specify whether these functions + zero the attributes or color pair identifier of the background + character. In <EM>ncurses</EM>, they do not. + +@@ -119,7 +120,7 @@ + </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> + 4BSD (1980) introduced <EM>scroll</EM>, defining it as a function. + +- SVr3.1 (1987) added <EM>scrl</EM> and <EM>wscrl</EM>, redefining <EM>scroll</EM> as a macro ++ SVr3.1 (1987) added <EM>scrl</EM> and <EM>wscrl</EM>, redefining <EM>scroll</EM> as a macro + wrapping the latter. + + +@@ -128,7 +129,7 @@ + + + +-ncurses 6.5 2025-02-01 <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_terminfo.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_terminfo.3x.html 2025-02-15 15:46:52.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_terminfo.3x.html 2025-04-05 22:33:04.000000000 +0000 +@@ -28,19 +28,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_terminfo.3x,v 1.162 2025/02/15 15:24:18 tom Exp @ ++ * @Id: curs_terminfo.3x,v 1.164 2025/04/05 22:21:02 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_terminfo 3x 2025-02-15 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_terminfo 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_terminfo 3x 2025-02-15 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_terminfo 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> + +@@ -214,10 +214,10 @@ + numeric, and string capabilities use the values from <EM>nterm</EM>. It returns + the old value of <STRONG>cur_term</STRONG>. + +- <STRONG>del_curterm</STRONG> frees the memory pointed to by <EM>oterm</EM>, making it available +- for further use. If <EM>oterm</EM> is the same as <STRONG>cur_term</STRONG>, references to any +- of the <EM>terminfo</EM> Boolean, numeric, and string capabilities thereafter +- may refer to invalid memory locations until <STRONG>setupterm</STRONG> is called again. ++ <STRONG>del_curterm</STRONG> releases the memory pointed to by <EM>oterm</EM>. If <EM>oterm</EM> is the ++ same as <STRONG>cur_term</STRONG>, references to any of the <EM>terminfo</EM> Boolean, numeric, ++ and string capabilities thereafter may refer to invalid memory ++ locations until <STRONG>setupterm</STRONG> is called again. + + <STRONG>restartterm</STRONG> is similar to <STRONG>setupterm</STRONG>, but is intended for use after + restoring program memory to a previous state (for example, when +@@ -230,62 +230,61 @@ + + + </PRE><H3><a name="h3-Formatting-Output">Formatting Output</a></H3><PRE> +- <STRONG>tparm</STRONG> instantiates the string <EM>str</EM> with parameters <EM>pi</EM>. A pointer is +- returned to the result of <EM>str</EM> with the parameters applied. Application +- developers should keep in mind these quirks of the interface: ++ <STRONG>tparm</STRONG> instantiates the string <EM>str</EM> with parameters <EM>pi</EM>. It returns a ++ pointer to a character string representing <EM>str</EM> with the parameters ++ applied to "%" expressions within. Application developers should keep ++ in mind some quirks of the interface. + +- <STRONG>o</STRONG> Although <STRONG>tparm</STRONG>'s actual parameters may be integers or strings, the ++ <STRONG>o</STRONG> Although <STRONG>tparm</STRONG>'s actual parameters may be integers or strings, the + prototype expects <EM>long</EM> (integer) values. + +- <STRONG>o</STRONG> Aside from the <STRONG>set_attributes</STRONG> (<STRONG>sgr</STRONG>) capability, most terminal ++ <STRONG>o</STRONG> Aside from the <STRONG>set_attributes</STRONG> (<STRONG>sgr</STRONG>) capability, most terminal + capabilities require no more than one or two parameters. + +- <STRONG>o</STRONG> Padding information is ignored by <STRONG>tparm</STRONG>; it is interpreted by ++ <STRONG>o</STRONG> Padding information is ignored by <STRONG>tparm</STRONG>; it is interpreted by + <STRONG>tputs</STRONG>. + +- <STRONG>o</STRONG> The capability string is null-terminated. Use "\200" where an ++ <STRONG>o</STRONG> The capability string is null-terminated. Use "\200" where an + ASCII NUL is needed in the output. + +- <STRONG>tiparm</STRONG> is a newer form of <STRONG>tparm</STRONG> which uses <EM>stdarg.h</EM> rather than a +- fixed-parameter list. Its numeric parameters are <EM>int</EM>s rather than ++ <STRONG>tiparm</STRONG> is a newer form of <STRONG>tparm</STRONG> that uses <EM>stdarg.h</EM> rather than a fixed- ++ length parameter list. Its numeric parameters are <EM>int</EM>s rather than + <EM>long</EM>s. + +- Both <STRONG>tparm</STRONG> and <STRONG>tiparm</STRONG> assume that the application passes parameters +- consistent with the terminal description. Two extensions are provided +- as alternatives to deal with untrusted data. +- +- <STRONG>o</STRONG> <STRONG>tiparm_s</STRONG> is an extension which is a safer formatting function than +- <STRONG>tparm</STRONG> or <STRONG>tiparm</STRONG>, because it allows the developer to tell the <EM>curses</EM> +- library how many parameters to expect in the parameter list, and +- which may be string parameters. ++ <STRONG>tparm</STRONG> and <STRONG>tiparm</STRONG> assume that the application passes parameters ++ consistent with the terminal description. <EM>ncurses</EM> provides two ++ extensions as alternatives to deal with untrusted data. ++ ++ <STRONG>o</STRONG> The <STRONG>tiparm_s</STRONG> extension is a safer formatting function than <STRONG>tparm</STRONG> or ++ <STRONG>tiparm</STRONG>, because it allows the developer to tell the <EM>curses</EM> library ++ how many parameters to expect in the parameter list, and which may ++ be string parameters. + +- The <EM>mask</EM> parameter has one bit set for each of the parameters (up ++ The <EM>mask</EM> parameter has one bit set for each of the parameters (up + to 9) passed as <EM>char</EM> pointers rather than numbers. + +- <STRONG>o</STRONG> The extension <STRONG>tiscan_s</STRONG> allows the application to inspect a ++ <STRONG>o</STRONG> The extension <STRONG>tiscan_s</STRONG> allows the application to inspect a + formatting capability to see what the <EM>curses</EM> library would assume. + + + </PRE><H3><a name="h3-Output-Functions">Output Functions</a></H3><PRE> +- String capabilities can contain <EM>padding</EM>, a time delay (accommodating ++ String capabilities can contain <EM>padding</EM>, a time delay (accommodating + performance limitations of hardware terminals) expressed as <STRONG>$<</STRONG><EM>n</EM><STRONG>></STRONG>, where + <EM>n</EM> is a nonnegative integral count of milliseconds. If <EM>n</EM> exceeds 30,000 +- (thirty seconds), it is capped at that value. ++ (thirty seconds), <EM>ncurses</EM> caps it at that value. + +- <STRONG>tputs</STRONG> interprets time-delay information in the string <EM>str</EM> and outputs +- it, executing the delays: ++ <STRONG>tputs</STRONG> interprets time delays in the string <EM>str</EM> and acts upon them. + +- <STRONG>o</STRONG> The <EM>str</EM> parameter must be a <EM>terminfo</EM> string variable or the return +- value of <STRONG>tparm</STRONG> or <STRONG>tiparm</STRONG>. ++ <STRONG>o</STRONG> The <EM>str</EM> parameter must be a <EM>terminfo</EM> string capability or the ++ return value of <STRONG>tparm</STRONG> or <STRONG>tiparm</STRONG>. + + <STRONG>o</STRONG> <EM>affcnt</EM> is the number of lines affected, or <STRONG>1</STRONG> if not applicable. + + <STRONG>o</STRONG> <EM>putc</EM> is a <EM>putchar</EM>-like function to which the characters are passed, + one at a time. + +- If <STRONG>tputs</STRONG> processes a time-delay, it uses the <STRONG><A HREF="curs_util.3x.html">delay_output(3x)</A></STRONG> +- function, routing any resulting padding characters through this +- function. ++ <STRONG>tputs</STRONG> processes each time delay with the <STRONG><A HREF="curs_util.3x.html">delay_output(3x)</A></STRONG> function, ++ routing any resulting padding characters through this function. + + <STRONG>putp</STRONG> calls "<STRONG>tputs(</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>putchar)</STRONG>". The output of <STRONG>putp</STRONG> always goes to + <EM>stdout</EM>, rather than the <EM>filedes</EM> specified in <STRONG>setupterm</STRONG>. +@@ -296,30 +295,30 @@ + + <STRONG>vidattr</STRONG> is like <STRONG>vidputs</STRONG>, except that it outputs through <STRONG>putchar(3)</STRONG>. + +- <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> correspond to <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG>, respectively. +- They use multiple parameters to represent the character attributes and ++ <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> correspond to <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG>, respectively. ++ They use multiple parameters to represent the character attributes and + color; namely, + + <STRONG>o</STRONG> <EM>attrs</EM>, of type <EM>attr</EM><STRONG>_</STRONG><EM>t</EM>, for the attributes and + + <STRONG>o</STRONG> <EM>pair</EM>, of type <EM>short</EM>, for the color pair number. + +- Use the attribute constants prefixed with "<STRONG>WA_</STRONG>" with <STRONG>vid_attr</STRONG> and ++ Use the attribute constants prefixed with "<STRONG>WA_</STRONG>" with <STRONG>vid_attr</STRONG> and + <STRONG>vid_puts</STRONG>. + +- X/Open Curses reserves the <EM>opts</EM> argument for future use, saying that +- applications must provide a null pointer for that argument; but see ++ X/Open Curses reserves the <EM>opts</EM> argument for future use, saying that ++ applications must provide a null pointer for that argument; but see + section "EXTENSIONS" below. + +- While <STRONG>putp</STRONG> is a lower-level function that does not use higher-level +- <EM>curses</EM> state, <EM>ncurses</EM> declares it in <EM>curses.h</EM> because System V did so ++ While <STRONG>putp</STRONG> is a lower-level function that does not use higher-level ++ <EM>curses</EM> state, <EM>ncurses</EM> declares it in <EM>curses.h</EM> because System V did so + (see section "HISTORY" below). + + + </PRE><H3><a name="h3-Terminal-Capability-Functions">Terminal Capability Functions</a></H3><PRE> +- <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG>, and <STRONG>tigetstr</STRONG> return the value of the capability +- corresponding to the <EM>terminfo</EM> <EM>cap-code</EM>, such as <STRONG>xenl</STRONG>, passed to them. +- The <EM>cap-code</EM> for each capability is given in the table column of that ++ <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG>, and <STRONG>tigetstr</STRONG> return the value of the capability ++ corresponding to the <EM>terminfo</EM> <EM>cap-code</EM>, such as <STRONG>xenl</STRONG>, passed to them. ++ The <EM>cap-code</EM> for each capability is given in the table column of that + name in the "Predefined Capabilities" section of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. + + These functions return special values to denote errors. +@@ -362,29 +361,29 @@ + + </PRE><H3><a name="h3-Releasing-Memory">Releasing Memory</a></H3><PRE> + Each successful call to <STRONG>setupterm</STRONG> allocates memory to hold the terminal +- description. As a side effect, it sets <STRONG>cur_term</STRONG> to point to this ++ description. As a side effect, it sets <STRONG>cur_term</STRONG> to point to this + memory. If an application calls + del_curterm(cur_term); + the memory will be freed. + +- The formatting functions <STRONG>tparm</STRONG> and <STRONG>tiparm</STRONG> extend the storage allocated ++ The formatting functions <STRONG>tparm</STRONG> and <STRONG>tiparm</STRONG> extend the storage allocated + by <STRONG>setupterm</STRONG> as follows. + +- <STRONG>o</STRONG> They add the "static" <EM>terminfo</EM> variables [a-z]. Before <EM>ncurses</EM> ++ <STRONG>o</STRONG> They add the "static" <EM>terminfo</EM> variables [a-z]. Before <EM>ncurses</EM> + 6.3, those were shared by all screens. With <EM>ncurses</EM> 6.3, those are + allocated per screen. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. + +- <STRONG>o</STRONG> To improve performance, <EM>ncurses</EM> 6.3 caches the result of analyzing +- <EM>terminfo</EM> strings for their parameter types. That is stored as a ++ <STRONG>o</STRONG> To improve performance, <EM>ncurses</EM> 6.3 caches the result of analyzing ++ <EM>terminfo</EM> strings for their parameter types. That is stored as a + binary tree referenced from the <EM>TERMINAL</EM> structure. + + The higher-level <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG> functions use <STRONG>setupterm</STRONG>. Normally +- they do not free this memory, but it is possible to do that using the ++ they do not free this memory, but it is possible to do that using the + <STRONG><A HREF="curs_initscr.3x.html">delscreen(3x)</A></STRONG> function. + + + </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE> +- Functions that return integers return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon ++ Functions that return integers return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon + success. + + In <EM>ncurses</EM>, +@@ -398,40 +397,40 @@ + fails if the associated call to <STRONG>setupterm</STRONG> returns <STRONG>ERR</STRONG>. + + <STRONG>setupterm</STRONG> +- fails if it cannot allocate enough memory, or create the initial +- windows (<STRONG>stdscr</STRONG>, <STRONG>curscr</STRONG>, and <STRONG>newscr</STRONG>). Other error conditions are ++ fails if it cannot allocate enough memory, or create the initial ++ windows (<STRONG>stdscr</STRONG>, <STRONG>curscr</STRONG>, and <STRONG>newscr</STRONG>). Other error conditions are + documented above. + + <STRONG>tparm</STRONG> +- returns a null pointer if the capability would require unexpected +- parameters; that is, too many, too few, or incorrect types ++ returns a null pointer if the capability would require unexpected ++ parameters; that is, too many, too few, or incorrect types + (strings where integers are expected, or vice versa). + + <STRONG>tputs</STRONG> +- fails if the string parameter is null. It does not detect I/O +- errors: X/Open Curses states that <STRONG>tputs</STRONG> ignores the return value ++ fails if the string parameter is null. It does not detect I/O ++ errors: X/Open Curses states that <STRONG>tputs</STRONG> ignores the return value + of the output function <EM>putc</EM>. + + + </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> +- The <STRONG>vid_attr</STRONG> function in <EM>ncurses</EM> is a special case. It was originally ++ The <STRONG>vid_attr</STRONG> function in <EM>ncurses</EM> is a special case. It was originally + implemented based on a draft of X/Open Curses, as a macro, before other +- parts of the <EM>ncurses</EM> wide-character API were developed, and unlike the +- other wide-character functions, is also provided in the non-wide- ++ parts of the <EM>ncurses</EM> wide-character API were developed, and unlike the ++ other wide-character functions, is also provided in the non-wide- + character configuration. + + + </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE> +- The functions marked as extensions originated in <EM>ncurses</EM>, and are not +- found in SVr4 <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous <EM>curses</EM> ++ The functions marked as extensions originated in <EM>ncurses</EM>, and are not ++ found in SVr4 <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous <EM>curses</EM> + implementation. + +- <EM>ncurses</EM> allows <EM>opts</EM> to be a pointer to <EM>int</EM>, which overrides the <EM>pair</EM> ++ <EM>ncurses</EM> allows <EM>opts</EM> to be a pointer to <EM>int</EM>, which overrides the <EM>pair</EM> + (<EM>short</EM>) argument. + + + </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE> +- Except for <EM>setterm</EM>, X/Open Curses Issue 4 describes these functions. ++ Except for <EM>setterm</EM>, X/Open Curses Issue 4 describes these functions. + It specifies no error conditions for them. + + SVr4 describes a successful return value except where "otherwise noted" +@@ -439,8 +438,8 @@ + + + </PRE><H3><a name="h3-Header-Files">Header Files</a></H3><PRE> +- On legacy <EM>curses</EM> systems, include <EM>curses.h</EM> and <EM>term.h</EM> in that order to +- make visible the definitions of the string arrays storing the ++ On legacy <EM>curses</EM> systems, include <EM>curses.h</EM> and <EM>term.h</EM> in that order to ++ make visible the definitions of the string arrays storing the + capability names and codes. + + +@@ -449,12 +448,11 @@ + (see section "HISTORY" below). They include <EM>crmode</EM>, <EM>fixterm</EM>, <EM>gettmode</EM>, + <EM>nocrmode</EM>, <EM>resetterm</EM>, <EM>saveterm</EM>, and <EM>setterm</EM>. + +- In SVr4, these are found in <EM>curses.h</EM>, but except for <EM>setterm</EM>, are ++ In SVr4, these are found in <EM>curses.h</EM>, but except for <EM>setterm</EM>, are + likewise macros. The one function, <EM>setterm</EM>, is mentioned in the manual + page. It further notes that <EM>setterm</EM> was replaced by <EM>setupterm</EM>, stating + that the call + setupterm(<EM>term</EM>, 1, (int *)0) +- + provides the same functionality as + setterm(<EM>term</EM>) + and discouraging the latter for new programs. +@@ -465,115 +463,115 @@ + is not specified by X/Open Curses, but is assumed by some applications. + + Other implementations may not declare the capability name arrays. Some +- provide them without declaring them. X/Open Curses does not specify ++ provide them without declaring them. X/Open Curses does not specify + them. + +- Extended terminal capability names, as defined by "<STRONG>tic</STRONG> <STRONG>-x</STRONG>", are not ++ Extended terminal capability names, as defined by "<STRONG>tic</STRONG> <STRONG>-x</STRONG>", are not + stored in the arrays described here. + + + </PRE><H3><a name="h3-Output-Buffering">Output Buffering</a></H3><PRE> +- Older versions of <EM>ncurses</EM> assumed that the file descriptor passed to +- <EM>setupterm</EM> from <EM>initscr</EM> or <EM>newterm</EM> used buffered I/O, and wrote to the +- corresponding <EM>stdio</EM> stream. In addition to the limitation that the +- terminal was left in block-buffered mode on exit (like System V +- <EM>curses</EM>), it was problematic because <EM>ncurses</EM> did not allow a reliable ++ Older versions of <EM>ncurses</EM> assumed that the file descriptor passed to ++ <EM>setupterm</EM> from <EM>initscr</EM> or <EM>newterm</EM> used buffered I/O, and wrote to the ++ corresponding <EM>stdio</EM> stream. In addition to the limitation that the ++ terminal was left in block-buffered mode on exit (like System V ++ <EM>curses</EM>), it was problematic because <EM>ncurses</EM> did not allow a reliable + way to clean up on receiving <EM>SIGTSTP</EM>. + +- <EM>ncurses</EM> 6.<EM>x</EM> uses output buffers managed directly by <EM>ncurses</EM>. The +- lower-level functions described here that write to the terminal device +- do so via the standard output stream; they thus are not signal-safe. +- The higher-level functions in <EM>ncurses</EM> employ alternate versions of ++ <EM>ncurses</EM> 6.<EM>x</EM> uses output buffers managed directly by <EM>ncurses</EM>. The ++ lower-level functions described here that write to the terminal device ++ do so via the standard output stream; they thus are not signal-safe. ++ The higher-level functions in <EM>ncurses</EM> employ alternate versions of + these functions using a more reliable buffering scheme. + + + </PRE><H3><a name="h3-Function-Prototypes">Function Prototypes</a></H3><PRE> +- The X/Open Curses prototypes are based on the SVr4 <EM>curses</EM> header +- declarations, which were defined at the same time the C language was ++ The X/Open Curses prototypes are based on the SVr4 <EM>curses</EM> header ++ declarations, which were defined at the same time the C language was + first standardized in the late 1980s. + +- <STRONG>o</STRONG> X/Open Curses uses <EM>const</EM> less effectively than a later design +- might, sometimes applying it needlessly to values that are already +- constant, and in most cases overlooking parameters that normally +- would benefit from <EM>const</EM>. Passing <EM>const</EM>-qualified parameters to +- functions that do not declare them <EM>const</EM> may prevent the program +- from compiling. On the other hand, "writable strings" are an +- obsolescent C language feature. ++ <STRONG>o</STRONG> X/Open Curses uses <EM>const</EM> less effectively than a later design ++ might, sometimes applying it needlessly to function parameters that ++ are passed by value (and therefore copied), and in most cases ++ overlooking parameters that normally would benefit from <EM>const</EM>. ++ Passing <EM>const</EM>-qualified parameters to functions that do not declare ++ them <EM>const</EM> may prevent the program from compiling. On the other ++ hand, "writable strings" are an obsolescent C language feature. + +- As an extension, <EM>ncurses</EM> can be configured to change the function +- prototypes to use the <EM>const</EM> keyword. The <EM>ncurses</EM> ABI 6 enables ++ As an extension, <EM>ncurses</EM> can be configured to change the function ++ prototypes to use the <EM>const</EM> keyword. The <EM>ncurses</EM> ABI 6 enables + this feature by default. + +- <STRONG>o</STRONG> X/Open Curses prototypes <EM>tparm</EM> with a fixed number of parameters, ++ <STRONG>o</STRONG> X/Open Curses prototypes <EM>tparm</EM> with a fixed number of parameters, + rather than a variable argument list. + + <EM>ncurses</EM> uses a variable argument list, but can be configured to use +- the fixed-parameter list. Portable applications should provide ++ the fixed-parameter list. Portable applications should provide + nine parameters after the format; zeroes are fine for this purpose. + +- In response to review comments by Thomas E. Dickey, X/Open Curses ++ In response to review comments by Thomas E. Dickey, X/Open Curses + Issue 7 proposed the <EM>tiparm</EM> function in mid-2009. + +- While <EM>tiparm</EM> is always provided in <EM>ncurses</EM>, the older form is +- available only as a build-time configuration option. If not ++ While <EM>tiparm</EM> is always provided in <EM>ncurses</EM>, the older form is ++ available only as a build-time configuration option. If not + specially configured, <EM>tparm</EM> is the same as <EM>tiparm</EM>. + + Both forms of <EM>tparm</EM> have drawbacks. + +- <STRONG>o</STRONG> Most calls to <EM>tparm</EM> require only one or two parameters. Passing ++ <STRONG>o</STRONG> Most calls to <EM>tparm</EM> require only one or two parameters. Passing + nine on each call is awkward. + +- Using <EM>long</EM> for the numeric parameter type is a workaround to make +- the parameter use the same amount of stack memory as a pointer. +- That approach dates to the mid-1980s, before C was standardized. +- Since ANSI C (1989), C language standards do not require a pointer ++ Using <EM>long</EM> for the numeric parameter type is a workaround to make ++ the parameter use the same amount of stack memory as a pointer. ++ That approach dates to the mid-1980s, before C was standardized. ++ Since ANSI C (1989), C language standards do not require a pointer + to fit in a <EM>long</EM>). + +- <STRONG>o</STRONG> Providing the right number of parameters for a variadic function ++ <STRONG>o</STRONG> Providing the right number of parameters for a variadic function + such as <EM>tiparm</EM> can be a problem, in particular for string +- parameters. However, only a few <EM>terminfo</EM> capabilities use string +- parameters (for instance, the ones used for programmable function ++ parameters. However, only a few <EM>terminfo</EM> capabilities use string ++ parameters (for instance, the ones used for programmable function + keys). + + The <EM>ncurses</EM> library checks usage of these capabilities, and returns +- <EM>ERR</EM> if the capability mishandles string parameters. But it cannot ++ <EM>ERR</EM> if the capability mishandles string parameters. But it cannot + check if a calling program provides strings in the right places for + the <EM>tparm</EM> calls. + +- <EM>ncurses</EM>'s <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> checks its use of these capabilities with a ++ <EM>ncurses</EM>'s <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> checks its use of these capabilities with a + table, so that it calls <EM>tparm</EM> correctly. + + <STRONG>Special</STRONG> <EM>TERM</EM> <STRONG>treatment</STRONG> +- If <EM>ncurses</EM> is configured to use the terminal driver, as with the MinGW +- port, ++ If <EM>ncurses</EM> is configured to use a terminal driver that does not employ ++ the POSIX <EM>termios</EM> API, as with the MinGW port, + +- <STRONG>o</STRONG> <EM>setupterm</EM> interprets a missing/empty <EM>TERM</EM> variable as the special +- value "unknown". ++ <STRONG>o</STRONG> <EM>setupterm</EM> interprets a missing or empty <EM>TERM</EM> variable as the ++ special value "unknown". + + SVr4 <EM>curses</EM> uses the special value "dumb". + +- The difference between the two is that the former uses the +- <STRONG>generic_type</STRONG> (<STRONG>gn</STRONG>) <EM>terminfo</EM> capability, while the latter does not. ++ The difference between the two is that the former uses the ++ <STRONG>generic_type</STRONG> (<STRONG>gn</STRONG>) <EM>terminfo</EM> capability, while the latter does not. + A generic terminal is unsuitable for full-screen applications. + +- <STRONG>o</STRONG> <EM>setupterm</EM> allows explicit use of the Microsoft Windows console +- driver by checking whether the <EM>TERM</EM> environment variable has the ++ <STRONG>o</STRONG> <EM>setupterm</EM> allows explicit use of the Microsoft Windows console ++ driver by checking whether the <EM>TERM</EM> environment variable has the + value "#win32con" or an abbreviation of that string. + + + </PRE><H3><a name="h3-Other-Portability-Issues">Other Portability Issues</a></H3><PRE> +- In SVr4, <EM>set</EM><STRONG>_</STRONG><EM>curterm</EM> returns an <EM>int</EM>, <EM>OK</EM> or <EM>ERR</EM>. We have chosen to ++ In SVr4, <EM>set</EM><STRONG>_</STRONG><EM>curterm</EM> returns an <EM>int</EM>, <EM>OK</EM> or <EM>ERR</EM>. We have chosen to + implement the X/Open Curses semantics. + + In SVr4, the third argument of <EM>tputs</EM> has the type "<STRONG>int</STRONG> <STRONG>(*)(char)</STRONG>". + +- At least one implementation of X/Open Curses (Solaris <EM>xcurses</EM>) returns ++ At least one implementation of X/Open Curses (Solaris <EM>xcurses</EM>) returns + a value other than <EM>OK</EM> or <EM>ERR</EM> from <EM>tputs</EM>. It instead returns the length + of the string, and does no error checking. + + + </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> +- SVr2 (1984) introduced the <EM>terminfo</EM> feature. Its programming manual ++ SVr2 (1984) introduced the <EM>terminfo</EM> feature. Its programming manual + mentioned the following low-level functions. + + <STRONG>Function</STRONG> <STRONG>Description</STRONG> +@@ -593,7 +591,7 @@ + <EM>vidattr</EM> like <EM>vidputs</EM>, but output through <EM>putchar</EM> + <EM>vidputs</EM> write string to terminal, applying specified attributes + +- The programming manual also mentioned functions provided for <EM>termcap</EM> ++ The programming manual also mentioned functions provided for <EM>termcap</EM> + compatibility (commenting that they "may go away at a later date"). + + <STRONG>Function</STRONG> <STRONG>Description</STRONG> +@@ -605,11 +603,11 @@ + <EM>tgoto</EM> apply parameters to given capability + <EM>tputs</EM> write characters via a function parameter, applying padding + +- Early <EM>terminfo</EM> programs obtained capability values from the <EM>TERMINAL</EM> ++ Early <EM>terminfo</EM> programs obtained capability values from the <EM>TERMINAL</EM> + structure initialized by <EM>setupterm</EM>. + +- SVr3 (1987) extended <EM>terminfo</EM> by adding functions to retrieve +- capability values (like the <EM>termcap</EM> interface), and reusing <EM>tgoto</EM> and ++ SVr3 (1987) extended <EM>terminfo</EM> by adding functions to retrieve ++ capability values (like the <EM>termcap</EM> interface), and reusing <EM>tgoto</EM> and + <EM>tputs</EM>. + + <STRONG>Function</STRONG> <STRONG>Description</STRONG> +@@ -618,7 +616,7 @@ + <EM>tigetnum</EM> get numeric entry for given <EM>id</EM> + <EM>tigetstr</EM> get string entry for given <EM>id</EM> + +- SVr3 also replaced several of the SVr2 <EM>terminfo</EM> functions that had no ++ SVr3 also replaced several of the SVr2 <EM>terminfo</EM> functions that had no + counterpart in the <EM>termcap</EM> interface, documenting them as obsolete. + + <STRONG>Function</STRONG> <STRONG>Replaced</STRONG> <STRONG>by</STRONG> +@@ -631,37 +629,37 @@ + <EM>saveterm</EM> <EM>def</EM><STRONG>_</STRONG><EM>prog</EM><STRONG>_</STRONG><EM>mode</EM> + <EM>setterm</EM> <EM>setupterm</EM> + +- SVr3 kept the <EM>mvcur</EM>, <EM>vidattr</EM>, and <EM>vidputs</EM> functions, along with <EM>putp</EM>, +- <EM>tparm</EM>, and <EM>tputs</EM>. The latter were needed to support padding, and to +- handle capabilities accessed by functions such as <EM>vidattr</EM> (which used ++ SVr3 kept the <EM>mvcur</EM>, <EM>vidattr</EM>, and <EM>vidputs</EM> functions, along with <EM>putp</EM>, ++ <EM>tparm</EM>, and <EM>tputs</EM>. The latter were needed to support padding, and to ++ handle capabilities accessed by functions such as <EM>vidattr</EM> (which used + more than the two parameters supported by <EM>tgoto</EM>). + +- SVr3 introduced the functions for switching between terminal +- descriptions; for example, <EM>set</EM><STRONG>_</STRONG><EM>curterm</EM>. Some changes reflected ++ SVr3 introduced the functions for switching between terminal ++ descriptions; for example, <EM>set</EM><STRONG>_</STRONG><EM>curterm</EM>. Some changes reflected + incremental improvements to the SVr2 library. + +- <STRONG>o</STRONG> The <EM>TERMINAL</EM> type definition was introduced in SVr3.01, for the ++ <STRONG>o</STRONG> The <EM>TERMINAL</EM> type definition was introduced in SVr3.01, for the + <EM>term</EM> structure provided in SVr2. + +- <STRONG>o</STRONG> Various global variables such as <EM>boolnames</EM> were mentioned in the +- programming manual at this point, though the variables had been ++ <STRONG>o</STRONG> Various global variables such as <EM>boolnames</EM> were mentioned in the ++ programming manual at this point, though the variables had been + provided in SVr2. + + SVr4 (1989) added the <EM>vid</EM><STRONG>_</STRONG><EM>attr</EM> and <EM>vid</EM><STRONG>_</STRONG><EM>puts</EM> functions. + +- Other low-level functions are declared in the <EM>curses</EM> header files of +- Unix systems, but none are documented. Those noted as "obsolete" by ++ Other low-level functions are declared in the <EM>curses</EM> header files of ++ Unix systems, but none are documented. Those noted as "obsolete" by + SVr3 remained in use by System V's <STRONG>vi(1)</STRONG> editor. + + + </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_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>, +- <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, ++ <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, + <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> + + + +-ncurses 6.5 2025-02-15 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_util.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_util.3x.html 2025-02-15 20:06:27.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_util.3x.html 2025-04-05 22:33:05.000000000 +0000 +@@ -28,19 +28,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_util.3x,v 1.139 2025/02/15 18:38:01 tom Exp @ ++ * @Id: curs_util.3x,v 1.141 2025/04/05 22:22:48 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 2025-02-15 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_util 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_util 3x 2025-02-15 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_util 3x 2025-04-05 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> + +@@ -292,9 +292,9 @@ + 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> SVr4 <EM>curses</EM> does not delay if no padding character is available. + +- <STRONG>o</STRONG> NetBSD curses uses <STRONG>napms</STRONG> when no padding character is available, ++ <STRONG>o</STRONG> NetBSD <EM>curses</EM> uses <STRONG>napms</STRONG> when no padding character is available, + but does not take timing into account when using the padding + character. + +@@ -331,20 +331,20 @@ + 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 +- in the 4.3BSD curses sources. ++ in the 4.3BSD <EM>curses</EM> sources. + + <STRONG>o</STRONG> Most implementations simply dump the binary <EM>WINDOW</EM> structure to the + file. These include SVr4 <EM>curses</EM>, NetBSD <EM>curses</EM>, and <EM>PDCurses</EM>, 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. ++ <EM>xcurses</EM>, the X/Open variant of Solaris <EM>curses</EM>, dated 1995) uses ++ textual dumps. + +- The implementations that use binary dumps use block-I/O (<STRONG>write(2)</STRONG> +- and <STRONG>read(2)</STRONG> functions). Those that use textual dumps use buffered- ++ The implementations that use binary dumps use block I/O (<STRONG>write(2)</STRONG> ++ and <STRONG>read(2)</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 file ++ 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. + + +@@ -364,7 +364,7 @@ + "~A", etc., analogous to "^@", "^A", C0 controls. + + X/Open Curses does not document whether <STRONG>unctrl</STRONG> can be called before +- initializing curses. This implementation permits that, and returns ++ initializing <EM>curses</EM>. This implementation permits that, and returns + the "~@", etc., values in that case. + + <STRONG>o</STRONG> parameter values outside the 0 to 255 range. <STRONG>unctrl</STRONG> returns a null +@@ -383,22 +383,22 @@ + 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 ++ <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 <EM>curses</EM> 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 <EM>curses</EM>), 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 +- behavior of SVr4 curses. Other implementations may not do that. ++ behavior of SVr4 <EM>curses</EM>. 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 +- <STRONG>use_env</STRONG> is not provided by other implementations of curses. ++ <STRONG>use_env</STRONG> is not provided by other implementations of <EM>curses</EM>. + + + </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE> +@@ -410,7 +410,7 @@ + and <EM>putwin</EM>, reading and writing window dumps with <STRONG>fread(3)</STRONG> and + <STRONG>fwrite(3)</STRONG>, respectively. + +- SVr4 (1989) supplied <EM>use</EM><STRONG>_</STRONG><EM>env</EM>. ++ SVr4 (1989) furnished <EM>use</EM><STRONG>_</STRONG><EM>env</EM>. + + X/Open Curses Issue 4 (1995) specified <EM>key</EM><STRONG>_</STRONG><EM>name</EM> and <EM>wunctrl</EM>. + +@@ -424,7 +424,7 @@ + + + +-ncurses 6.5 2025-02-15 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/curs_variables.3x.html +--- ncurses-6.5-20250329+/doc/html/man/curs_variables.3x.html 2025-01-19 00:55:00.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/curs_variables.3x.html 2025-04-05 22:33:05.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_variables.3x,v 1.58 2025/01/19 00:51:10 tom Exp @ ++ * @Id: curs_variables.3x,v 1.62 2025/04/05 22:24:24 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_variables 3x 2025-01-18 ncurses 6.5 Library calls</TITLE> ++<TITLE>curs_variables 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">curs_variables 3x 2025-01-18 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">curs_variables 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG> + +@@ -159,44 +159,46 @@ + </PRE><H3><a name="h3-curscr_newscr_stdscr">curscr, newscr, stdscr</a></H3><PRE> + When a <EM>curses</EM> application calls <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>, the library + creates a window named <STRONG>stdscr</STRONG> that is the same size as the terminal +- screen and is the implicit window used by functions that interact with +- a window but do not take a parameter identifying one; many <EM>curses</EM> +- functions use it. An application need not use <STRONG>stdscr</STRONG>; it might prefer ++ screen, (minus any lines reserved by <STRONG><A HREF="curs_kernel.3x.html">ripoffline(3x)</A></STRONG> or <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG>) ++ and is the implicit window used by functions that interact with a ++ window but do not take a parameter identifying one; many <EM>curses</EM> ++ functions use it. An application need not use <STRONG>stdscr</STRONG>; it might prefer + to tile the display into multiple windows instead. + +- The library records updates to the terminal screen in a window named +- <STRONG>curscr</STRONG>. This object is referred to as the "physical screen" in ++ The library records updates to the terminal screen in a window named ++ <STRONG>curscr</STRONG>. This object is referred to as the "physical screen" in + <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> and <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>. + +- <EM>ncurses</EM> collects pending updates to the terminal screen in a window +- named <STRONG>newscr</STRONG>. This object is referred to as the "virtual screen" in +- the <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, and <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>. When the +- screen is refreshed, <EM>curses</EM> determines a minimal set of updates using ++ <EM>ncurses</EM> collects pending updates to the terminal screen in a window ++ named <STRONG>newscr</STRONG>. This object is referred to as the "virtual screen" in ++ the <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, and <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>. When the ++ screen is refreshed, <EM>curses</EM> determines a minimal set of updates using + the terminal's capabilities to make <STRONG>curscr</STRONG> look like <STRONG>newscr</STRONG>. + + + </PRE><H3><a name="h3-COLORS">COLORS</a></H3><PRE> +- Once <EM>curses</EM> is initialized, <STRONG>COLORS</STRONG> contains the number of colors ++ Once <EM>curses</EM> is initialized, <STRONG>COLORS</STRONG> contains the number of colors + supported by the terminal; see <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>. + + + </PRE><H3><a name="h3-COLOR_PAIRS">COLOR_PAIRS</a></H3><PRE> +- Once <EM>curses</EM> is initialized, <STRONG>COLOR_PAIRS</STRONG> contains the number of color ++ Once <EM>curses</EM> is initialized, <STRONG>COLOR_PAIRS</STRONG> contains the number of color + pairs supported by the terminal; see <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>. + + + </PRE><H3><a name="h3-COLS_LINES">COLS, LINES</a></H3><PRE> +- Once <EM>curses</EM> is initialized, <STRONG>COLS</STRONG> and <STRONG>LINES</STRONG> contain the screen's width +- and height in character cells, respectively; that is, the number of ++ Once <EM>curses</EM> is initialized, <STRONG>COLS</STRONG> and <STRONG>LINES</STRONG> contain the screen's width ++ and height in character cells, respectively; that is, the number of + columns and lines. + + + </PRE><H3><a name="h3-ESCDELAY">ESCDELAY</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 +- <EM>escape</EM> <EM>sequence</EM> (as commonly produced by function keys), it waits after +- the escape character to see if further characters are available on the +- input stream within a short interval. <STRONG>ESCDELAY</STRONG> stores this interval in ++ When reading key strokes from a window in keypad mode, <EM>curses</EM> ++ distinguishes the ESC character resulting from a user's press of the ++ "Escape" key on the input device from one beginning an escape sequence ++ (commonly produced by function keys), by waiting after the escape ++ character to see if further characters are available on the input ++ stream within a short interval. <STRONG>ESCDELAY</STRONG> stores this interval in + milliseconds. + + If <STRONG><A HREF="curs_inopts.3x.html">keypad(3x)</A></STRONG> is disabled for the <EM>curses</EM> window receiving input, a +@@ -281,14 +283,14 @@ + [UAX #29] "Unicode Standard Annex #29: Unicode Text Segmentation" + <https://unicode.org/reports/tr29/> + +- <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG> further discusses <STRONG>CCHARW_MAX</STRONG>. ++ <STRONG><A HREF="curs_getcchar.3x.html">getcchar(3x)</A></STRONG> further discusses the <EM>ncurses</EM> extension <STRONG>CCHARW_MAX</STRONG>. + + <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>, <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, + <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> + + + +-ncurses 6.5 2025-01-18 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/ncurses.3x.html +--- ncurses-6.5-20250329+/doc/html/man/ncurses.3x.html 2025-03-22 22:52:53.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/ncurses.3x.html 2025-04-05 22:57:21.000000000 +0000 +@@ -28,19 +28,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: ncurses.3x,v 1.245 2025/03/01 21:43:30 tom Exp @ ++ * @Id: ncurses.3x,v 1.252 2025/04/05 22:54:19 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 2025-03-01 ncurses 6.5 Library calls</TITLE> ++<TITLE>ncurses 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">ncurses 3x 2025-03-01 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">ncurses 3x 2025-04-05 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,7 +61,7 @@ + displays 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 20250322). ++ document describes <EM>ncurses</EM> version 6.5 (patch 20250405). + + <EM>ncurses</EM> permits control of the terminal screen's contents; abstraction + and subdivision thereof with <EM>windows</EM> and <EM>pads</EM>; acquisition of keyboard +@@ -124,8 +124,8 @@ + <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> must be called to initialize <EM>curses</EM> before + use of any functions that access or manipulate windows or screens. + +- To get character-at-a-time input without echoing--most interactive, +- screen-oriented programs want this--use the following sequence. ++ To get character-at-a-time input without echoing -- most interactive, ++ screen-oriented programs want this -- use the following sequence. + + initscr(); cbreak(); noecho(); + +@@ -134,7 +134,7 @@ + noqiflush(); + keypad(stdscr, TRUE); + +- A <EM>curses</EM> program then often enters an event loop of some sort. Call ++ A <EM>curses</EM> program then often enters an event-handling loop. Call + <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> before exiting. + + +@@ -265,9 +265,9 @@ + 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>. X/Open Curses +- does not specify the sizes of the character code or color +- pair identifier, nor the quantity of attribute bits, in ++ <EM>ncurses</EM> stores each cell of a <EM>WINDOW</EM> as a <EM>chtype</EM>. X/Open ++ Curses does not specify the sizes of the character code or ++ color pair identifier, nor the quantity of 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 represent Unicode, +@@ -282,7 +282,7 @@ + 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>. Another exception is <STRONG>ins_nwstr</STRONG> (and its variants), ++ <STRONG>wadd_wch</STRONG>. An exception is <STRONG>ins_nwstr</STRONG> (and its variants), + spelled thus instead of "insn_wstr". (Exceptions that add + only "w" comprise <STRONG>addwstr</STRONG>, <STRONG>inwstr</STRONG>, and their variants.) + +@@ -310,31 +310,32 @@ + 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. ++ <EM>ncurses</EM> stores each cell of a <EM>WINDOW</EM> 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 types ++ 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 <EM>WEOF</EM>, +- 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 <EM>WEOF</EM>, ++ analogously to the <EM>int</EM>-sized character manipulation + functions of ISO C and its constant <EM>EOF</EM>. + + + </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. + + <EM>curses</EM> Function Name Man Page +@@ -385,8 +386,8 @@ + curses_version <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>* + def_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> + def_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> +- + define_key <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>* ++ + del_curterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> + delay_output <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> + delch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> +@@ -452,9 +453,9 @@ + immedok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> + in_wch <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> + in_wchnstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> +- + in_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> + inch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> ++ + inchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> + inchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> + init_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> +@@ -519,10 +520,10 @@ + mvaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> + mvaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> + mvaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> +- + mvaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> + mvaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> + mvchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> ++ + mvcur <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(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> +@@ -586,11 +587,11 @@ + mvwins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> + mvwins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> + mvwins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> +- + mvwinsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> + mvwinsnstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> + mvwinsstr <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> + mvwinstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> ++ + mvwinwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> + mvwprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> + mvwscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> +@@ -653,12 +654,12 @@ + slk_attr_on <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> + slk_attr_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> + slk_attroff <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> +- + slk_attron <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> + slk_attrset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> + slk_clear <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> + slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> + slk_init <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> ++ + slk_label <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> + slk_noutrefresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> + slk_refresh <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> +@@ -720,13 +721,13 @@ + wadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> + wadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> + waddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> +- + waddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> + waddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> + waddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> + waddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> + waddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> + waddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> ++ + wattr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> + wattr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> + wattr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> +@@ -787,7 +788,6 @@ + wnoutrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> + wprintw <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> + wredrawln <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> +- + wrefresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> + wresize <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>* + wscanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> +@@ -795,6 +795,7 @@ + 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> + wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> +@@ -803,43 +804,43 @@ + 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 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 <EM>NULL</EM> 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 ++ 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 <EM>NULL</EM> 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. <EM>ncurses</EM> interprets its integral value as +- the terminal's line speed in bits per second. 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 ++ The debugging library checks this variable when the application has ++ redirected output to a file. <EM>ncurses</EM> interprets its integral value as ++ the terminal's line speed in bits per second. 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 the terminal's line speed. + + + </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. + +@@ -850,192 +851,192 @@ + + </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 +- obtain the width of the window in which they are executing. <EM>ncurses</EM> +- enforces an upper limit of 512 when reading the value. 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 ++ Applications running in a windowing environment usually are able to ++ obtain the width of the window in which they are executing. <EM>ncurses</EM> ++ enforces an upper limit of 512 when reading the value. 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 + 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; <EM>ncurses</EM> enforces an upper limit of 30,000 (30 ++ variable overrides it; <EM>ncurses</EM> enforces an upper limit of 30,000 (30 + seconds) when reading the value. + +- 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 type names, delimited by +- vertical bars (<STRONG>|</STRONG>) or colons (<STRONG>:</STRONG>), 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 only) When <EM>ncurses</EM> is configured to use the GPM interface, this ++ variable may list one or more terminal type names, delimited by ++ vertical bars (<STRONG>|</STRONG>) or colons (<STRONG>:</STRONG>), 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 itself to prevent ++ 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 ++ 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. + +@@ -1048,62 +1049,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 ++ <STRONG>o</STRONG> Descriptions in <EM>terminfo</EM> format are normally stored in a directory + tree using subdirectories named for the common first letters of the +- terminal types named therein. This is the scheme used in System V. ++ terminal types named therein. System V used this scheme. + + <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 +@@ -1113,10 +1114,10 @@ + TERMINFO=$(infocmp -0 -Q2 -q) + export TERMINFO + +- The compiled description is used only if it corresponds to the ++ <EM>ncurses</EM> uses the compiled description 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 +@@ -1134,16 +1135,16 @@ + + + </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. + +@@ -1153,9 +1154,9 @@ + + + </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> +@@ -1164,24 +1165,24 @@ + + <STRONG>#include</STRONG> <STRONG><curses.h></STRONG> + +- 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 ++ 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> + +- Installation also omits a symbolic link that would cause the +- compiler's <STRONG>-lcurses</STRONG> option to link object files with <EM>ncurses</EM> ++ 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 ++ The directory used by this configuration of <EM>ncurses</EM> is shown in + section "SYNOPSIS" above. + + <STRONG>--enable-widec</STRONG> +- The configure script renames the library and (if the +- <STRONG>--disable-overwrite</STRONG> option is used) puts the header files in a +- different subdirectory. All of the library names have a "w" ++ The configure script renames the library and (if the ++ <STRONG>--disable-overwrite</STRONG> option is used) puts the header files in a ++ different subdirectory. All of the library names have a "w" + appended to them, i.e., instead of + + <STRONG>-lncurses</STRONG> +@@ -1190,65 +1191,67 @@ + + <STRONG>-lncursesw</STRONG> + +- You must also enable the wide-character features in the header +- file when compiling for the wide-character library to use the +- extended (wide-character) functions. The symbol which enables ++ You must also enable the wide-character features in the header ++ file when compiling for the wide-character library to use the ++ extended (wide-character) functions. The symbol which enables + these features has changed since X/Open Curses Issue 4: + +- <STRONG>o</STRONG> Originally, the wide-character feature required the symbol ++ <STRONG>o</STRONG> Originally, the wide-character feature required the symbol + <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> but that was only valid for XPG4 + (1996). + +- <STRONG>o</STRONG> Later, that was deemed conflicting with <STRONG>_XOPEN_SOURCE</STRONG> defined +- to 500. ++ <STRONG>o</STRONG> Later, that was deemed conflicting with an <STRONG>_XOPEN_SOURCE</STRONG> value ++ of 500. + +- <STRONG>o</STRONG> As of mid-2018, none of the features in this implementation +- require a <STRONG>_XOPEN_SOURCE</STRONG> feature greater than 600. However, ++ <STRONG>o</STRONG> As of mid-2018, none of the features in this implementation ++ require a <STRONG>_XOPEN_SOURCE</STRONG> feature greater than 600. However, + X/Open Curses Issue 7 (2009) recommends defining it to 700. + +- <STRONG>o</STRONG> Alternatively, you can enable the feature by defining +- <STRONG>NCURSES_WIDECHAR</STRONG> with the caveat that some other header file +- than <STRONG>curses.h</STRONG> may require a specific value for <STRONG>_XOPEN_SOURCE</STRONG> ++ <STRONG>o</STRONG> Alternatively, you can enable the feature by defining ++ <STRONG>NCURSES_WIDECHAR</STRONG> with the caveat that some header file other ++ than <EM>curses.h</EM> may require a specific value for <STRONG>_XOPEN_SOURCE</STRONG> + (or a system-specific symbol). + +- The <EM>curses.h</EM> header file installed for the wide-character library +- is designed to be compatible with the non-wide library's header. +- Only the size of the <EM>WINDOW</EM> structure differs; few applications +- require more than pointers to <EM>WINDOW</EM>s. ++ The <EM>curses.h</EM> header file installed for the wide-character library ++ is designed to be compatible with the non-wide library's header. ++ Only the size of the <EM>WINDOW</EM> structure differs; few applications ++ require more than pointers to <EM>WINDOW</EM>. + + If the headers are installed allowing overwrite, the wide- +- character library's headers should be installed last, to allow ++ character library's headers should be installed last, to allow + applications to be built using either library from the same set of + headers. + + <STRONG>--with-pthread</STRONG> +- The configure script renames the library. All of the library +- names have a "t" appended to them (before any "w" added by ++ The configure script renames the library. All of the library ++ names have a "t" appended to them (before any "w" added by + <STRONG>--enable-widec</STRONG>). + +- The global variables such as <STRONG>LINES</STRONG> are replaced by macros to allow +- read-only access. At the same time, setter-functions are provided +- to set these values. Some applications (very few) may require ++ <EM>ncursest</EM> and <EM>ncursestw</EM> replace global variables such as <STRONG>LINES</STRONG> with ++ macros allowing read-only access. At the same time, they provide ++ functions to set these values. Very few applications require + changes to work with this convention. + + <STRONG>--with-shared</STRONG> + <STRONG>--with-normal</STRONG> + <STRONG>--with-debug</STRONG> + <STRONG>--with-profile</STRONG> +- The shared and normal (static) library names differ by their +- suffixes, e.g., <STRONG>libncurses.so</STRONG> and <STRONG>libncurses.a</STRONG>. The debug and +- profiling libraries add a "_g" and a "_p" to the root names +- respectively, e.g., <STRONG>libncurses_g.a</STRONG> and <STRONG>libncurses_p.a</STRONG>. ++ The shared and normal (static) library names differ by their ++ suffixes, e.g., <EM>libncurses.so</EM> and <EM>libncurses.a</EM>. The debug and ++ profiling libraries add a "_g" and a "_p" to the roots of these ++ respective names, forming <EM>libncurses</EM><STRONG>_</STRONG><EM>g.so</EM> and <EM>libncurses</EM><STRONG>_</STRONG><EM>p.a</EM>, for ++ example. + + <STRONG>--with-termlib</STRONG> +- Low-level functions which do not depend upon whether the library +- supports wide-characters, are provided in the tinfo library. +- +- By doing this, it is possible to share the tinfo library between +- wide/normal configurations as well as reduce the size of the +- library when only low-level functions are needed. ++ This option configures <EM>ncurses</EM> to provide low-level functions that ++ do not depend upon wide-character support in a library names ++ <EM>tinfo</EM>. ++ ++ This arrangement enables <EM>tinfo</EM> to be shared between <EM>ncurses</EM> and ++ <EM>ncursesw</EM> libraries as well as application linking and/or loading ++ times when it requires only low-level functions. + +- Those functions are described in these pages: ++ The following pages describe low-level <EM>curses</EM> functions. + + <STRONG>o</STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> - miscellaneous <EM>curses</EM> extensions + +@@ -1265,10 +1268,10 @@ + <STRONG>o</STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> - miscellaneous <EM>curses</EM> utility routines + + <STRONG>--with-trace</STRONG> +- The <STRONG>trace</STRONG> function normally resides in the debug library, but it +- is sometimes useful to configure this in the shared library. +- Configure scripts should check for the function's existence rather +- than assuming it is always in the debug library. ++ The <STRONG>trace</STRONG> function normally resides in the debug library, but it ++ is sometimes useful to expose it in the shared or static library. ++ Configuration scripts should check for the function's existence ++ rather than assuming it is confined to the debug library. + + + </PRE><H2><a name="h2-FILES">FILES</a></H2><PRE> +@@ -1280,213 +1283,213 @@ + + + </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE> +- X/Open Curses permits most functions it specifies to be made available ++ X/Open Curses permits most functions it specifies to be made available + as macros as well. <EM>ncurses</EM> does so + + <STRONG>o</STRONG> for functions that return values via their parameters, + + <STRONG>o</STRONG> to support obsolete features, + +- <STRONG>o</STRONG> to reuse functions (for example, those that move the cursor before ++ <STRONG>o</STRONG> to reuse functions (for example, those that move the cursor before + another operation), and + + <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 +- writes screen updates to the standard error file descriptor. This was ++ If the standard output file descriptor of an <EM>ncurses</EM> program is ++ redirected to something that is not a terminal device, the library ++ writes screen updates to the standard error file descriptor. This was + an undocumented feature of SVr3 <EM>curses</EM>. + +- See subsection "Header Files" below regarding symbols exposed by ++ See subsection "Header Files" below regarding symbols exposed by + inclusion of <EM>curses.h</EM>. + + + </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE> +- <EM>ncurses</EM> enables an application to capture mouse events on certain ++ <EM>ncurses</EM> enables an application to capture mouse events on certain + terminals, including <STRONG>xterm(1)</STRONG>; see <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>. + +- <EM>ncurses</EM> provides a means of responding to window resizing events, as +- when running in a GUI terminal emulator application such as <EM>xterm</EM>; see ++ <EM>ncurses</EM> provides a means of responding to window resizing events, as ++ when running in a GUI terminal emulator application such as <EM>xterm</EM>; see + <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> and <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>. + + <EM>ncurses</EM> allows an application to query the terminal for the presence of + a wide variety of special keys; see <STRONG><A HREF="curs_getch.3x.html">has_key(3x)</A></STRONG>. + + <EM>ncurses</EM> extends the fixed set of function key capabilities specified by +- X/Open Curses by allowing the application programmer to define +- additional key events at runtime; see <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, ++ X/Open Curses by allowing the application programmer to define ++ additional key events at runtime; see <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>, + <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>, and <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>. + +- <EM>ncurses</EM> can exploit the capabilities of terminals implementing +- ISO 6429/ECMA-48 SGR 39 and SGR 49 sequences, which allow an +- application to reset the terminal to its original foreground and +- background colors. From a user's perspective, the application is able +- to draw colored text on a background whose color is set independently, ++ <EM>ncurses</EM> can exploit the capabilities of terminals implementing ++ ISO 6429/ECMA-48 SGR 39 and SGR 49 sequences, which allow an ++ application to reset the terminal to its original foreground and ++ background colors. From a user's perspective, the application is able ++ to draw colored text on a background whose color is set independently, + providing better control over color contrasts. See <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>. + +- An <EM>ncurses</EM> application can eschew knowledge of <EM>SCREEN</EM> and <EM>WINDOW</EM> +- structure internals, instead using accessor functions such as ++ An <EM>ncurses</EM> application can eschew knowledge of <EM>SCREEN</EM> and <EM>WINDOW</EM> ++ structure internals, instead using accessor functions such as + <STRONG><A HREF="curs_inopts.3x.html">is_cbreak(3x)</A></STRONG> and <STRONG><A HREF="curs_opaque.3x.html">is_scrollok(3x)</A></STRONG>. + +- <EM>ncurses</EM> enables an application to direct its output to a printer ++ <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> +- that can gather color information from them when many colors are ++ <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> ++ that can gather color information from them when many colors are + supported. + +- <EM>ncurses</EM> permits modification of <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>'s behavior; see ++ <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; ++ Rudimentary support for multi-threaded applications may be available; + see <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>. + +- Functions that ease the management of multiple screens can be exposed; ++ 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>. + +- To aid applications to debug their memory usage, <EM>ncurses</EM> optionally +- offers functions to more aggressively free memory it dynamically ++ 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; ++ 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> ++ 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 ++ 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 + <EM>untic</EM> 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. An application that relies +- on <EM>ncurses</EM> to check its function parameters for validity limits its ++ 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> The first <EM>curses</EM>, in 4BSD, 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 <EM>termios.h</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. For portability even to old ++ 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. For portability even to old + AIX systems, 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. + + +@@ -1500,7 +1503,7 @@ + + + +-ncurses 6.5 2025-03-01 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/resizeterm.3x.html +--- ncurses-6.5-20250329+/doc/html/man/resizeterm.3x.html 2025-03-15 22:08:54.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/resizeterm.3x.html 2025-04-05 22:33:06.000000000 +0000 +@@ -1,6 +1,6 @@ + <!-- + **************************************************************************** +- * Copyright 2018-2023,2024 Thomas E. Dickey * ++ * Copyright 2018-2024,2025 Thomas E. Dickey * + * Copyright 1998-2015,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -28,19 +28,19 @@ + * authorization. * + **************************************************************************** + * Author: Thomas E. Dickey 1996-on +- * @Id: resizeterm.3x,v 1.60 2025/03/15 21:12:18 tom Exp @ ++ * @Id: resizeterm.3x,v 1.63 2025/04/05 22:26:38 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>resizeterm 3x 2025-03-15 ncurses 6.5 Library calls</TITLE> ++<TITLE>resizeterm 3x 2025-04-05 ncurses 6.5 Library calls</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">resizeterm 3x 2025-03-15 ncurses 6.5 Library calls</H1> ++<H1 class="no-header">resizeterm 3x 2025-04-05 ncurses 6.5 Library calls</H1> + <PRE> + <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> Library calls <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> + +@@ -94,8 +94,6 @@ + proper layout will rely upon the application. + + +-</PRE><H2><a name="h2-FUNCTIONS">FUNCTIONS</a></H2><PRE> +- + </PRE><H3><a name="h3-resizeterm">resizeterm</a></H3><PRE> + The function <STRONG>resizeterm</STRONG> resizes the standard and current windows (i.e., + <STRONG>stdscr</STRONG> and <STRONG>curscr</STRONG>) to the specified dimensions, and adjusts other +@@ -192,14 +190,13 @@ + + + +-ncurses 6.5 2025-03-15 <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="resizeterm.3x.html">resizeterm(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></li> +-<li><a href="#h2-FUNCTIONS">FUNCTIONS</a> ++<li><a href="#h2-DESCRIPTION">DESCRIPTION</a> + <ul> + <li><a href="#h3-resizeterm">resizeterm</a></li> + <li><a href="#h3-resize_term">resize_term</a></li> +Index: doc/html/man/scr_dump.5.html +--- ncurses-6.5-20250329+/doc/html/man/scr_dump.5.html 2025-01-19 00:55:01.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/scr_dump.5.html 2025-04-05 22:33:06.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: scr_dump.5,v 1.50 2025/01/19 00:51:10 tom Exp @ ++ * @Id: scr_dump.5,v 1.52 2025/04/05 21:56:26 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>scr_dump 5 2025-01-18 ncurses 6.5 File formats</TITLE> ++<TITLE>scr_dump 5 2025-04-05 ncurses 6.5 File formats</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">scr_dump 5 2025-01-18 ncurses 6.5 File formats</H1> ++<H1 class="no-header">scr_dump 5 2025-04-05 ncurses 6.5 File formats</H1> + <PRE> + <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG> File formats <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG> + +@@ -390,7 +390,7 @@ + + + +-ncurses 6.5 2025-01-18 <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/tabs.1.html +--- ncurses-6.5-20250329+/doc/html/man/tabs.1.html 2025-02-15 15:07:49.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/tabs.1.html 2025-04-05 22:33:06.000000000 +0000 +@@ -27,19 +27,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: tabs.1,v 1.70 2025/02/15 14:55:00 tom Exp @ ++ * @Id: tabs.1,v 1.72 2025/04/05 21:56:26 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>tabs 1 2025-02-15 ncurses 6.5 User commands</TITLE> ++<TITLE>tabs 1 2025-04-05 ncurses 6.5 User commands</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">tabs 1 2025-02-15 ncurses 6.5 User commands</H1> ++<H1 class="no-header">tabs 1 2025-04-05 ncurses 6.5 User commands</H1> + <PRE> + <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> User commands <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> + +@@ -257,7 +257,7 @@ + + + +-ncurses 6.5 2025-02-15 <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/term.5.html +--- ncurses-6.5-20250329+/doc/html/man/term.5.html 2024-06-15 20:39:31.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/term.5.html 2025-04-05 22:33:06.000000000 +0000 +@@ -1,7 +1,7 @@ + <!-- + * t + **************************************************************************** +- * Copyright 2018-2023,2024 Thomas E. Dickey * ++ * Copyright 2018-2024,2025 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -28,19 +28,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: term.5,v 1.80 2024/06/15 20:23:33 tom Exp @ ++ * @Id: term.5,v 1.83 2025/04/05 22:26:47 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-06-15 ncurses 6.5 File formats</TITLE> ++<TITLE>term 5 2025-04-05 ncurses 6.5 File formats</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">term 5 2024-06-15 ncurses 6.5 File formats</H1> ++<H1 class="no-header">term 5 2025-04-05 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> + +@@ -397,7 +397,7 @@ + + + +-ncurses 6.5 2024-06-15 <STRONG><A HREF="term.5.html">term(5)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="term.5.html">term(5)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/terminfo.5.html +--- ncurses-6.5-20250329+/doc/html/man/terminfo.5.html 2025-03-22 22:52:53.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/terminfo.5.html 2025-04-05 22:33:07.000000000 +0000 +@@ -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 20250322). ++ This document describes <EM>ncurses</EM> version 6.5 (patch 20250405). + + + </PRE><H3><a name="h3-terminfo-Entry-Syntax"><EM>terminfo</EM> Entry Syntax</a></H3><PRE> +Index: doc/html/man/tput.1.html +--- ncurses-6.5-20250329+/doc/html/man/tput.1.html 2025-03-01 22:03:53.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/tput.1.html 2025-04-05 22:33:07.000000000 +0000 +@@ -28,19 +28,19 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: tput.1,v 1.135 2025/03/01 21:45:34 tom Exp @ ++ * @Id: tput.1,v 1.137 2025/04/05 21:56:26 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 2025-03-01 ncurses 6.5 User commands</TITLE> ++<TITLE>tput 1 2025-04-05 ncurses 6.5 User commands</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> + <BODY> +-<H1 class="no-header">tput 1 2025-03-01 ncurses 6.5 User commands</H1> ++<H1 class="no-header">tput 1 2025-04-05 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> + +@@ -562,7 +562,7 @@ + + + +-ncurses 6.5 2025-03-01 <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> ++ncurses 6.5 2025-04-05 <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> + </PRE> + <div class="nav"> + <ul> +Index: doc/html/man/user_caps.5.html +--- ncurses-6.5-20250329+/doc/html/man/user_caps.5.html 2025-03-22 22:52:53.000000000 +0000 ++++ ncurses-6.5-20250405/doc/html/man/user_caps.5.html 2025-04-06 00:21:39.000000000 +0000 +@@ -1,7 +1,7 @@ + <!-- + * t + **************************************************************************** +- * Copyright 2018-2023,2024 Thomas E. Dickey * ++ * Copyright 2018-2024,2025 Thomas E. Dickey * + * Copyright 2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -28,14 +28,14 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: user_caps.5,v 1.53 2025/03/22 22:27:44 tom Exp @ ++ * @Id: user_caps.5,v 1.55 2025/04/06 00:20:20 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>user_caps 5 2025-03-22 ncurses 6.5 File formats</TITLE> ++<TITLE>user_caps 5 2025-04-05 ncurses 6.5 File formats</TITLE> + <link rel="author" href="mailto:bug-ncurses@gnu.org"> + + </HEAD> +Index: man/MKada_config.in +Prereq: 1.35 +--- ncurses-6.5-20250329+/man/MKada_config.in 2024-04-20 21:13:27.000000000 +0000 ++++ ncurses-6.5-20250405/man/MKada_config.in 2025-04-05 22:26:08.000000000 +0000 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright 2019-2023,2024 Thomas E. Dickey * ++.\" Copyright 2019-2024,2025 Thomas E. Dickey * + .\" Copyright 2010-2014,2016 Free Software Foundation, Inc. * + .\" * + .\" Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: MKada_config.in,v 1.35 2024/04/20 21:13:27 tom Exp $ +-.TH adacurses@USE_CFG_SUFFIX@\-config 1 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands" ++.\" $Id: MKada_config.in,v 1.37 2025/04/05 22:26:08 tom Exp $ ++.TH adacurses@USE_CFG_SUFFIX@\-config 1 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands" + .ds C adacurses@USE_CFG_SUFFIX@\-config + .ie \n(.g \{\ + .ds `` \(lq +@@ -97,6 +97,7 @@ + .PP + .if \n(LL>67n .RS 4 + .EX ++.nf + with Terminal_Interface.Curses; use Terminal_Interface.Curses; + + procedure Hello is +@@ -127,6 +128,7 @@ + + End_Windows; + end Hello; ++.fi + .EE + .if \n(LL>67n .RE + .ne 2 +Index: man/clear.1 +Prereq: 1.51 +--- ncurses-6.5-20250329+/man/clear.1 2025-01-19 00:49:39.000000000 +0000 ++++ ncurses-6.5-20250405/man/clear.1 2025-04-05 21:56:26.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: clear.1,v 1.51 2025/01/19 00:49:39 tom Exp $ +-.TH @CLEAR@ 1 2025-01-18 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands" ++.\" $Id: clear.1,v 1.53 2025/04/05 21:56:26 tom Exp $ ++.TH @CLEAR@ 1 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -113,8 +113,10 @@ + .PP + .RS 4 + .EX ++.nf + /usr/bin/tput ${1:+\-T$1} clear 2> /dev/null + exit ++.fi + .EE + .RE + .PP +Index: man/curs_add_wch.3x +Prereq: 1.112 +--- ncurses-6.5-20250329+/man/curs_add_wch.3x 2025-03-15 20:38:41.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_add_wch.3x 2025-04-05 21:58:37.000000000 +0000 +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_add_wch.3x,v 1.112 2025/03/15 20:38:41 tom Exp $ +-.TH curs_add_wch 3X 2025-03-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_add_wch.3x,v 1.114 2025/04/05 21:58:37 tom Exp $ ++.TH curs_add_wch 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -199,8 +199,8 @@ + when advancement occurs at the right margin, + and \fB\%scrollok\fP(3X) is enabled for + .IR win , +-the cursor wraps as above and +-the scrolling region scrolls up one line. ++the scrolling region scrolls up one line ++and the cursor wraps as above. + Otherwise, + advancement and scrolling do not occur, + and +Index: man/curs_addch.3x +Prereq: 1.132 +--- ncurses-6.5-20250329+/man/curs_addch.3x 2025-03-15 20:40:50.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_addch.3x 2025-04-05 21:58:37.000000000 +0000 +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_addch.3x,v 1.132 2025/03/15 20:40:50 tom Exp $ +-.TH curs_addch 3X 2025-03-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_addch.3x,v 1.135 2025/04/05 21:58:37 tom Exp $ ++.TH curs_addch 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -157,8 +157,8 @@ + when advancement occurs at the right margin, + and \fB\%scrollok\fP(3X) is enabled for + .IR win , +-the cursor wraps as above and +-the scrolling region scrolls up one line. ++the scrolling region scrolls up one line ++and the cursor wraps as above. + Otherwise, + advancement and scrolling do not occur, + and +@@ -467,7 +467,8 @@ + .bP + the + .I \%ncurses +-ABI\(emfor example, ++ABI \(em ++for example, + wide-character versus non-wide-character configurations + (the former is capable of displaying Unicode while the latter is not), + and +@@ -525,9 +526,9 @@ + .I \%ncurses + 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\(emfor +-example, +-with \fB\%wmove\fP(3X)\(em\c ++a multibyte character sequence by changing the current location \(em ++for example, ++with \fB\%wmove\fP(3X) \(em + .I \%ncurses + discards the incomplete character. + .PP +Index: man/curs_attr.3x +Prereq: 1.136 +--- ncurses-6.5-20250329+/man/curs_attr.3x 2025-02-15 19:35:37.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_attr.3x 2025-04-05 21:56:26.000000000 +0000 +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_attr.3x,v 1.136 2025/02/15 19:35:37 tom Exp $ +-.TH curs_attr 3X 2025-02-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_attr.3x,v 1.138 2025/04/05 21:56:26 tom Exp $ ++.TH curs_attr 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -174,8 +174,10 @@ + .PP + .RS 4 + .EX ++.nf + attrset(A_BOLD | COLOR_PAIR(\fIpair\fP)); + attr_set(A_BOLD, \fIpair\fP, NULL); ++.fi + .EE + .RE + .PP +@@ -197,8 +199,10 @@ + .PP + .RS 4 + .EX ++.nf + int value = A_BOLD | COLOR_PAIR(\fIinput\fP); + int \fIoutput\fP = PAIR_NUMBER(value); ++.fi + .EE + .RE + .PP +Index: man/curs_color.3x +Prereq: 1.116 +--- ncurses-6.5-20250329+/man/curs_color.3x 2025-03-01 21:17:37.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_color.3x 2025-04-05 21:59:03.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_color.3x,v 1.116 2025/03/01 21:17:37 tom Exp $ +-.TH curs_color 3X 2025-03-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_color.3x,v 1.118 2025/04/05 21:59:03 tom Exp $ ++.TH curs_color 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -193,28 +193,36 @@ + Consequently those calls use only the window attribute or + the background character. + .SH CONSTANTS +-In \fB\%<curses.h>\fP the following macros are defined. +-These are the standard colors (ISO-6429). +-\fIcurses\fP also assumes that \fB\%COLOR_BLACK\fP is the default +-background color for all terminals. +-.PP +-.nf +- \fBCOLOR_BLACK\fP +- \fBCOLOR_RED\fP +- \fBCOLOR_GREEN\fP +- \fBCOLOR_YELLOW\fP +- \fBCOLOR_BLUE\fP +- \fBCOLOR_MAGENTA\fP +- \fBCOLOR_CYAN\fP +- \fBCOLOR_WHITE\fP +-.fi +-.PP +-Some terminals support more than the eight (8) \*(``ANSI\*('' colors. +-There are no standard names for those additional colors. ++ISO\ 6429 and ECMA-48 ++define eight standard colors ++(also known as \*(``ANSI\*('' colors). ++.I curses\.h ++defines object-like macros ++.BR \%COLOR_BLACK "," ++.BR \%COLOR_RED "," ++.BR \%COLOR_GREEN "," ++.BR \%COLOR_YELLOW "," ++.BR \%COLOR_BLUE "," ++.BR \%COLOR_MAGENTA "," ++.BR \%COLOR_CYAN "," ++and ++.B \%COLOR_WHITE ++accordingly. ++.I curses ++assumes that ++.B \%COLOR_BLACK ++is the default background color for all terminals. ++.I \%ncurses ++offers an extension to override that assumption; ++see \fB\%assume_default_colors\fP(3X). ++Some terminals support additional colors that lack standard names. + .PP + .B \%A_COLOR +-is a bit mask that extracts a color pair identifier from a +-.IR \%chtype "." ++is a bit mask that, ++when bitwise \*(``and\*(''-ed with a ++.IR \%chtype "," ++.\" XXX: and right-shifted by...? ++extracts its color pair identifier. + .SH VARIABLES + .SS COLORS + is initialized by \fB\%start_color\fP to the maximum number of colors +Index: man/curs_delch.3x +Prereq: 1.47 +--- ncurses-6.5-20250329+/man/curs_delch.3x 2025-01-19 00:49:39.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_delch.3x 2025-04-05 21:59:53.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_delch.3x,v 1.47 2025/01/19 00:49:39 tom Exp $ +-.TH curs_delch 3X 2025-01-18 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_delch.3x,v 1.49 2025/04/05 21:59:53 tom Exp $ ++.TH curs_delch 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -39,6 +39,11 @@ + .ie t .ds '' '' + .el .ds '' "" + .\} ++. ++.de bP ++.ie n .IP \(bu 4 ++.el .IP \(bu 2 ++.. + .SH NAME + \fB\%delch\fP, + \fB\%wdelch\fP, +@@ -78,12 +83,18 @@ + .PP + In + .IR \%ncurses , +-they return +-.B ERR +-if ++these functions fail if ++.bP ++the ++.I curses ++screen has not been initialized, ++or ++.bP ++(for functions taking a ++.I \%WINDOW ++pointer argument) + .I win +-is +-.IR NULL "." ++is a null pointer. + .PP + Functions prefixed with \*(``mv\*('' first perform cursor movement and + fail if the position +Index: man/curs_deleteln.3x +Prereq: 1.51 +--- ncurses-6.5-20250329+/man/curs_deleteln.3x 2025-02-01 22:49:56.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_deleteln.3x 2025-04-05 22:00:17.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_deleteln.3x,v 1.51 2025/02/01 22:49:56 tom Exp $ +-.TH curs_deleteln 3X 2025-02-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_deleteln.3x,v 1.53 2025/04/05 22:00:17 tom Exp $ ++.TH curs_deleteln 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -96,8 +96,6 @@ + .B \%winsertln + or + .BR \%wdeleteln "." +-.PP +-\fB\%ncurses\fP(3X) describes the variants of these functions. + .SH RETURN VALUE + These functions return + .B OK +Index: man/curs_extend.3x +Prereq: 1.54 +--- ncurses-6.5-20250329+/man/curs_extend.3x 2025-01-19 00:49:39.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_extend.3x 2025-04-05 22:01:03.000000000 +0000 +@@ -29,8 +29,8 @@ + .\" + .\" Author: Thomas E. Dickey 1999-on + .\" +-.\" $Id: curs_extend.3x,v 1.54 2025/01/19 00:49:39 tom Exp $ +-.TH curs_extend 3X 2025-01-18 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_extend.3x,v 1.56 2025/04/05 22:01:03 tom Exp $ ++.TH curs_extend 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -77,8 +77,8 @@ + is made through use of \fB\%@TIC@\fP(1)'s + .B \-x + option to include such extensions in terminal type descriptions. +-.B \%use_extended_names +-can prevent ++.B \%use_extended_names(FALSE) ++prevents + .I \%ncurses + from recognizing these capabilities + to ensure compatibility with other implementations of +Index: man/curs_get_wch.3x +Prereq: 1.66 +--- ncurses-6.5-20250329+/man/curs_get_wch.3x 2025-02-15 19:35:48.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_get_wch.3x 2025-04-05 22:03:24.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_get_wch.3x,v 1.66 2025/02/15 19:35:48 tom Exp $ +-.TH curs_get_wch 3X 2025-02-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_get_wch.3x,v 1.69 2025/04/05 22:03:24 tom Exp $ ++.TH curs_get_wch 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -181,8 +181,23 @@ + on failure. + .B \%wget_wch + fails if +-.bP + its timeout expires without any data arriving, ++which cannot happen if \fB\%nodelay\fP(3X) is in effect on the window. ++.PP ++In ++.IR \%ncurses , ++.B \%wget_wch ++also fails if ++.bP ++the ++.I curses ++screen has not been initialized, ++.bP ++(for functions taking a ++.I \%WINDOW ++pointer argument) ++.I win ++is a null pointer, + or + .bP + execution was interrupted by a signal, +@@ -191,12 +206,6 @@ + is set to + .IR \%EINTR "." + .PP +-Functions taking a +-.I \%WINDOW +-pointer argument fail if +-.I win +-is a null pointer. +-.PP + Functions prefixed with \*(``mv\*('' first perform cursor movement and + fail if the position + .RI ( y , +@@ -208,7 +217,18 @@ + .B OK + on success and + .B ERR +-if there is no more room in the input queue. ++on failure. ++In ++.IR \%ncurses , ++.B \%unget_wch ++fails if ++.bP ++the ++.I curses ++screen has not been initialized, ++or ++.bP ++there is no more room in the input queue. + .SH NOTES + See the \*(``NOTES\*('' section of \fB\%wgetch\fP(3X). + .PP +@@ -220,7 +240,7 @@ + .PP + Unlike \fB\%wgetch\fP(3X), + .B \%wget_wch +-and its variants store the value of the input character in an additional ++stores the value of the input character in an additional + .I wch + parameter instead of the return value. + .PP +Index: man/curs_get_wstr.3x +Prereq: 1.70 +--- ncurses-6.5-20250329+/man/curs_get_wstr.3x 2025-02-15 14:55:47.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_get_wstr.3x 2025-04-05 22:36:46.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_get_wstr.3x,v 1.70 2025/02/15 14:55:47 tom Exp $ +-.TH curs_get_wstr 3X 2025-02-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_get_wstr.3x,v 1.75 2025/04/05 22:36:46 tom Exp $ ++.TH curs_get_wstr 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -97,7 +97,7 @@ + (after any + .IR WEOF ); + .bP +-interprets the screen's erase and kill characters ++interprets the screen's wide erase and wide kill characters + (see \fB\%erasewchar\fP(3X) and \fB\%killwchar\fP(3X)); + .bP + recognizes function keys only if the screen's keypad option is enabled +@@ -107,16 +107,16 @@ + .B \%KEY_LEFT + and + .B \%KEY_BACKSPACE +-the same as the erase character; ++the same as the wide erase character; + and + .bP +-discards function key inputs other than those treated as the erase +-character, ++discards function key inputs other than those ++treated as the wide erase or wide kill characters, + calling \fBbeep\fP(3X). + .PP +-The erase character replaces the character at the end of the buffer with +-a null wide character, +-while the kill character does the same for the entire buffer. ++The wide erase character replaces the character at the end of the buffer ++with a null wide character, ++while the wide kill character does the same for the entire buffer. + .PP + If the screen's echo option is enabled + (see \fBecho\fP(3X)), +@@ -126,12 +126,12 @@ + with \fB\%wadd_wch\fP(3X). + Further, + .bP +-the erase character ++the wide erase character + and its function key synonyms + move the cursor to the left, + and + .bP +-the kill character returns the cursor to where it was located when ++the wide kill character returns the cursor to where it was located when + .B \%wget_wstr + was called. + .PP +@@ -143,11 +143,12 @@ + aiding the application to avoid overrunning the buffer to which + .I wstr + points. +-An attempt to input more than ++.I curses ++ignores an attempt to input more than + .I n + wide characters +-(other than the terminating line feed or carriage return) +-is ignored with a beep. ++(other than the terminating line feed or carriage return), ++calling \fBbeep\fP(3X). + If + .I n + is negative, +@@ -168,16 +169,23 @@ + .PP + In + .IR \%ncurses "," +-they return +-.B ERR +-if ++these functions fail if + .bP ++the ++.I curses ++screen has not been initialized, ++.bP ++(for functions taking a ++.I \%WINDOW ++pointer argument) + .I win +-is +-.IR NULL "," ++is a null pointer, ++.bP ++.I str ++is a null pointer, + or + .bP +-if an internal \fB\%wget_wch\fP(3X) call fails. ++an internal \fB\%wget_wch\fP(3X) call fails. + .PP + Functions prefixed with \*(``mv\*('' first perform cursor movement and + fail if the position +Index: man/curs_getch.3x +Prereq: 1.121 +--- ncurses-6.5-20250329+/man/curs_getch.3x 2025-03-15 22:04:20.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_getch.3x 2025-04-05 22:04:30.000000000 +0000 +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_getch.3x,v 1.121 2025/03/15 22:04:20 tom Exp $ +-.TH curs_getch 3X 2025-03-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_getch.3x,v 1.127 2025/04/05 22:04:30 tom Exp $ ++.TH curs_getch 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -163,13 +163,16 @@ + .B \%wgetch + returns the character code for line feed instead. + .SS "Keypad Mode" +-To +-.IR curses "," +-key strokes not from the alphabetic section of the keyboard +-(those corresponding to the ECMA-6 character set\(emsee +-\fI\%ascii\fP(7)\(emoptionally modified by either the control or shift +-keys) +-are treated as ++Call \fB\%keypad\fP(3X) on a window to configure keypad mode ++when reading input from it. ++In ++.IR "keypad mode" "," ++.I curses ++treats key strokes not from the alphabetic section of the keyboard ++(those corresponding to the ECMA-6 character set \(em ++see \fI\%ascii\fP(7) \(em ++optionally modified by either the control or shift keys) ++as + .I function + keys. + (In +@@ -178,14 +181,16 @@ + engraved with \*(``F1\*('', + \*(``PF1\*('', + and so on.) +-If the window is in keypad mode, +-these produce a numeric code corresponding to the ++If a window is in keypad mode, ++.B \%wgetch ++translates these key strokes to a numeric code corresponding to the + .B KEY_ +-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 ++symbols listed in subsection \*(``Predefined Key Codes\*('' below. ++If a window is not in keypad mode, ++.B \%wgetch ++returns a sequence of codes ++typically starting with the escape character, ++which the application must collect individually with multiple + .B \%wgetch + calls. + .bP +@@ -195,16 +200,16 @@ + .I "predefined function keys" + whose names begin with + .BR KEY_ ";" +-these object-like macros have values outside the range of eight-bit +-character codes. ++these object-like macros ++have integer values outside the range of eight-bit character codes. + .bP + In + .IR \%ncurses "," + .I "user-defined function keys" + are configured with \fB\%define_key\fP(3X); + they have no names, +-but are also expected to have values outside the range of eight-bit +-codes. ++but are also expected to ++have integer values outside the range of eight-bit character codes. + .PP + A variable intended to hold a function key code must thus be of type + .I short +@@ -237,33 +242,34 @@ + .bP + If the escape sequence matches no function keys + defined for the terminal type, ++call + .B \%wgetch +-returns the code of the last +-(most recent) +-character it has read. ++repeatedly to obtain ++the codes of the individual characters of the sequence, ++in the order they occurred in the input. + .bP + If + .B \%wgetch + cannot decide the validity of the input as a function key + because it has not read enough characters to disambiguate it, + the function waits until it has this information or the +-.IR "escape delay" "," +-configured by the global variable +-.I \%ESCDELAY +-(an extension; +-see section \*(``EXTENSIONS\*('' below) ++.I "escape delay" ++elapses. ++Configure the escape delay ++with the global variable ++.IR \%ESCDELAY "," ++an extension ++(see section \*(``EXTENSIONS\*('' below), + or the environment variable of the same name + (see section \*(``ENVIRONMENT\*('' of \fB\%ncurses\fP(3X)), +-also an extension, +-elapses. ++also an extension. + .PP + Consequently, + a user of a + .I curses + application that employs keypad mode + may experience a pause or \*(``hang\*('' +-after the escape key is pressed +-while ++after pressing the escape key while + .I curses + collects sufficient characters to disambiguate the input. + If the window is in \*(``no time-out\*('' mode, +@@ -471,8 +477,23 @@ + on failure. + .B \%wgetch + fails if +-.bP + its timeout expires without any data arriving, ++which cannot happen if \fB\%nodelay\fP(3X) is in effect on the window. ++.PP ++In ++.IR \%ncurses , ++.B \%wgetch ++also fails if ++.bP ++the ++.I curses ++screen has not been initialized, ++.bP ++(for functions taking a ++.I \%WINDOW ++pointer argument) ++.I win ++is a null pointer, + or + .bP + execution was interrupted by a signal, +@@ -481,32 +502,35 @@ + is set to + .IR \%EINTR "." + .PP ++Functions prefixed with \*(``mv\*('' first perform cursor movement and ++fail if the position ++.RI ( y , ++.IR x ")" ++is outside the window boundaries. ++.PP + .B \%ungetch + returns + .B OK + on success and + .B ERR + on failure. ++In ++.IR \%ncurses , + .B \%ungetch +-fails if there is no more room in the input queue. ++fails if ++.bP ++the ++.I curses ++screen has not been initialized, ++or ++.bP ++there is no more room in the input queue. + .PP + .B \%has_key + returns + .B TRUE + or + .BR FALSE "." +-.PP +-Functions taking a +-.I \%WINDOW +-pointer argument fail if +-.I win +-is a null pointer. +-.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 \%getch "," + .BR \%mvgetch "," +@@ -736,10 +760,15 @@ + .I \%wgetch + and its variants. + .PP ++SVr3 (1987) ++added ++.IR \%ungetch "." ++.PP + .I \%ncurses + 1.9.9g (1996) +-added +-.IR \%has_key "." ++furnished the ++.I \%has_key ++extension. + .SH SEE ALSO + ECMA-6 \*(``7-bit coded Character Set\*('' + \%<https://\*:ecma\-international\*:.org/\ +Index: man/curs_getstr.3x +Prereq: 1.85 +--- ncurses-6.5-20250329+/man/curs_getstr.3x 2025-02-01 22:49:13.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_getstr.3x 2025-04-05 22:07:21.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_getstr.3x,v 1.85 2025/02/01 22:49:13 tom Exp $ +-.TH curs_getstr 3X 2025-02-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_getstr.3x,v 1.89 2025/04/05 22:07:21 tom Exp $ ++.TH curs_getstr 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -104,8 +104,8 @@ + the same as the erase character; + and + .bP +-discards function key inputs other than those treated as the erase +-character, ++discards function key inputs other than those ++treated as the erase or kill characters, + calling \fBbeep\fP(3X). + .PP + The erase character replaces the character at the end of the buffer with +@@ -137,11 +137,12 @@ + aiding the application to avoid overrunning the buffer to which + .I str + points. +-An attempt to input more than ++.I curses ++ignores an attempt to input more than + .I n + characters +-(other than the terminating line feed or carriage return) +-is ignored with a beep. ++(other than the terminating line feed or carriage return), ++calling \fBbeep\fP(3X). + If + .I n + is negative, +@@ -161,17 +162,24 @@ + on failure. + .PP + In +-.IR \%ncurses "," +-they return +-.B ERR +-if ++.IR \%ncurses , ++these functions fail if + .bP ++the ++.I curses ++screen has not been initialized, ++.bP ++(for functions taking a ++.I \%WINDOW ++pointer argument) + .I win +-is +-.IR NULL "," ++is a null pointer, ++.bP ++.I str ++is a null pointer, + or + .bP +-if an internal \fB\%wgetch\fP(3X) call fails. ++an internal \fB\%wgetch\fP(3X) call fails. + .PP + Further, + in +Index: man/curs_inopts.3x +Prereq: 1.102 +--- ncurses-6.5-20250329+/man/curs_inopts.3x 2025-03-15 21:11:52.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_inopts.3x 2025-04-05 22:07:49.000000000 +0000 +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_inopts.3x,v 1.102 2025/03/15 21:11:52 tom Exp $ +-.TH curs_inopts 3X 2025-03-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_inopts.3x,v 1.104 2025/04/05 22:07:49 tom Exp $ ++.TH curs_inopts 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -608,7 +608,7 @@ + and + .B \%wtimeout + configure whether the input character reading function +-\%(\fBgetch\fP(3X) or \fB\%get_wch\fP(3X)) ++\%(\fBwgetch\fP(3X) or \fB\%wget_wch\fP(3X)) + waits for keyboard input to begin, + and for how long. + .B \%keypad +Index: man/curs_mouse.3x +Prereq: 1.123 +--- ncurses-6.5-20250329+/man/curs_mouse.3x 2025-03-01 21:33:30.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_mouse.3x 2025-04-05 22:08:22.000000000 +0000 +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_mouse.3x,v 1.123 2025/03/01 21:33:30 tom Exp $ +-.TH curs_mouse 3X 2025-03-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_mouse.3x,v 1.126 2025/04/05 22:08:22 tom Exp $ ++.TH curs_mouse 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -120,9 +120,10 @@ + .PP + .I \%ncurses + ignores mouse events when input is in canonical (\*(``cooked\*('') mode, +-and produces an error beep when canonical mode is simulated in a window +-by a function such as \fB\%getstr\fP(3X) that expects a linefeed to +-terminate its input loop. ++and produces an error beep when they occur ++while the library simulates canonical mode in a window, ++as with \fB\%getstr\fP(3X), ++which expects a line feed to terminate its input loop. + .SS has_mouse + The terminal type or operating system interface + must support the encoding of mouse events. +@@ -372,20 +373,20 @@ + with motion, + as a \*(``drag\*(''. + .PP +-Calling +-.B \%mouseinterval(0) +-disables click resolution. + When + .I \%ncurses + detects a mouse event, + it awaits further input activity up to this interval, + and then checks for a subsequent mouse event which can be combined + with the first event. +-If the timeout expires without input activity +-(which would happen with a zero interval), ++If the timeout expires without input activity, + then no click resolution occurs. ++Calling ++.B \%mouseinterval(0) ++disables click resolution. + .PP +-This function returns the previous interval value. ++.B \%mouseinterval ++returns the previous interval value. + Use + .B \%mouseinterval(\-1) + to obtain the interval without altering it. +@@ -579,6 +580,7 @@ + .PP + .RS 8 + .EX ++.nf + extern int mouse_set(long int); + extern int mouse_on(long int); + extern int mouse_off(long int); +@@ -586,6 +588,7 @@ + extern int map_button(unsigned long); + extern void wmouse_position(WINDOW *, int *, int *); + extern unsigned long getmouse(void), getbmap(void); ++.fi + .EE + .RE + .bP +Index: man/curs_move.3x +Prereq: 1.61 +--- ncurses-6.5-20250329+/man/curs_move.3x 2025-03-08 23:18:46.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_move.3x 2025-04-05 22:08:55.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_move.3x,v 1.61 2025/03/08 23:18:46 tom Exp $ +-.TH curs_move 3X 2025-03-08 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_move.3x,v 1.63 2025/04/05 22:08:55 tom Exp $ ++.TH curs_move 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -39,6 +39,11 @@ + .ie t .ds '' '' + .el .ds '' "" + .\} ++. ++.de bP ++.ie n .IP \(bu 4 ++.el .IP \(bu 2 ++.. + .SH NAME + \fB\%move\fP, + \fB\%wmove\fP \- +@@ -77,19 +82,24 @@ + on success and + .B ERR + on failure. +-.PP +-They fail if the position +-.RI ( y , +-.IR x ) +-is outside the window boundaries. +-.PP + In + .IR \%ncurses , +-.B \%wmove +-fails if ++these functions fail if ++.bP ++the ++.I curses ++screen has not been initialized, ++.bP ++(for ++.BR \%wmove ")" + .I win +-is +-.IR NULL . ++is a null pointer, ++or ++.bP ++the position ++.RI ( y , ++.IR x ) ++is outside the window boundaries. + .SH NOTES + .B \%move + may be implemented as a macro. +Index: man/curs_outopts.3x +Prereq: 1.93 +--- ncurses-6.5-20250329+/man/curs_outopts.3x 2025-03-22 22:46:52.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_outopts.3x 2025-04-05 22:40:21.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_outopts.3x,v 1.93 2025/03/22 22:46:52 tom Exp $ +-.TH curs_outopts 3X 2025-03-22 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_outopts.3x,v 1.98 2025/04/05 22:40:21 tom Exp $ ++.TH curs_outopts 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -165,42 +165,47 @@ + deferring screen updates until a refresh is needed + or explicitly directed by the application. + .SS leaveok +-Normally, the hardware cursor is left at the location of the window cursor +-being refreshed. ++Normally, ++.I curses ++leaves the hardware cursor at the library's cursor location ++of the window being refreshed. + The + .B \%leaveok + option allows the cursor to be left + wherever the update happens to leave it. +-It is useful for applications where +-the cursor is not used, since it reduces the need for cursor motions. ++It is useful for applications that do not employ a visible cursor, ++since it reduces the need for cursor motions. + .SS scrollok + The + .B \%scrollok +-option controls what happens when the cursor of a window is +-moved off the edge of the window or scrolling region, either as a result of a +-newline action on the bottom line, or typing the last character of the last +-line. +-If disabled, ++option controls what happens when a window's cursor ++moves off the edge of the window or scrolling region, ++either as a result of a newline occurring on the bottom line, ++or writing to the last character of the last line. ++If disabled + .RI ( bf + is + .BR FALSE ")," +-the cursor is left on the bottom +-line. +-If enabled, ++.I curses ++leaves the cursor on the bottom line of the window. ++If enabled + .RI ( bf + is + .BR TRUE ")," +-the window is scrolled up one line +-(Note that to get the physical scrolling effect on the terminal, it is +-also necessary to call ++.I curses ++scrolls the window up one line. ++(To get the physical scrolling effect on the terminal, ++the application must also enable + .BR idlok ")." + .SS "setscrreg, wsetscrreg" + The +-.B \%setscrreg +-and + .B \%wsetscrreg +-routines allow the application +-programmer to set a software scrolling region in a window. ++and ++.B \%setscrreg ++functions allow the application ++to set a software scrolling region in the specified window or ++.BR \%stdscr "," ++respectively. + The + .I top + and +@@ -208,20 +213,22 @@ + parameters + are the line numbers of the top and bottom margin of the scrolling + region. +-(Line 0 is the top line of the window.) If this option and ++(Line 0 is the top line of the window.) ++If this option and + .B scrollok +-are enabled, an attempt to move off the bottom margin line +-causes all lines in the scrolling region to scroll one line in the direction +-of the first line. ++are enabled, ++an attempt to move off the bottom margin line ++causes all lines in the scrolling region ++to scroll one line in the direction of the first line. + Only the text of the window is scrolled. +-(Note that this +-has nothing to do with the use of a physical scrolling region capability in the +-terminal, like that in the VT100. ++(This process has nothing to do ++with the scrolling region capability of the terminal, ++as found in the DEC VT100.) + If + .B \%idlok + is enabled and the terminal +-has either a scrolling region or insert/delete line capability, they will +-probably be used by the output routines.) ++has either a scrolling region or insert/delete line capability, ++they will probably be used by the output routines.) + .SH RETURN VALUE + The functions + .B \%setscrreg +@@ -237,18 +244,27 @@ + return + .BR OK "." + .PP +-In this implementation, ++In ++.IR \%ncurses "," ++these functions fail if + .bP +-those functions that have a window pointer +-will return +-.B ERR +-if the window pointer is null ++the ++.I curses ++screen has not been initialized, + .bP +-.B \%wsetscrreg +-returns +-.B ERR +-if the scrolling region limits extend outside the +-window boundaries. ++(for functions taking a ++.I \%WINDOW ++pointer argument) ++.I win ++is a null pointer, ++or ++.bP ++(for ++.B \%setscrreg ++and ++.BR \%wsetscrreg ")" ++the function is passed arguments describing a scrolling region ++with limits that extend outside the window boundaries. + .SH NOTES + .BR \%clearok "," + .BR \%leaveok "," +@@ -258,6 +274,17 @@ + .B \%setscrreg + may be implemented as macros. + .PP ++Unlike the other functions described by this page, ++.B \%setscrreg ++does not accept a ++.RI pointer-to- WINDOW ++parameter, ++but operates on ++.BR stdscr "." ++Use ++.B \%wsetscrreg ++to configure the scrolling region of a selected window. ++.PP + The + .B \%immedok + routine is useful for windows that are used as terminal +@@ -298,8 +325,8 @@ + .IR \%leaveok "." + SVr4 + .I curses +-documentation notes this, +-but the code neglects it. ++documentation notes this behavior, ++but the code neglects to implement it. + Use \fB\%curs_set\fP(3X) to make the cursor invisible. + .SH HISTORY + 4BSD (1980) +Index: man/curs_printw.3x +Prereq: 1.57 +--- ncurses-6.5-20250329+/man/curs_printw.3x 2025-01-19 00:51:10.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_printw.3x 2025-04-05 22:20:25.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_printw.3x,v 1.57 2025/01/19 00:51:10 tom Exp $ +-.TH curs_printw 3X 2025-01-18 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_printw.3x,v 1.60 2025/04/05 22:20:25 tom Exp $ ++.TH curs_printw 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -143,58 +143,105 @@ + provides \fB\%vwprintw\fP, + but marks it as deprecated. + .SH HISTORY +-While \fB\%printw\fP was implemented in 4BSD +-(November 1980), ++4BSD (1980) ++introduced ++.I \%wprintw ++and its variants. + .\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/src/lib/\ + .\" libcurses/printw.c +-it was unused until 4.2BSD +-(August 1983), +-which employed it for games. +-That early version of ++.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/src/lib/\ ++.\" libcurses/mvprintw.c ++It implemented all as functions, ++not macros; ++this initial distribution of + .I curses +-preceded the ANSI C standard of 1989. +-It did not use \fI\%varargs.h\fP, +-though that had been available since Seventh Edition Unix (1979). ++preceded the ANSI C standard of 1989, ++prior to which a variadic macro facility was not widely available. ++.I \%printw ++went unused in Berkeley distributions until 4.1cBSD (1983), ++which employed it in games. ++.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.1cBSD/usr/src/\ ++.\" games/canfield.c ++.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.1cBSD/usr/src/\ ++.\" games/worm.c ++4BSD's ++.I \%wprintw ++did not use ++.IR \%varargs.h "," ++which had been available since Seventh Edition Unix (1979). + .\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/\ + .\" varargs.h + In 1991 + (a couple of years after SVr4 was generally available, + and after the C standard was published), + other developers updated the library, +-using \fI\%stdarg.h\fP internally in 4.4BSD ++using ++.I \%stdarg.h ++internally in 4.4BSD + .IR curses . + Even with this improvement, + BSD + .I curses + did not use function prototypes + (nor even declare functions) +-in \fI\%curses.h\fP until 1992. ++in ++.I \%curses.h ++until 1992. + .PP +-SVr2 (1984) documented \fB\%printw\fP and \fB\%wprintw\fP tersely as +-\*(``printf on \fB\%stdscr\fP\*('' and +-\*(``printf on \fIwin\fP\*('', ++4BSD documented ++.I \%printw ++and ++.I \%wprintw ++tersely as \*(``printf on ++.IR \%stdscr "\*(''" ++and \*(``printf on ++.IR win "\*(''," + respectively. ++.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/man/man3/\ ++.\" curses.3 + .PP +-SVr3 (1987) added \fB\%mvprintw\fP and \fB\%mvwprintw\fP, +-with a three-line summary asserting that they were analogous to +-\fI\%printf\fP(3), ++SVr3 summarized the functions in three lines, ++asserting that they were analogous to \fI\%printf\fP(3), + explaining that the string that \fI\%printf\fP(3) would write to the +-standard output stream would instead be output using \fB\%waddstr\fP to +-the given window. +-SVr3 also implemented \fB\%vwprintw\fP, +-describing its third parameter as a \fI\%va_list\fP, +-defined in \fI\%varargs.h\fP, +-and referred the reader to the manual pages for \fI\%varargs\fP and +-\fI\%vprintf\fP for detailed descriptions. +-.PP +-SVr4 (1989) introduced no new variations of \fI\%printw\fP, +-but provided for using either \fI\%varargs.h\fP or \fI\%stdarg.h\fP to +-define the \fI\%va_list\fP type. ++standard output stream would instead be output using ++.I \%waddstr ++to the given window. ++.\" GBR can't find a source to cite for this paraphrase, ++.\" even after checking ++.\" <https://github.com/ryanwoodsmall/oldsysv/tree/master>. ++.PP ++SVr3 added ++.IR \%vwprintw "," ++describing its third parameter as a ++.IR \%va_list "," ++defined in ++.IR \%varargs.h "," ++and referred the reader to the manual pages for ++.I \%varargs ++and ++.I \%vprintf ++for detailed descriptions. ++.PP ++SVr4 (1989) introduced no new variations of ++.IR \%printw "," ++but provided for using either ++.I \%varargs.h ++or ++.I \%stdarg.h ++to define the ++.I \%va_list ++type. + .\" either header declares "va_list", but only one can be used + .PP + X/Open Curses Issue\ 4 (1995), +-defined \fB\%vw_printw\fP to replace \fB\%vwprintw\fP, +-stating that its \fI\%va_list\fP type is defined in \fI\%stdarg.h\fP. ++defined ++.I \%vw_printw ++to replace ++.IR \%vwprintw "," ++stating that its ++.I \%va_list ++type is defined in ++.IR \%stdarg.h "." + .SH SEE ALSO + \fB\%curses\fP(3X), + \fB\%curs_addstr\fP(3X), +Index: man/curs_scanw.3x +Prereq: 1.57 +--- ncurses-6.5-20250329+/man/curs_scanw.3x 2025-01-19 00:51:10.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_scanw.3x 2025-04-05 22:20:10.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_scanw.3x,v 1.57 2025/01/19 00:51:10 tom Exp $ +-.TH curs_scanw 3X 2025-01-18 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_scanw.3x,v 1.60 2025/04/05 22:20:10 tom Exp $ ++.TH curs_scanw 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -185,65 +185,111 @@ + and check the value of the corresponding variable to determine how many + conversions succeeded. + .SH HISTORY +-\fB\%scanw\fP was implemented in 4BSD +-(November 1980); ++4BSD (1980) ++introduced ++.I \%wscanw ++and its variants. + .\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/src/lib/\ + .\" libcurses/scanw.c +-that early version of ++.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/src/lib/\ ++.\" libcurses/mvscanw.c ++It implemented all as functions, ++not macros; ++this initial distribution of + .I curses +-preceded the ANSI C standard of 1989. +-The function was unused in Berkeley distributions for over ten years, +-until 4.4BSD, ++preceded the ANSI C standard of 1989, ++prior to which a variadic macro facility was not widely available. ++.I \%scanw ++went unused in Berkeley distributions until 4.3BSD-Reno (1990), + which employed it in a game. +-The 4BSD \fB\%scanw\fP did not use \fI\%varargs.h\fP, +-though that had been available since Seventh Edition Unix (1979). ++.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-Reno/src/\ ++.\" games/chess/uxdsp.c ++4BSD's ++.I \%wscanw ++did not use ++.IR \%varargs.h "," ++which had been available since Seventh Edition Unix (1979). + .\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/\ + .\" varargs.h + In 1991 + (a couple of years after SVr4 was generally available, + and after the C standard was published), + other developers updated the library, +-using \fI\%stdarg.h\fP internally in 4.4BSD ++using ++.I \%stdarg.h ++internally in 4.4BSD + .IR curses . + Even with this improvement, + BSD + .I curses + did not use function prototypes + (nor even declare functions) +-in \fI\%curses.h\fP until 1992. ++in ++.I \%curses.h ++until 1992. + .PP +-SVr2 (1984) documented \fB\%scanw\fP and \fB\%wscanw\fP tersely as +-\*(``scanf through \fB\%stdscr\fP\*('' and +-\*(``scanf through \fIwin\fP\*('', ++4BSD documented ++.I \%scanw ++and ++.I \%wscanw ++tersely as \*(``scanf through ++.IR \%stdscr "\*(''" ++and \*(``scanf through ++.IR win "\*(''," + respectively. +-.PP +-SVr3 (1987) added +-\fB\%mvscanw\fP, and +-\fB\%mvwscanw\fP, stating ++.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/man/man3/\ ++.\" curses.3 ++SVr3 (1987) ++stated + .RS + .PP +-\*(``[t]hese routines correspond to \fIscanf\fP(3S), ++[t]hese routines correspond to \fIscanf\fP(3S), + as do their arguments and return values. +-\fB\%wgetstr\fP() is called on the window, +-and the resulting line is used as input for the scan.\*('' ++.IR \%wgetstr "()" ++is called on the window, ++and the resulting line is used as input for the scan. + .RE +-.PP +-SVr3 also implemented \fB\%vwscanw\fP, +-describing its third parameter as a \fI\%va_list\fP, +-defined in \fI\%varargs.h\fP, +-and referred the reader to the manual pages for \fI\%varargs\fP and +-\fI\%vprintf\fP for detailed descriptions. +-(Because the SVr3 documentation does not mention \fI\%vscanf\fP, +-the reference to \fI\%vprintf\fP might not be an error). +-.PP +-SVr4 (1989) introduced no new variations of \fI\%scanw\fP, +-but provided for using either \fI\%varargs.h\fP or \fI\%stdarg.h\fP to +-define the \fI\%va_list\fP type. ++.\" GBR can't find a source to cite for this quotation, ++.\" even after checking ++.\" <https://github.com/ryanwoodsmall/oldsysv/tree/master>. ++.PP ++SVr3 added ++.IR \%vwscanw "," ++describing its third parameter as a ++.IR \%va_list "," ++defined in ++.IR \%varargs.h "," ++and referred the reader to the manual pages for ++.I \%varargs ++and ++.I \%vprintf ++for detailed descriptions. ++(Because SVr3 documentation does not mention ++.IR \%vscanf "," ++the reference to ++.I \%vprintf ++might not be an error). ++.PP ++SVr4 (1989) introduced no new variations of ++.IR \%scanw "," ++but provided for using either ++.I \%varargs.h ++or ++.I \%stdarg.h ++to define the ++.I \%va_list ++type. + .\" either header declares "va_list", but only one can be used + .PP + X/Open Curses Issue\ 4 (1995), +-defined \fI\%vw_scanw\fP to replace \fI\%vwscanw\fP, +-stating that its \fI\%va_list\fP type is defined in \fI\%stdarg.h\fP. ++defined ++.I \%vw_scanw ++to replace ++.IR \%vwscanw "," ++stating that its ++.I \%va_list ++type is defined in ++.IR \%stdarg.h "." + .SH SEE ALSO + \fB\%curses\fP(3X), + \fB\%curs_getstr\fP(3X), +Index: man/curs_scroll.3x +Prereq: 1.57 +--- ncurses-6.5-20250329+/man/curs_scroll.3x 2025-02-02 00:02:49.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_scroll.3x 2025-04-05 22:20:39.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_scroll.3x,v 1.57 2025/02/02 00:02:49 tom Exp $ +-.TH curs_scroll 3X 2025-02-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_scroll.3x,v 1.59 2025/04/05 22:20:39 tom Exp $ ++.TH curs_scroll 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -122,6 +122,9 @@ + .I curses + screen has not been initialized, + .bP ++(for functions taking a ++.I \%WINDOW ++pointer argument) + .I win + is a null pointer, + or +Index: man/curs_terminfo.3x +Prereq: 1.162 +--- ncurses-6.5-20250329+/man/curs_terminfo.3x 2025-02-15 15:24:18.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_terminfo.3x 2025-04-05 22:21:02.000000000 +0000 +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_terminfo.3x,v 1.162 2025/02/15 15:24:18 tom Exp $ +-.TH curs_terminfo 3X 2025-02-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_terminfo.3x,v 1.164 2025/04/05 22:21:02 tom Exp $ ++.TH curs_terminfo 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -354,9 +354,8 @@ + .BR \%cur_term "." + .PP + .B \%del_curterm +-frees the memory pointed to by +-.IR \%oterm "," +-making it available for further use. ++releases the memory pointed to by ++.IR \%oterm "." + If + .I \%oterm + is +@@ -395,11 +394,11 @@ + .I str + with parameters + .IR pi "." +-A pointer is returned to the result of ++It returns a pointer to a character string representing + .I str +-with the parameters applied. +-Application developers should keep in mind these quirks of the +-interface: ++with the parameters applied to \*(``%\*('' expressions within. ++.\" XXX: Whose responsibility is it to free that string? ++Application developers should keep in mind some quirks of the interface. + .bP + Although \fB\%tparm\fP's actual parameters may be integers or strings, + the prototype expects +@@ -418,33 +417,45 @@ + The capability string is null-terminated. + Use \*(``\e200\*('' where an ASCII NUL is needed in the output. + .PP +-\fB\%tiparm\fP is a newer form of \fB\%tparm\fP which uses ++\fB\%tiparm\fP is a newer form of \fB\%tparm\fP that uses + .I \%stdarg.h +-rather than a fixed-parameter list. ++rather than a fixed-length parameter list. + Its numeric parameters are + .IR int s + rather than + .IR long "s." + .PP +-Both \fB\%tparm\fP and \fB\%tiparm\fP assume that the application passes +-parameters consistent with the terminal description. +-Two extensions are provided as alternatives to deal with untrusted data. ++.B \%tparm ++and ++.B \%tiparm ++assume that the application ++passes parameters consistent with the terminal description. ++.I \%ncurses ++provides two extensions as alternatives to deal with untrusted data. + .bP +-\fB\%tiparm_s\fP is an extension which is a safer formatting function +-than \fB\%tparm\fR or \fB\%tiparm\fR, ++The ++.B \%tiparm_s ++extension is a safer formatting function than ++.B \%tparm ++or ++.BR \%tiparm "," + because it allows the developer to tell the + .I curses + library how many parameters to expect in the parameter list, + and which may be string parameters. + .IP +-The \fImask\fP parameter has one bit set for each of the parameters ++The ++.I mask ++parameter has one bit set for each of the parameters + (up to 9) + passed as + .I char + pointers rather than numbers. + .bP +-The extension \fB\%tiscan_s\fP allows the application to inspect a +-formatting capability to see what the ++The extension ++.B \%tiscan_s ++allows the application ++to inspect a formatting capability to see what the + .I curses + library would assume. + .\" ******************************************************************** +@@ -453,22 +464,29 @@ + .IR padding "," + a time delay + (accommodating performance limitations of hardware terminals) +-expressed as \fB$<\fIn\fB>\fR, +-where \fIn\fP is a nonnegative integral count of milliseconds. +-If \fIn\fP exceeds 30,000 ++expressed as ++.BI $< n >\c ++, ++where ++.I n ++is a nonnegative integral count of milliseconds. ++If ++.I n ++exceeds 30,000 + (thirty seconds), +-it is capped at that value. ++.I \%ncurses ++caps it at that value. + .PP +-\fB\%tputs\fP interprets time-delay information in the string ++.B \%tputs ++interprets time delays in the string + .I str +-and outputs it, +-executing the delays: ++and acts upon them. + .bP + The + .I str + parameter must be a + .I \%term\%info +-string variable or the return value of ++string capability or the return value of + .B \%tparm + or + .BR \%tiparm "." +@@ -484,9 +502,9 @@ + .IR \%putchar -like + function to which the characters are passed, + one at a time. +-.IP +-If \fB\%tputs\fP processes a time-delay, +-it uses the \fB\%delay_output\fP(3X) function, ++.PP ++.B \%tputs ++processes each time delay with the \fB\%delay_output\fP(3X) function, + routing any resulting padding characters through this function. + .PP + \fB\%putp\fR calls +@@ -882,9 +900,11 @@ + X/Open Curses uses + .I \%const + less effectively than a later design might, +-sometimes applying it needlessly to values that are already constant, +-and in most cases overlooking parameters that normally would benefit +-from ++sometimes applying it needlessly to function parameters ++that are passed by value ++(and therefore copied), ++and in most cases overlooking parameters ++that normally would benefit from + .IR \%const "." + Passing + .IR \%const -qualified +@@ -980,12 +1000,14 @@ + .SS "Special \fITERM\fP treatment" + If + .I \%ncurses +-is configured to use the terminal driver, +-.\" XXX: as opposed to the Unix terminal driver, termio(s)? ++is configured to use a terminal driver ++that does not employ the POSIX ++.I \%termios ++API, + as with the MinGW port, + .bP + .I \%setupterm +-interprets a missing/empty ++interprets a missing or empty + .I TERM + variable as the special value \*(``unknown\*(''. + .IP +Index: man/curs_util.3x +Prereq: 1.139 +--- ncurses-6.5-20250329+/man/curs_util.3x 2025-02-15 18:38:01.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_util.3x 2025-04-05 22:22:48.000000000 +0000 +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_util.3x,v 1.139 2025/02/15 18:38:01 tom Exp $ +-.TH curs_util 3X 2025-02-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_util.3x,v 1.141 2025/04/05 22:22:48 tom Exp $ ++.TH curs_util 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -229,7 +229,8 @@ + using a value in those to override the results + from the operating system or terminal database. + .IP +-\fI\%curses\fP also updates the screen size in response to ++.I curses ++also updates the screen size in response to + \fBSIGWINCH\fP, + unless overridden by the \fILINES\fP or \fI\%COLUMNS\fP environment + variables, +@@ -380,9 +381,13 @@ + and the use of \fBnapms\fP + differ from other implementations. + .bP +-SVr4 curses does not delay if no padding character is available. ++SVr4 ++.I curses ++does not delay if no padding character is available. + .bP +-NetBSD curses uses \fBnapms\fP when no padding character is available, ++NetBSD ++.I curses ++uses \fBnapms\fP when no padding character is available, + but does not take timing into account when using the padding character. + .PP + Neither limits the delay. +@@ -427,9 +432,13 @@ + (in 1988) + incorporated into SVr4. + Oddly, +-there are no such functions in the 4.3BSD curses sources. ++there are no such functions in the 4.3BSD ++.I curses ++sources. + .bP +-Most implementations simply dump the binary \fI\%WINDOW\fP structure ++Most implementations simply dump the binary ++.I \%WINDOW ++structure + to the file. + These include SVr4 + .IR curses , +@@ -439,16 +448,19 @@ + .IR \%PDCurses , + as well as older \fI\%ncurses\fP versions. + This implementation +-(as well as the X/Open variant of Solaris curses, ++(as well as ++.IR \%xcurses "," ++the X/Open variant of Solaris ++.IR curses "," + dated 1995) + uses textual dumps. + .IP +-The implementations that use binary dumps use block-I/O ++The implementations that use binary dumps use block I/O + (\fIwrite\fP(2) and \fIread\fP(2) functions). +-Those that use textual dumps use buffered-I/O. ++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. ++Doing that can run into problems mixing block and buffered I/O. + This implementation reduces the problem on writes by flushing the + output. + However, +@@ -480,7 +492,8 @@ + C0 controls. + .IP + X/Open Curses does not document whether \fBunctrl\fP can be called +-before initializing curses. ++before initializing ++.IR curses "." + This implementation permits that, + and returns the \*(``\*~@\*('', + etc., +@@ -511,10 +524,12 @@ + it determines whether to use the \*(``M\-\*('' prefix + for \*(``meta\*('' keys (codes in the range 128 to 255). + Both \fB\%use_legacy_coding\fP(3X) and \fBmeta\fP(3X) succeed only after +-curses is initialized. ++.I curses ++is initialized. + X/Open Curses does not document the treatment of codes 128 to 159. + When treating them as \*(``meta\*('' keys +-(or if \fBkeyname\fP is called before initializing curses), ++(or if \fBkeyname\fP is called before initializing ++.IR curses ")," + this implementation returns strings \*(``M\-\*^@\*('', + \*(``M\-\*^A\*('', + etc. +@@ -523,7 +538,8 @@ + which \fI\%ncurses\fP does. + However, + \fI\%ncurses\fP' \fB<curses.h>\fP includes \fB<unctrl.h>\fP, +-matching the behavior of SVr4 curses. ++matching the behavior of SVr4 ++.IR curses "." + Other implementations may not do that. + .SS "use_env, use_tioctl" + If \fI\%ncurses\fP is configured to provide the sp-functions extension, +@@ -531,7 +547,8 @@ + creating each \fIscreen\fP rather than once only + (\fBcurs_sp_funcs\fP(3X)). + This feature of \fBuse_env\fP +-is not provided by other implementations of curses. ++is not provided by other implementations of ++.IR curses "." + .SH HISTORY + 4BSD (1980) + introduced +@@ -558,7 +575,7 @@ + with \fI\%fread\fP(3) and \fI\%fwrite\fP(3), + respectively. + .PP +-SVr4 (1989) supplied ++SVr4 (1989) furnished + .IR \%use_env "." + .PP + X/Open Curses Issue\ 4 (1995) specified +Index: man/curs_variables.3x +Prereq: 1.58 +--- ncurses-6.5-20250329+/man/curs_variables.3x 2025-01-19 00:51:10.000000000 +0000 ++++ ncurses-6.5-20250405/man/curs_variables.3x 2025-04-05 22:24:24.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_variables.3x,v 1.58 2025/01/19 00:51:10 tom Exp $ +-.TH curs_variables 3X 2025-01-18 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: curs_variables.3x,v 1.62 2025/04/05 22:24:24 tom Exp $ ++.TH curs_variables 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -240,7 +240,9 @@ + \fB\%initscr\fP(3X) or \fB\%newterm\fP(3X), + the library creates a window named + .B \%stdscr +-that is the same size as the terminal screen ++that is the same size as the terminal screen, ++(minus any lines reserved by ++\fB\%ripoffline\fP(3X) or \fB\%slk_init\fP(3X)) + and is the implicit window used by functions + that interact with a window + but do not take a parameter identifying one; +@@ -287,14 +289,15 @@ + that is, + the number of columns and lines. + .SS ESCDELAY +-For ++When reading key strokes from a window in keypad mode, + .I curses +-to distinguish the ESC character resulting from a user's press of the +-\*(``Escape\*('' key on the input device from one beginning an +-.I "escape sequence" +-(as commonly produced by function keys), +-it waits after the escape character to see if further characters are +-available on the input stream within a short interval. ++distinguishes the ESC character resulting from a user's press of the ++\*(``Escape\*('' key on the input device ++from one beginning an escape sequence ++(commonly produced by function keys), ++by waiting after the escape character ++to see if further characters are available ++on the input stream within a short interval. + .B \%ESCDELAY + stores this interval in milliseconds. + .PP +@@ -421,7 +424,9 @@ + .UE + .PP + \fB\%getcchar\fP(3X) +-further discusses ++further discusses the ++.I \%ncurses ++extension + .BR \%CCHARW_MAX "." + .PP + \fB\%curses\fP(3X), +Index: man/ncurses.3x +Prereq: 1.245 +--- ncurses-6.5-20250329+/man/ncurses.3x 2025-03-01 21:43:30.000000000 +0000 ++++ ncurses-6.5-20250405/man/ncurses.3x 2025-04-05 22:54:19.000000000 +0000 +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: ncurses.3x,v 1.245 2025/03/01 21:43:30 tom Exp $ +-.TH ncurses 3X 2025-03-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: ncurses.3x,v 1.252 2025/04/05 22:54:19 tom Exp $ ++.TH ncurses 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -203,8 +203,10 @@ + before use of any functions + that access or manipulate windows or screens. + .PP +-To get character-at-a-time input without echoing\(emmost interactive, +-screen-oriented programs want this\(emuse the following sequence. ++To get character-at-a-time input without echoing \(em ++most interactive, ++screen-oriented programs want this \(em ++use the following sequence. + .PP + .RS 4 + .EX +@@ -216,14 +218,16 @@ + .PP + .RS 4 + .EX ++.nf + noqiflush(); + keypad(stdscr, TRUE); ++.fi + .EE + .RE + .PP + A + .I curses +-program then often enters an event loop of some sort. ++program then often enters an event-handling loop. + Call \fB\%endwin\fP(3X) before exiting. + .SS Overview + A +@@ -483,9 +487,10 @@ + In either case, + they are accessed via an integral bit mask. + .IP +-Each cell of a ++.I \%ncurses ++stores each cell of a + .I \%WINDOW +-is stored as a ++as a + .IR \%chtype . + X/Open Curses does not specify the sizes of the character code or + color pair identifier, +@@ -514,7 +519,7 @@ + prefix it with \*(``_w\*('' to obtain the wide counterpart. + For example, + \fB\%waddch\fP becomes \fB\%wadd_wch\fP. +-Another exception is ++An exception is + .B \%ins_nwstr + (and its variants), + spelled thus instead of \*(``insn_wstr\*(''. +@@ -565,9 +570,10 @@ + not combined into an integer as in + .IR \%chtype . + .PP +-Each cell of a ++.I \%ncurses ++stores each cell of a + .I \%WINDOW +-is stored as a ++as a + .IR \%cchar_t . + \fB\%setcchar\fP(3X) and \fB\%getcchar\fP(3X) + store and retrieve +@@ -1495,6 +1501,7 @@ + .PP + .RS 3 + .EX ++.nf + # linux console, if patched to provide working + # VT100 shift\-in/shift\-out, with corresponding font. + linux\-vt100|linux console with VT100 line\-graphics, +@@ -1503,6 +1510,7 @@ + # uxterm with vt100Graphics resource set to false + xterm\-utf8|xterm relying on UTF\-8 line\-graphics, + U8#1, use=xterm, ++.nf + .EE + .RE + .PP +@@ -1582,7 +1590,7 @@ + .I \%term\%info + format are normally stored in a directory tree using subdirectories + named for the common first letters of the terminal types named therein. +-This is the scheme used in System\ V. ++System\ V used this scheme. + .bP + If + .I \%ncurses +@@ -1624,13 +1632,16 @@ + .RS 4 + .IP + .EX ++.nf + TERMINFO=$(infocmp \-0 \-Q2 \-q) + export TERMINFO ++.fi + .EE + .RE + .IP +-The compiled description is used only if it corresponds to the terminal +-type identified by ++.I \%ncurses ++uses the compiled description only if it corresponds ++to the terminal type identified by + .IR TERM . + .PP + Setting +@@ -1742,9 +1753,11 @@ + .PP + .RS 4 + .EX ++.nf + .\" The dummy character prevents undesired rewriting of the next line on + .\" installation of the man page. + \fB#\&include <curses.h>\fP ++.fi + .EE + .RE + .PP +@@ -1810,26 +1823,42 @@ + The symbol which enables these features has changed + since X/Open Curses Issue\ 4: + .bP +-Originally, the wide-character feature required the symbol +-\fB_XOPEN_SOURCE_EXTENDED\fP ++Originally, ++the wide-character feature required the symbol ++.B \%_XOPEN_SOURCE_EXTENDED + but that was only valid for XPG4 (1996). + .bP +-Later, that was deemed conflicting with \fB_XOPEN_SOURCE\fP defined to 500. ++Later, ++that was deemed conflicting with an ++.B \%_XOPEN_SOURCE ++value of 500. + .bP + As of mid-2018, +-none of the features in this implementation require a \fB_XOPEN_SOURCE\fP ++none of the features in this implementation require a ++.B \%_XOPEN_SOURCE + feature greater than 600. +-However, X/Open Curses Issue\ 7 (2009) recommends defining it to 700. ++However, ++X/Open Curses Issue\ 7 (2009) recommends defining it to 700. + .bP +-Alternatively, you can enable the feature by defining \fBNCURSES_WIDECHAR\fP +-with the caveat that some other header file than \fBcurses.h\fP +-may require a specific value for \fB_XOPEN_SOURCE\fP ++Alternatively, ++you can enable the feature by defining ++.B \%NCURSES_WIDECHAR ++with the caveat that some header file other than ++.I \%curses.h ++may require a specific value for ++.B \%_XOPEN_SOURCE + (or a system-specific symbol). + .PP +-The \fI\%curses.h\fP header file installed for the wide-character +-library is designed to be compatible with the non-wide library's header. +-Only the size of the \fI\%WINDOW\fP structure differs; +-few applications require more than pointers to \fI\%WINDOW\fPs. ++The ++.I \%curses.h ++header file installed ++for the wide-character library ++is designed to be compatible with the non-wide library's header. ++Only the size of the ++.I \%WINDOW ++structure differs; ++few applications require more than pointers to ++.IR \%WINDOW "." + .PP + If the headers are installed allowing overwrite, + the wide-character library's headers should be installed last, +@@ -1843,10 +1872,17 @@ + (before any \*(``w\*('' added by + .BR \%\-\-enable\-widec ). + .IP +-The global variables such as \fBLINES\fP are replaced by macros to +-allow read-only access. +-At the same time, setter-functions are provided to set these values. +-Some applications (very few) may require changes to work with this convention. ++.I \%ncursest ++and ++.I \%ncursestw ++replace global variables such as ++.B \%LINES ++with macros allowing read-only access. ++At the same time, ++they provide functions to set these values. ++Very few applications require changes ++to work with this convention. ++.\" see definition of NCURSES_WRAPPED_VAR + .TP 5 + .B \-\-with\-shared + .tQ +@@ -1856,20 +1892,37 @@ + .tQ + .B \-\-with\-profile + The shared and normal (static) library names differ by their suffixes, +-e.g., \fBlibncurses.so\fP and \fBlibncurses.a\fP. ++e.g., ++.I \%libncurses.so ++and ++.IR \%libncurses.a "." + The debug and profiling libraries add a \*(``_g\*('' +-and a \*(``_p\*('' to the root names respectively, +-e.g., \fBlibncurses_g.a\fP and \fBlibncurses_p.a\fP. ++and a \*(``_p\*('' to the roots of these respective names, ++forming ++.I \%libncurses_g.so ++and ++.IR \%libncurses_p.a "," ++for example. + .TP 5 + .B \-\-with\-termlib +-Low-level functions which do not depend upon whether the library +-supports wide-characters, are provided in the tinfo library. ++This option configures ++.I \%ncurses ++to provide low-level functions that do not depend ++upon wide-character support in a library names ++.IR \%tinfo "." + .IP +-By doing this, it is possible to share the tinfo library between +-wide/normal configurations as well as reduce the size of the library +-when only low-level functions are needed. ++This arrangement enables ++.I \%tinfo ++to be shared between ++.I \%ncurses ++and ++.I \%ncursesw ++libraries as well as application linking and/or loading times ++when it requires only low-level functions. + .IP +-Those functions are described in these pages: ++The following pages describe low-level ++.I curses ++functions. + .RS + .bP + \fB\%curs_extend\fP(3X) \- miscellaneous \fIcurses\fP extensions +@@ -1889,10 +1942,12 @@ + .RE + .TP 5 + .B \-\-with\-trace +-The \fBtrace\fP function normally resides in the debug library, +-but it is sometimes useful to configure this in the shared library. +-Configure scripts should check for the function's existence rather +-than assuming it is always in the debug library. ++The ++.B trace ++function normally resides in the debug library, ++but it is sometimes useful to expose it in the shared or static library. ++Configuration scripts should check for the function's existence rather ++than assuming it is confined to the debug library. + .SH FILES + .TP + .I @DATADIR@/tabset +Index: man/resizeterm.3x +Prereq: 1.60 +--- ncurses-6.5-20250329+/man/resizeterm.3x 2025-03-15 21:12:18.000000000 +0000 ++++ ncurses-6.5-20250405/man/resizeterm.3x 2025-04-05 22:26:38.000000000 +0000 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright 2018-2023,2024 Thomas E. Dickey * ++.\" Copyright 2018-2024,2025 Thomas E. Dickey * + .\" Copyright 1998-2015,2017 Free Software Foundation, Inc. * + .\" * + .\" Permission is hereby granted, free of charge, to any person obtaining a * +@@ -29,8 +29,8 @@ + .\" + .\" Author: Thomas E. Dickey 1996-on + .\" +-.\" $Id: resizeterm.3x,v 1.60 2025/03/15 21:12:18 tom Exp $ +-.TH resizeterm 3X 2025-03-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" ++.\" $Id: resizeterm.3x,v 1.63 2025/04/05 22:26:38 tom Exp $ ++.TH resizeterm 3X 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls" + .de bP + .ie n .IP \(bu 4 + .el .IP \(bu 2 +@@ -89,7 +89,6 @@ + An application which establishes its own \fB\%SIGWINCH\fP handler + can call \fB\%resizeterm\fP, but in that case, the library will not + see \fB\%SIGWINCH\fP, and proper layout will rely upon the application. +-.SH FUNCTIONS + .SS resizeterm + The function \fB\%resizeterm\fP resizes the standard and current windows + (i.e., \fB\%stdscr\fP and \fB\%curscr\fP) +Index: man/scr_dump.5 +Prereq: 1.50 +--- ncurses-6.5-20250329+/man/scr_dump.5 2025-01-19 00:51:10.000000000 +0000 ++++ ncurses-6.5-20250405/man/scr_dump.5 2025-04-05 21:56:26.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: scr_dump.5,v 1.50 2025/01/19 00:51:10 tom Exp $ +-.TH scr_dump 5 2025-01-18 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats" ++.\" $Id: scr_dump.5,v 1.52 2025/04/05 21:56:26 tom Exp $ ++.TH scr_dump 5 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -87,6 +87,7 @@ + .PP + .RS 4 + .EX ++.nf + # + # ncurses5 (and before) did not use a magic number, + # making screen dumps "data". +@@ -94,6 +95,7 @@ + # ncurses6 (2015) uses this format, ignoring byte-order + 0 string \e210\e210\e210\e210ncurses ncurses6 screen image + # ++.fi + .EE + .RE + .RE +@@ -173,12 +175,14 @@ + .PP + .RS 4 + .EX ++.nf + /* terminfo magic number */ + #define MAGNUM 0432 + + /* curses screen dump magic number */ + #define SVR2_DUMP_MAGIC_NUMBER 0433 + #define SVR3_DUMP_MAGIC_NUMBER 0434 ++.fi + .EE + .RE + .PP +@@ -193,8 +197,10 @@ + .PP + .RS 4 + .EX ++.nf + /* curses screen dump magic number */ + #define SVR4_DUMP_MAGIC_NUMBER 0435 ++.fi + .EE + .RE + .PP +@@ -315,6 +321,7 @@ + .PP + .RS 4 + .EX ++.nf + #include <curses.h> + + int +@@ -339,6 +346,7 @@ + endwin(); + return 0; + } ++.fi + .EE + .RE + .PP +@@ -346,6 +354,7 @@ + .PP + .RS 4 + .EX ++.nf + \e210\e210\e210\e210ncurses 6.0.20170415 + _cury=5 + _curx=11 +@@ -368,6 +377,7 @@ + 8:\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es + 9:\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es + 10:\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es\es ++.fi + .EE + .RE + .PP +@@ -391,6 +401,7 @@ + .PP + .RS 4 + .EX ++.nf + MAX=10,20 + BEG=0,0 + SCROLL=0,10 +@@ -424,6 +435,7 @@ + 9,0,0,1, + 9,19,0,0, + CUR=11,5 ++.fi + .EE + .RE + .PP +@@ -439,6 +451,7 @@ + .PP + .RS 4 + .EX ++.nf + 0000000 1c 01 c3 d6 f3 58 05 00 0b 00 0a 00 14 00 00 00 + 0000020 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 + 0000040 00 00 b8 1a 06 08 cc 1a 06 08 00 00 09 00 10 00 +@@ -461,6 +474,7 @@ + 0001620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + * + 0002371 ++.fi + .EE + .RE + .SH AUTHORS +Index: man/tabs.1 +Prereq: 1.70 +--- ncurses-6.5-20250329+/man/tabs.1 2025-02-15 14:55:00.000000000 +0000 ++++ ncurses-6.5-20250405/man/tabs.1 2025-04-05 21:56:26.000000000 +0000 +@@ -27,8 +27,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: tabs.1,v 1.70 2025/02/15 14:55:00 tom Exp $ +-.TH @TABS@ 1 2025-02-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands" ++.\" $Id: tabs.1,v 1.72 2025/04/05 21:56:26 tom Exp $ ++.TH @TABS@ 1 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -128,8 +128,10 @@ + .PP + .RS 4 + .EX ++.nf + @TABS@ 1,6,11,16,21 + @TABS@ 1 6 11 16 21 ++.fi + .EE + .RE + .PP +Index: man/term.5 +Prereq: 1.80 +--- ncurses-6.5-20250329+/man/term.5 2024-06-15 20:23:33.000000000 +0000 ++++ ncurses-6.5-20250405/man/term.5 2025-04-05 22:26:47.000000000 +0000 +@@ -1,6 +1,6 @@ + '\" t + .\"*************************************************************************** +-.\" Copyright 2018-2023,2024 Thomas E. Dickey * ++.\" Copyright 2018-2024,2025 Thomas E. Dickey * + .\" Copyright 1998-2016,2017 Free Software Foundation, Inc. * + .\" * + .\" Permission is hereby granted, free of charge, to any person obtaining a * +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: term.5,v 1.80 2024/06/15 20:23:33 tom Exp $ +-.TH term 5 2024-06-15 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats" ++.\" $Id: term.5,v 1.83 2025/04/05 22:26:47 tom Exp $ ++.TH term 5 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -506,12 +506,14 @@ + a popular though rather stupid early terminal. + .PP + .EX ++.nf + adm3a|lsi adm3a, + am, + cols#80, lines#24, + bel=\*^G, clear=\e032$<1>, cr=\*^M, cub1=\*^H, cud1=\*^J, + cuf1=\*^L, cup=\eE=%p1%{32}%+%c%p2%{32}%+%c, cuu1=\*^K, + home=\*^\*^, ind=\*^J, ++.fi + .EE + .PP + A hexadecimal dump of its compiled terminal description +Index: man/terminfo.tail +Prereq: 1.157 +--- ncurses-6.5-20250329+/man/terminfo.tail 2025-02-17 23:55:31.000000000 +0000 ++++ ncurses-6.5-20250405/man/terminfo.tail 2025-04-05 21:56:26.000000000 +0000 +@@ -27,7 +27,7 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: terminfo.tail,v 1.157 2025/02/17 23:55:31 tom Exp $ ++.\" $Id: terminfo.tail,v 1.158 2025/04/05 21:56:26 Branden.Robinson Exp $ + .ps +1 + .SS "User-Defined Capabilities" + . +@@ -87,6 +87,7 @@ + of what a \fBterminfo\fP entry for a modern terminal typically looks like. + .PP + .EX ++.nf + \s-2ansi|ansi/pc\-term compatible with color, + am, mc5i, mir, msgr, + colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64, +@@ -117,6 +118,7 @@ + sgr0=\eE[0;10m, smacs=\eE[11m, smpch=\eE[11m, smso=\eE[7m, + smul=\eE[4m, tbc=\eE[3g, u6=\eE[%i%d;%dR, u7=\eE[6n, + u8=\eE[?%[;0123456789]c, u9=\eE[c, vpa=\eE[%i%p1%dd, ++.fi + .EE + .PP + Entries may continue onto multiple lines by placing white space at +@@ -449,11 +451,13 @@ + while the Lear Siegler \s-1ADM-3\s0 is described as + .PP + .EX ++.nf + .\".in -2 + \s-1adm3\||\|3\||\|lsi adm3, + am, bel=\*^G, clear=\*^Z, cols#80, cr=\*^M, cub1=\*^H, cud1=\*^J, + ind=\*^J, lines#24,\s+1 + .\".in +2 ++.fi + .EE + .SS "Parameterized Strings" + Cursor addressing and other strings requiring parameters +@@ -1146,8 +1150,10 @@ + Putting this all together into the sgr sequence gives: + .PP + .EX ++.nf + sgr=\eE[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%; + %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\e016%e\e017%;, ++.fi + .EE + .PP + Remember that if you specify sgr, you must also specify sgr0. +Index: man/tput.1 +Prereq: 1.135 +--- ncurses-6.5-20250329+/man/tput.1 2025-03-01 21:45:34.000000000 +0000 ++++ ncurses-6.5-20250405/man/tput.1 2025-04-05 21:56:26.000000000 +0000 +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: tput.1,v 1.135 2025/03/01 21:45:34 tom Exp $ +-.TH @TPUT@ 1 2025-03-01 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands" ++.\" $Id: tput.1,v 1.137 2025/04/05 21:56:26 tom Exp $ ++.TH @TPUT@ 1 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -1050,11 +1050,13 @@ + option can be profitably used with a shell \*(``here document\*(''. + .IP + .EX ++.nf + .RB $\ "@TPUT@ \-S <<!" + .RB >\ clear + .RB >\ "cup 10 10" + .RB >\ bold + .RB >\ ! ++.fi + .EE + .IP + The foregoing +Index: man/user_caps.5 +Prereq: 1.53 +--- ncurses-6.5-20250329+/man/user_caps.5 2025-03-22 22:27:44.000000000 +0000 ++++ ncurses-6.5-20250405/man/user_caps.5 2025-04-06 00:20:20.000000000 +0000 +@@ -1,6 +1,6 @@ + '\" t + .\"*************************************************************************** +-.\" Copyright 2018-2023,2024 Thomas E. Dickey * ++.\" Copyright 2018-2024,2025 Thomas E. Dickey * + .\" Copyright 2017 Free Software Foundation, Inc. * + .\" * + .\" Permission is hereby granted, free of charge, to any person obtaining a * +@@ -28,8 +28,8 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: user_caps.5,v 1.53 2025/03/22 22:27:44 tom Exp $ +-.TH user_caps 5 2025-03-22 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats" ++.\" $Id: user_caps.5,v 1.55 2025/04/06 00:20:20 tom Exp $ ++.TH user_caps 5 2025-04-05 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats" + .ie \n(.g \{\ + .ds `` \(lq + .ds '' \(rq +@@ -74,7 +74,7 @@ + .\" term.h - this file is automatically made from caps and maketerm.ex. + .\" illumos-gate has related source, with a "caps" file having AT&T copyright + .\" for 1988, and UCB copyright for 1982, 1986, 1988. That 1982 is interesting +-.\" (hinting that something may have been in the initial releated of System V) ++.\" (hinting that something may have been in the initial releases of System V) + .\" but the first release with tic appears to be SVr2 in 1984. + .PP + Most of the \fIextensions\fP in this fixed repertoire were additions +Index: misc/terminfo.src +--- ncurses-6.5-20250329+/misc/terminfo.src 2025-03-29 22:49:47.000000000 +0000 ++++ ncurses-6.5-20250405/misc/terminfo.src 2025-04-05 20:08:00.000000000 +0000 +@@ -6,8 +6,8 @@ + # Report bugs and new terminal descriptions to + # bug-ncurses@gnu.org + # +-# $Revision: 1.1176 $ +-# $Date: 2025/03/29 22:49:47 $ ++# $Revision: 1.1180 $ ++# $Date: 2025/04/05 20:08:00 $ + # + # The original header is preserved below for reference. It is noted that there + # is a "newer" version which differs in some cosmetic details (but actually +@@ -1245,6 +1245,24 @@ + use=ansi+arrows, use=linux+lockeys, use=linux+sfkeys, + use=vt220+pcedit, use=vt220+cvis, use=vt220+ufkeys, + ++# https://lists.gnu.org/archive/html/bug-ncurses/2025-04/msg00014.html ++sclp|IBM s390 driver for Linux, ++ xon, ++ cols#80, lines#24, ++ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, ++ bel=^G, blink=\E[5m, cr=\r, cub1=^H, cud1=\n, ++ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P, ++ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el1=\E[1K, ++ enacs=\E)0, ht=^I, ich=\E[%p1%d@, ind=\ED, is2=\Ec, kbs=^H, ++ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, ++ kdch1=\E[3~, kf5=\E[E, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, ++ rmacs=\E(B$<4>, rmso=\E[27m, rmul=\E[24m, sc=\E7, ++ sgr=\E[0%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e ++ \E(B%;$<2>, ++ sgr0=\E[m\E(B, smacs=\E(0$<2>, smso=\E[7m, smul=\E[4m, ++ use=klone+color, use=ansi+cpr, use=ansi+erase, ++ use=ansi+local, use=linux+sfkeys, use=vt220+ufkeys, ++ + #### Mach + # + +@@ -3060,9 +3078,13 @@ + vt520-w|DEC VT520 in wide mode, + cols#132, use=vt520, + ++# See "4.7.5 Visual Attributes Control Functions" and ++# "Table 5–15 (Cont.) Visual Character Attribute Values" ++# in EK-VT520-RM + vt525|DEC VT525, + colors#8, pairs#64, +- setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=vt520, ++ op=\E[39;49m, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, ++ use=vt520, + + vt525-w|DEC VT525 in wide mode, + cols#132, use=vt525, +@@ -8180,6 +8202,21 @@ + # - cannot run, because the package is not signed. + # + # Fedora rawhide ++# contour-terminal-0.6.1.7494-2.fc42.x86_64 ++# - most core dumps are finally gone, works when 3D acceleration is disabled. ++# - fails mir and related "in" tests in tack. ++# - function-keys do not match developer's version. ++# - sitm/ritm (italics) still do not work. ++# - private mode 12 (cursor) does not work. ++# - source code references Unicode values to a page which has none: ++# https://vt100.net/docs/vt102-ug/chapter5.html#T5-13 ++# (actual source for this information is xterm) ++# - identifies as a VT525 with sixel graphics, UDK, rectangle editing and color. ++# - adds a control sequence to retrieve contents of entire screen. ++# - dumps core in vttest for rectangle editing ++# - UDK feature does not work ++# - fails vttest for REP, SL, SR, CBT, CHT, VPR ++# - sixel feature needs some work (most of my testcases do not work) -TD + # contour-terminal-0.3.12.262-6.fc39.x86_64 + # - dumps core, cannot test + # +@@ -8221,28 +8258,31 @@ + # + # Developer's terminfo (compiled-in) uses some extensions. + contour|contour-latest|Contour Terminal Emulator, +- am, bce, eslok, hs, km, mc5i, mir, msgr, npc, xenl, xvpa, ++ am, bce, mc5i, msgr, npc, xenl, xvpa, AX, XT, + cols#80, lines#24, pairs#0x7fff, +- bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n, +- dim=\E[2m, dsl=\E[$~, ech=\E[%p1%dX, el1=\E[1K, +- flash=\E[?5h$<100/>\E[?5l, fsl=\E[$}, hpa=\E[%i%p1%dG, +- ind=\n, indn=\E[%p1%dS, invis=\E[8m, ka1=, ka3=, kbs=^?, kc1=, +- kc3=, kcbt=\E[Z, kend=\EOF, khlp=, kmous=\E[M, kund=, +- oc=\E]104\E\\, op=\E[39;49m, rev=\E[7m, ri=\EM, +- rin=\E[%p1%dT, rmam=\E[?7l, rmkx=\E[?1l, rmso=\E[27m, +- rmul=\E[24m, rs1=\E]\E\\\Ec, +- sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%| +- %t;7%;%?%p4%t;5%;%?%p7%t;8%;m, +- sgr0=\E(B\E[m, smam=\E[?7h, smkx=\E[?1h, smso=\E[7m, +- smul=\E[4m, tsl=\E[2$~\E[1$}\E[H\E[2J, vpa=\E[%i%p1%dd, ++ bel=^G, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n, dim=\E[2m, ++ ech=\E[%p1%dX, el1=\E[1K, flash=\E[?5h$<100/>\E[?5l, ++ ind=\n, ka1=, ka3=, kbs=^?, kc1=, kc3=, kcbt=\E[Z, kend=\EOF, ++ kf13=\E[O2P, kf14=\E[O2Q, kf15=\E[O2R, kf16=\E[O2S, ++ kf25=\E[O5P, kf26=\E[O5Q, kf27=\E[O5R, kf28=\E[O5S, ++ kf37=\E[O6P, kf38=\E[O6Q, kf39=\E[O6R, kf40=\E[O6S, ++ kf49=\E[O3P, kf50=\E[O3Q, kf51=\E[O3R, kf52=\E[O3S, ++ kf61=\E[O4P, kf62=\E[O4Q, kf63=\E[O4R, khlp=, kmous=\E[M, ++ kund=, oc=\E]104\E\\, op=\E[39;49m, ri=\EM, rmam=\E[?7l, ++ rmkx=\E[?1l, rmso=\E[27m, rmul=\E[24m, rs1=\E]\E\\\Ec, ++ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p5%t;2%; ++ %?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, ++ sgr0=\E(B\E[m, smam=\E[?7h, smkx=\E[?1h, + Cs=\E]12;%p1%s\E\\, E3=\E[3J, Rmol=\E[55m, Se=\E[ q, + Smol=\E[53m, Smulx=\E[4:%p1%dm, Ss=\E[%p1%d q, + use=ansi+apparrows, use=ansi+cup, use=ansi+csr, +- use=ansi+erase, use=ansi+idc, use=ansi+idl, +- use=ansi+inittabs, use=ansi+local, use=ansi+rep, +- use=att610+cvis, use=ecma+italics, use=ecma+strikeout, ++ use=ansi+enq, use=ansi+erase, use=ansi+idc, use=ansi+idl, ++ use=ansi+inittabs, use=ansi+local, use=ansi+rca2, ++ use=ansi+sgrbold, use=bracketed+paste, use=dec+sl, ++ use=ecma+index, use=vt220+cvis, use=ecma+strikeout, + use=xterm+256color, use=xterm+acs, use=xterm+alt1049, + use=xterm+pcc2, use=xterm+pce2, use=xterm+pcf2, ++ use=report+version, + + contour-direct|Contour terminal with direct colors, + use=xterm+direct, use=contour, +@@ -19646,16 +19686,14 @@ + is2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`:\E`@\E~!\E"\Ee4\Ex@\E`9 + \Ee7$<100>, + kDC=\ER, kEND=\EY, kHOM=\E{, kNXT=\EK, kPRT=\E7, kPRV=\EJ, +- kRIT=^L, ka1=^^, kb2=\EJ, kbs=^H, kc1=\ET, kc3=\EK, kcbt=\EI, +- kcub1=^H, kcud1=\n, kcuf1=^L, kcuu1=^K, kdch1=\EW, kend=\ET, +- kf1=^A@\r, kf10=^AI\r, kf11=^AJ\r, kf12=^AK\r, kf13=^AL\r, +- kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, kf17=^A`\r, kf18=^Aa\r, +- kf19=^Ab\r, kf2=^AA\r, kf20=^Ac\r, kf21=^Ad\r, kf22=^Ae\r, +- kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, kf26=^Ai\r, kf27=^Aj\r, +- kf28=^Ak\r, kf29=^Al\r, kf3=^AB\r, kf30=^Am\r, kf31=^An\r, +- kf32=^Ao\r, kf4=^AC\r, kf5=^AD\r, kf6=^AE\r, kf7=^AF\r, +- kf8=^AG\r, kf9=^AH\r, khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, +- kprt=\EP, mc0=\EP, mc4=^T, mc5=^R, ++ kRIT=^L, ka1=^^, kb2=\EJ, kc1=\ET, kc3=\EK, kcbt=\EI, kcub1=^H, ++ kcud1=\n, kcuf1=^L, kcuu1=^K, kdch1=\EW, kend=\ET, ++ kf12=^AK\r, kf13=^AL\r, kf14=^AM\r, kf15=^AN\r, kf16=^AO\r, ++ kf17=^A`\r, kf18=^Aa\r, kf19=^Ab\r, kf20=^Ac\r, kf21=^Ad\r, ++ kf22=^Ae\r, kf23=^Af\r, kf24=^Ag\r, kf25=^Ah\r, kf26=^Ai\r, ++ kf27=^Aj\r, kf28=^Ak\r, kf29=^Al\r, kf30=^Am\r, kf31=^An\r, ++ kf32=^Ao\r, khome=^^, kich1=\Eq, knp=\EK, kpp=\EJ, kprt=\EP, ++ mc0=\EP, mc4=^T, mc5=^R, + mrcup=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c$<10>, + nel=\037$<5>, rev=\EG4, ri=\Ej$<5>, rmacs=\EH\003\EcB0, + rmam=\Ed., rmir=\Er, rmso=\EG0, rmul=\EG0, rmxon=\Ec20, +@@ -19670,7 +19708,8 @@ + %t%{63}%e%p1%{15}%=%t%{56}%;\Edy%c11$<100>, + sgr0=\EG0\EcB0\EcD$<15>, smacs=\EH\002\EcB1, smam=\Ed/, + smir=\Eq, smso=\EGt, smul=\EG8, smxon=\Ec21, tbc=\E0, +- use=ncr260vp+sl, ++ use=ncr260vp+sl, use=tvi920b+fn, use=ansi+arrows, ++ use=ansi+apparrows, + ncr260wy325wpp|NCR 2900/260 Wyse 325 wide mode, + cols#132, + cup=\Ea%i%p1%dR%p2%dC$<30>, +@@ -27812,4 +27851,11 @@ + # + add XM/xm to ms-terminal, to enable mouse with experimental Windows + # driver -TD + # ++# 2025-04-03 ++# + add sclp -TD ++# + add op to vt525 -TD ++# ++# 2025-0405 ++# + update contour -TD ++# + ######## SHANTIH! SHANTIH! SHANTIH! +Index: package/debian-mingw/changelog +--- ncurses-6.5-20250329+/package/debian-mingw/changelog 2025-03-29 11:09:16.000000000 +0000 ++++ ncurses-6.5-20250405/package/debian-mingw/changelog 2025-04-05 09:48:54.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6td (6.5+20250329) unstable; urgency=low ++ncurses6td (6.5+20250405) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 29 Mar 2025 07:09:16 -0400 ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 05 Apr 2025 05:48:54 -0400 + + ncurses6 (5.9+20131005) unstable; urgency=low + +Index: package/debian-mingw64/changelog +--- ncurses-6.5-20250329+/package/debian-mingw64/changelog 2025-03-29 11:09:16.000000000 +0000 ++++ ncurses-6.5-20250405/package/debian-mingw64/changelog 2025-04-05 09:48:54.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6td (6.5+20250329) unstable; urgency=low ++ncurses6td (6.5+20250405) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 29 Mar 2025 07:09:16 -0400 ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 05 Apr 2025 05:48:54 -0400 + + ncurses6 (5.9+20131005) unstable; urgency=low + +Index: package/debian/changelog +--- ncurses-6.5-20250329+/package/debian/changelog 2025-03-29 11:09:16.000000000 +0000 ++++ ncurses-6.5-20250405/package/debian/changelog 2025-04-05 09:48:54.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6td (6.5+20250329) unstable; urgency=low ++ncurses6td (6.5+20250405) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 29 Mar 2025 07:09:16 -0400 ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 05 Apr 2025 05:48:54 -0400 + + ncurses6 (5.9+20120608) unstable; urgency=low + +Index: package/mingw-ncurses.nsi +Prereq: 1.696 +--- ncurses-6.5-20250329+/package/mingw-ncurses.nsi 2025-03-29 11:09:16.000000000 +0000 ++++ ncurses-6.5-20250405/package/mingw-ncurses.nsi 2025-04-05 09:48:54.000000000 +0000 +@@ -1,4 +1,4 @@ +-; $Id: mingw-ncurses.nsi,v 1.696 2025/03/29 11:09:16 tom Exp $
++; $Id: mingw-ncurses.nsi,v 1.697 2025/04/05 09:48:54 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 "2025"
+-!define VERSION_MMDD "0329"
++!define VERSION_MMDD "0405"
+ !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
+
+ !define MY_ABI "5"
+Index: package/mingw-ncurses.spec +--- ncurses-6.5-20250329+/package/mingw-ncurses.spec 2025-03-29 11:09:16.000000000 +0000 ++++ ncurses-6.5-20250405/package/mingw-ncurses.spec 2025-04-05 09:48:54.000000000 +0000 +@@ -3,7 +3,7 @@ + Summary: shared libraries for terminal handling + Name: mingw32-ncurses6 + Version: 6.5 +-Release: 20250329 ++Release: 20250405 + License: X11 + Group: Development/Libraries + URL: https://invisible-island.net/ncurses/ +Index: package/ncurses.spec +--- ncurses-6.5-20250329+/package/ncurses.spec 2025-03-29 11:09:16.000000000 +0000 ++++ ncurses-6.5-20250405/package/ncurses.spec 2025-04-05 09:48:54.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: shared libraries for terminal handling + Name: ncurses6 + Version: 6.5 +-Release: 20250329 ++Release: 20250405 + License: X11 + Group: Development/Libraries + URL: https://invisible-island.net/ncurses/ +Index: package/ncursest.spec +--- ncurses-6.5-20250329+/package/ncursest.spec 2025-03-29 11:09:16.000000000 +0000 ++++ ncurses-6.5-20250405/package/ncursest.spec 2025-04-05 09:48:54.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: Curses library with POSIX thread support. + Name: ncursest6 + Version: 6.5 +-Release: 20250329 ++Release: 20250405 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: progs/infocmp.c +Prereq: 1.171 +--- ncurses-6.5-20250329+/progs/infocmp.c 2024-12-21 17:02:07.000000000 +0000 ++++ ncurses-6.5-20250405/progs/infocmp.c 2025-04-05 19:14:18.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2020-2023,2024 Thomas E. Dickey * ++ * Copyright 2020-2024,2025 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -43,7 +43,7 @@ + + #include <dump_entry.h> + +-MODULE_ID("$Id: infocmp.c,v 1.171 2024/12/21 17:02:07 tom Exp $") ++MODULE_ID("$Id: infocmp.c,v 1.174 2025/04/05 19:14:18 tom Exp $") + + #ifndef ACTUAL_TIC + #define ACTUAL_TIC "tic" +@@ -1291,30 +1291,67 @@ + ExitProgram(EXIT_FAILURE); + } + ++#define isName(c) ((c) == '_' || isalnum(UChar(c))) ++ + static char * +-any_initializer(const char *fmt, const char *type) ++safe_name(const char *format, const char *prefix, const char *name) + { +- static char *initializer; ++ static char *result; + static size_t need; + char *s; + +- if (initializer == NULL) { +- need = (strlen(entries->tterm.term_names) +- + strlen(type) +- + strlen(fmt)); +- initializer = (char *) malloc(need + 1); +- if (initializer == NULL) +- failed("any_initializer"); ++ if (result == NULL) { ++ need = (strlen(prefix) ++ + strlen(name) ++ + strlen(format)); ++ result = (char *) malloc(need + 1); ++ if (result == NULL) ++ failed("safe_name"); + } + +- _nc_STRCPY(initializer, entries->tterm.term_names, need); +- for (s = initializer; *s != 0 && *s != '|'; s++) { +- if (!isalnum(UChar(*s))) ++ _nc_STRCPY(result, "", need); ++ if (isdigit(UChar(*prefix))) ++ _nc_STRCAT(result, "ti_", need); ++ _nc_STRCAT(result, prefix, need); ++ for (s = result; *s != 0 && *s != '|'; s++) { ++ if (!isName(*s)) + *s = '_'; + } + *s = 0; +- _nc_SPRINTF(s, _nc_SLIMIT(need) fmt, type); +- return initializer; ++ if (isdigit(UChar(*name)) && !*prefix) ++ *s++ = '_'; ++ _nc_SPRINTF(s, _nc_SLIMIT(need) format, name); ++ return result; ++} ++ ++/* ++ * escape contents of a double-quoted string. ++ */ ++static char * ++safe_string(const char *source) ++{ ++ static char *result; ++ static size_t need; ++ char *d; ++ if (result == NULL) { ++ need = 2 * strlen(source) + 1; ++ result = (char *) malloc(need + 1); ++ } ++ for (d = result; *source != '\0'; ++source) { ++ char ch = *source; ++ if (ch == '"' || ch == '\\') { ++ *d++ = '\\'; ++ } ++ *d++ = ch; ++ } ++ *d = '\0'; ++ return result; ++} ++ ++static char * ++any_initializer(const char *fmt, const char *type) ++{ ++ return safe_name(fmt, entries->tterm.term_names, type); + } + + static char * +@@ -1329,6 +1366,53 @@ + return any_initializer("_s_%s", type); + } + ++#if NCURSES_XNAMES ++static char * ++name_of(const char *name) ++{ ++ return safe_name("name_of_%s", "", name); ++} ++ ++static void ++dump_extended_name(const char *name) ++{ ++ static char **known; ++ static size_t dumped; ++ static size_t length; ++ ++ if (name != NULL) { ++ bool found = FALSE; ++ if (length != 0) { ++ size_t check; ++ for (check = 0; check < dumped; ++check) { ++ if (!strcmp(name, known[check])) { ++ found = TRUE; ++ break; ++ } ++ } ++ } ++ if (!found) { ++ if (dumped + 2 > length) { ++ length += 100; ++ known = realloc(known, length * sizeof(*known)); ++ } ++ printf("\n"); ++ printf("#ifndef %s\n", safe_name("extension_%s", "", name)); ++ printf("static char %s[] = \"%s\";\n", name_of(name), name); ++ printf("#define %s 1\n", safe_name("extension_%s", "", name)); ++ printf("#endif\n"); ++ known[dumped] = strdup(name); ++ } ++ } else { ++ while (dumped != 0) { ++ free(known[--dumped]); ++ } ++ free(known); ++ length = 0; ++ } ++} ++#endif ++ + /* dump C initializers for the terminal type */ + static void + dump_initializers(const TERMTYPE2 *term) +@@ -1337,7 +1421,7 @@ + const char *str = NULL; + + printf("\nstatic char %s[] = \"%s\";\n\n", +- name_initializer("alias"), entries->tterm.term_names); ++ name_initializer("alias"), safe_string(entries->tterm.term_names)); + + for_each_string(n, term) { + if (VALID_STRING(term->Strings[n])) { +@@ -1434,19 +1518,29 @@ + if ((NUM_BOOLEANS(term) != BOOLCOUNT) + || (NUM_NUMBERS(term) != NUMCOUNT) + || (NUM_STRINGS(term) != STRCOUNT)) { ++ for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) { ++ dump_extended_name(ExtBoolname(term, (int) n, boolnames)); ++ } ++ for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) { ++ dump_extended_name(ExtNumname(term, (int) n, numnames)); ++ } ++ for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) { ++ dump_extended_name(ExtStrname(term, (int) n, strnames)); ++ } ++ printf("\n"); + (void) printf("static char * %s[] = %s\n", + name_initializer("string_ext"), L_CURL); + for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) { +- (void) printf("\t/* %3u: bool */\t\"%s\",\n", +- n, ExtBoolname(term, (int) n, boolnames)); ++ (void) printf("\t/* %3u: bool */\t%s,\n", ++ n, name_of(ExtBoolname(term, (int) n, boolnames))); + } + for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) { +- (void) printf("\t/* %3u: num */\t\"%s\",\n", +- n, ExtNumname(term, (int) n, numnames)); ++ (void) printf("\t/* %3u: num */\t%s,\n", ++ n, name_of(ExtNumname(term, (int) n, numnames))); + } + for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) { +- (void) printf("\t/* %3u: str */\t\"%s\",\n", +- n, ExtStrname(term, (int) n, strnames)); ++ (void) printf("\t/* %3u: str */\t%s,\n", ++ n, name_of(ExtStrname(term, (int) n, strnames))); + } + (void) printf("%s;\n", R_CURL); + } |