aboutsummaryrefslogtreecommitdiff
path: root/packages/ncurses/6.5/ncurses-6.5-20250405.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/ncurses/6.5/ncurses-6.5-20250405.patch')
-rw-r--r--packages/ncurses/6.5/ncurses-6.5-20250405.patch7855
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>&lt;curses.h&gt;</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&amp;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&amp;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 &lt;=
+ <EM>n</EM> &lt;= 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" &lt;https://ecma-international.org/
++ ECMA-6 "7-bit coded Character Set" &lt;https://ecma-international.org/
+ publications-and-standards/standards/ecma-6/&gt;
+
+- ECMA-48 "Control Functions for Coded Character Sets" &lt;https://
++ ECMA-48 "Control Functions for Coded Character Sets" &lt;https://
+ ecma-international.org/publications-and-standards/standards/ecma-48/&gt;
+
+- <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>$&lt;</STRONG><EM>n</EM><STRONG>&gt;</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>&lt;unctrl.h&gt;</STRONG>, which <EM>ncurses</EM>
+ does. However, <EM>ncurses</EM>' <STRONG>&lt;curses.h&gt;</STRONG> includes <STRONG>&lt;unctrl.h&gt;</STRONG>, matching the
+- 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"
+ &lt;https://unicode.org/reports/tr29/&gt;
+
+- <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>&lt;curses.h&gt;</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>&lt;ncurses/curses.h&gt;</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);
+ }