+ improve formatting/style of manpages (patches by Branden Robinson).
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.4053 2023/12/17 23:18:40 tom Exp $
+-- $Id: NEWS,v 1.4055 2023/12/23 21:00:43 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20231223
+ + improve formatting/style of manpages (patches by Branden Robinson).
+
20231217
+ improve formatting/style of manpages (patches by Branden Robinson).
+ correct an assignment in infocmp "-u" for detecting if a boolean
-5:0:10 6.4 20231217
+5:0:10 6.4 20231223
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1584 2023/12/17 23:18:40 tom Exp $
+# $Id: dist.mk,v 1.1585 2023/12/23 11:35:00 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 4
-NCURSES_PATCH = 20231217
+NCURSES_PATCH = 20231223
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: captoinfo.1m,v 1.57 2023/12/16 21:34:23 tom Exp @
+ * @Id: captoinfo.1m,v 1.58 2023/12/23 16:28:31 tom Exp @
* TODO: There are about 40 box drawing code points in CCSID 437;
* were there no XENIX capabilities for the mixed single- and double-
* line intersections?
<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>captoinfo 1m 2023-12-16 ncurses 6.4 User commands</TITLE>
+<TITLE>captoinfo 1m 2023-12-23 ncurses 6.4 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">captoinfo 1m 2023-12-16 ncurses 6.4 User commands</H1>
+<H1 class="no-header">captoinfo 1m 2023-12-23 ncurses 6.4 User commands</H1>
<PRE>
<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG> User commands <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
environment variable <EM>TERMCAP</EM> as a file name, and extracts only the
entry for the terminal named in the environment variable <EM>TERM</EM> from it.
If the environment variable <EM>TERMCAP</EM> is not set, <STRONG>captoinfo</STRONG> reads
- <EM>/etc/termcap</EM>.
+ <EM>/etc/termcap.</EM>
This utility is implemented as a link to <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, with the latter's <STRONG>-I</STRONG>
option implied. You can use other <STRONG>tic</STRONG> options such as <STRONG>-1</STRONG>, <STRONG>-f</STRONG>, <STRONG>-v</STRONG>, <STRONG>-w</STRONG>,
this program and exits with a successful status.
-</PRE><H3><a name="h3-Translations-from-nonstandard-capabilities">Translations from nonstandard capabilities</a></H3><PRE>
+</PRE><H3><a name="h3-Translations-from-Nonstandard-Capabilities">Translations from Nonstandard Capabilities</a></H3><PRE>
<STRONG>captoinfo</STRONG> translates some obsolete, nonstandard capabilities into
standard (SVr4/XSI Curses) <EM>terminfo</EM> capabilities. It issues a
diagnostic to the standard error stream for each, inviting the user to
-ncurses 6.4 2023-12-16 <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-Translations-from-nonstandard-capabilities">Translations from nonstandard capabilities</a></li>
+<li><a href="#h3-Translations-from-Nonstandard-Capabilities">Translations from Nonstandard Capabilities</a></li>
</ul>
</li>
<li><a href="#h2-FILES">FILES</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_add_wch.3x,v 1.49 2023/12/16 21:19:37 tom Exp @
+ * @Id: curs_add_wch.3x,v 1.50 2023/12/23 16:08: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_add_wch 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_add_wch 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_add_wch 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_add_wch 3x 2023-12-23 ncurses 6.4 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>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addch.3x,v 1.75 2023/12/16 21:19:37 tom Exp @
+ * @Id: curs_addch.3x,v 1.76 2023/12/23 16:27:51 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 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_addch 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_addch 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_addch 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-</PRE><H3><a name="h3-Adding-characters">Adding characters</a></H3><PRE>
+</PRE><H3><a name="h3-Adding-Characters">Adding Characters</a></H3><PRE>
The <STRONG>addch</STRONG>, <STRONG>waddch</STRONG>, <STRONG>mvaddch</STRONG> and <STRONG>mvwaddch</STRONG> routines put the character <EM>ch</EM>
into the given window at its current window position, which is then
- advanced. They are analogous to <STRONG>putchar(3)</STRONG> in <STRONG>stdio(3)</STRONG>. If the
- advance is at the right margin:
+ advanced. They are analogous to the standard C library's <STRONG>putchar(3)</STRONG>.
+ If the advance is at the right margin:
<STRONG>o</STRONG> The cursor automatically wraps to the beginning of the next line.
OR'ed into characters.
-</PRE><H3><a name="h3-Echoing-characters">Echoing characters</a></H3><PRE>
+</PRE><H3><a name="h3-Echoing-Characters">Echoing Characters</a></H3><PRE>
The <STRONG>echochar</STRONG> and <STRONG>wechochar</STRONG> routines are equivalent to a call to <STRONG>addch</STRONG>
followed by a call to <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>, or a call to <STRONG>waddch</STRONG> followed by a
call to <STRONG>wrefresh</STRONG>. The knowledge that only a single character is being
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-Adding-characters">Adding characters</a></li>
-<li><a href="#h3-Echoing-characters">Echoing characters</a></li>
+<li><a href="#h3-Adding-Characters">Adding Characters</a></li>
+<li><a href="#h3-Echoing-Characters">Echoing Characters</a></li>
<li><a href="#h3-Line-Graphics">Line Graphics</a></li>
</ul>
</li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_attr.3x,v 1.92 2023/12/16 21:07:24 tom Exp @
+ * @Id: curs_attr.3x,v 1.93 2023/12/23 16:08:25 tom Exp @
* ---------------------------------------------------------------------------
* ---------------------------------------------------------------------------
* ---------------------------------------------------------------------------
<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 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_attr 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_attr 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_attr 3x 2023-12-23 ncurses 6.4 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>
attributes used for erasing and clearing.
-</PRE><H3><a name="h3-Window-attributes">Window attributes</a></H3><PRE>
+</PRE><H3><a name="h3-Window-Attributes">Window Attributes</a></H3><PRE>
There are two sets of functions:
<STRONG>o</STRONG> functions for manipulating the window attributes and color:
together in <EM>attr</EM>, without affecting other attributes.
-</PRE><H3><a name="h3-Legacy-window-attributes">Legacy window attributes</a></H3><PRE>
+</PRE><H3><a name="h3-Legacy-Window-Attributes">Legacy Window Attributes</a></H3><PRE>
The X/Open window attribute routines which <EM>set</EM> or <EM>get</EM>, turn <EM>on</EM> or <EM>off</EM>
are extensions of older routines which assume that color pairs are OR'd
into the attribute parameter. These newer routines use similar names,
although <EM>ncurses</EM> provides <STRONG>getattrs</STRONG> (see <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>).
-</PRE><H3><a name="h3-Change-character-rendition">Change character rendition</a></H3><PRE>
+</PRE><H3><a name="h3-Change-Character-Rendition">Change Character Rendition</a></H3><PRE>
The routine <STRONG>chgat</STRONG> changes the attributes of a given number of
characters starting at the current cursor location of <STRONG>stdscr</STRONG>. It does
not update the cursor and does not perform wrapping. A character count
in the first argument of <STRONG>init_pair</STRONG>, see <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>).
-</PRE><H3><a name="h3-Change-window-color">Change window color</a></H3><PRE>
+</PRE><H3><a name="h3-Change-Window-Color">Change Window Color</a></H3><PRE>
The routine <STRONG>color_set</STRONG> sets the current color of the given window to the
foreground/background combination described by the color <EM>pair</EM>
parameter.
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-Window-attributes">Window attributes</a></li>
-<li><a href="#h3-Legacy-window-attributes">Legacy window attributes</a></li>
-<li><a href="#h3-Change-character-rendition">Change character rendition</a></li>
-<li><a href="#h3-Change-window-color">Change window color</a></li>
+<li><a href="#h3-Window-Attributes">Window Attributes</a></li>
+<li><a href="#h3-Legacy-Window-Attributes">Legacy Window Attributes</a></li>
+<li><a href="#h3-Change-Character-Rendition">Change Character Rendition</a></li>
+<li><a href="#h3-Change-Window-Color">Change Window Color</a></li>
<li><a href="#h3-Standout">Standout</a></li>
<li><a href="#h3-Video-Attributes">Video Attributes</a></li>
</ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_bkgd.3x,v 1.54 2023/12/17 23:31:28 tom Exp @
+ * @Id: curs_bkgd.3x,v 1.55 2023/12/23 16:35: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_bkgd 3x 2023-12-17 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_bkgd 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_bkgd 3x 2023-12-17 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_bkgd 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
Unusually, there is no <STRONG>wgetbkgd</STRONG> function; <STRONG>getbkgd</STRONG> behaves as one would
expect <STRONG>wgetbkgd</STRONG> to, accepting a <EM>WINDOW</EM> pointer argument.
- <STRONG>bkgd</STRONG> and <STRONG>bkgdset</STRONG> may be available as macros.
+ <STRONG>bkgd</STRONG> and <STRONG>bkgdset</STRONG> may be implemented as macros.
X/Open Curses mentions that the character part of the background must
be a single-byte value. <EM>ncurses</EM>, like SVr4 <EM>curses</EM>, checks to ensure
-ncurses 6.4 2023-12-17 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_bkgrnd.3x,v 1.35 2023/12/16 23:00:21 tom Exp @
+ * @Id: curs_bkgrnd.3x,v 1.36 2023/12/23 16:35: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_bkgrnd 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_bkgrnd 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_bkgrnd 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_bkgrnd 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- <STRONG>bkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, and <STRONG>getbkgrnd</STRONG> may be available as macros.
+ <STRONG>bkgrnd</STRONG>, <STRONG>bkgrndset</STRONG>, and <STRONG>getbkgrnd</STRONG> may be implemented as macros.
Unlike their counterparts in the non-"wide" configuration of <EM>ncurses,</EM>
<STRONG>getbkgrnd</STRONG> and <STRONG>wgetbkgrnd</STRONG> supply the background character and attribute
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_color.3x,v 1.93 2023/12/16 21:07:24 tom Exp @
+ * @Id: curs_color.3x,v 1.95 2023/12/23 20:18:13 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 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_color 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_color 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_color 3x 2023-12-23 ncurses 6.4 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>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
+ <EM>/*</EM> <EM>variables</EM> <EM>*/</EM>
+ <STRONG>int</STRONG> <STRONG>COLOR_PAIRS;</STRONG>
+ <STRONG>int</STRONG> <STRONG>COLORS;</STRONG>
+
<STRONG>int</STRONG> <STRONG>start_color(void);</STRONG>
<STRONG>bool</STRONG> <STRONG>has_colors(void);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
</PRE><H3><a name="h3-Overview">Overview</a></H3><PRE>
- <EM>curses</EM> supports color attributes on terminals with that capability. To
- use these routines <STRONG>start_color</STRONG> must be called, usually right after
- <STRONG>initscr</STRONG>. Colors are always used in pairs (referred to as color pairs).
- A color pair consists of a foreground color (for characters) and a
- background color (for the blank field on which the characters are
- displayed). A programmer initializes a color pair with the routine
- <STRONG>init_pair</STRONG>. After it has been initialized, <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>) can be used to
- convert the pair to a video attribute.
-
- If a terminal is capable of redefining colors, the programmer can use
- the routine <STRONG>init_color</STRONG> to change the definition of a color. The
- routines <STRONG>has_colors</STRONG> and <STRONG>can_change_color</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>,
- depending on whether the terminal has color capabilities and whether
- the programmer can change the colors. The routine <STRONG>color_content</STRONG> allows
- a programmer to extract the amounts of red, green, and blue components
- in an initialized color. The routine <STRONG>pair_content</STRONG> allows a programmer
- to find out how a given color pair is currently defined.
+ <EM>curses</EM> supports color attributes on terminals with that capability.
+ Call <STRONG>start_color</STRONG> (typically right after <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>) to enable this
+ feature. Colors are always used in pairs. A <EM>color</EM> <EM>pair</EM> couples a
+ foreground color for characters with a background color for the blank
+ field on which characters are rendered. <STRONG>init_pair</STRONG> initializes a color
+ pair. The macro <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>) can then convert the pair to a video
+ attribute.
+
+ If a terminal has the relevant capability, <STRONG>init_color</STRONG> permits
+ (re)definition of a color. <STRONG>has_colors</STRONG> and <STRONG>can_change_color</STRONG> return <STRONG>TRUE</STRONG>
+ or <STRONG>FALSE</STRONG>, depending on whether the terminal has color capability and
+ whether the programmer can change the colors. <STRONG>color_content</STRONG> permits
+ extraction of the red, green, and blue components of an initialized
+ color. <STRONG>pair_content</STRONG> permits discovery of a color pair's current
+ definition.
-</PRE><H3><a name="h3-Color-Rendering">Color Rendering</a></H3><PRE>
- The <EM>curses</EM> library combines these inputs to produce the actual
- foreground and background colors shown on the screen:
+</PRE><H3><a name="h3-Rendering">Rendering</a></H3><PRE>
+ <EM>curses</EM> combines the following data to render a character cell. Any of
+ them can include color information.
- <STRONG>o</STRONG> per-character video attributes (e.g., via <STRONG>waddch</STRONG>),
+ <STRONG>o</STRONG> <EM>curses</EM> character attributes, as from <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> or <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>
- <STRONG>o</STRONG> the window attribute (e.g., by <STRONG>wattrset</STRONG>), and
+ <STRONG>o</STRONG> window attributes, as from <STRONG><A HREF="curs_attr.3x.html">wattrset(3x)</A></STRONG> or <STRONG><A HREF="curs_attr.3x.html">wattr_set(3x)</A></STRONG>
- <STRONG>o</STRONG> the background character (e.g., <STRONG>wbkgdset</STRONG>).
+ <STRONG>o</STRONG> window background character atttributes, as from <STRONG><A HREF="curs_bkgd.3x.html">wbkgdset(3x)</A></STRONG> or
+ <STRONG><A HREF="curs_bkgrnd.3x.html">wbkgrndset(3x)</A></STRONG>
- Per-character and window attributes are usually set by a parameter
- containing video attributes including a color pair value. Some
- functions such as <STRONG>wattr_set</STRONG> use a separate parameter which is the color
- pair number.
+ Per-character and window attributes are usually set through a function
+ parameter containing attributes including a color pair value. Some
+ functions, such as <STRONG>wattr_set</STRONG>, use a separate color pair number
+ parameter.
- The background character is a special case: it includes a character
- value, just as if it were passed to <STRONG>waddch</STRONG>.
+ The background character is a special case: it includes a character
+ code, just as if it were passed to <STRONG>waddch</STRONG>.
- The <EM>curses</EM> library does the actual work of combining these color pairs
+ The <EM>curses</EM> library does the actual work of combining these color pairs
in an internal function called from <STRONG>waddch</STRONG>:
<STRONG>o</STRONG> If the parameter passed to <STRONG>waddch</STRONG> is <EM>blank</EM>, and it uses the special
<STRONG>o</STRONG> <EM>curses</EM> next checks the window attribute.
- <STRONG>o</STRONG> If the window attribute does not use color pair 0, <EM>curses</EM> uses
+ <STRONG>o</STRONG> If the window attribute does not use color pair 0, <EM>curses</EM> uses
the color pair from the window attribute.
<STRONG>o</STRONG> Otherwise, <EM>curses</EM> uses the background character.
- <STRONG>o</STRONG> If the parameter passed to <STRONG>waddch</STRONG> is <EM>not</EM> <EM>blank</EM>, or it does not use
- the special color pair 0, <EM>curses</EM> prefers the color pair from the
- parameter, if it is nonzero. Otherwise, it tries the window
+ <STRONG>o</STRONG> If the parameter passed to <STRONG>waddch</STRONG> is <EM>not</EM> <EM>blank</EM>, or it does not use
+ the special color pair 0, <EM>curses</EM> prefers the color pair from the
+ parameter, if it is nonzero. Otherwise, it tries the window
attribute next, and finally the background character.
- Some <EM>curses</EM> functions such as <STRONG>wprintw</STRONG> call <STRONG>waddch</STRONG>. Those do not
- combine its parameter with a color pair. Consequently those calls use
+ Some <EM>curses</EM> functions such as <STRONG>wprintw</STRONG> call <STRONG>waddch</STRONG>. Those do not
+ combine its parameter with a color pair. Consequently those calls use
only the window attribute or the background character.
<STRONG>COLOR_CYAN</STRONG>
<STRONG>COLOR_WHITE</STRONG>
- Some terminals support more than the eight (8) "ANSI" colors. There
+ Some terminals support more than the eight (8) "ANSI" colors. There
are no standard names for those additional colors.
</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
- terminal can support.
+ 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),
+ ignoring this rule; and
+
+ <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><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
The functions marked as extensions were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and
- are not found in SVr4 curses, 4.4BSD curses, or any other previous
- version of curses.
+ are not found in SVr4 <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous
+ curses implementation.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- This implementation satisfies XSI Curses's minimum maximums for <STRONG>COLORS</STRONG>
+ Applications employing <EM>ncurses</EM> extensions should condition their use on
+ the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
+
+ This implementation satisfies XSI Curses's minimum maximums for <STRONG>COLORS</STRONG>
and <STRONG>COLOR_PAIRS</STRONG>.
The <STRONG>init_pair</STRONG> routine accepts negative values of foreground and
- background color to support the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> extension, but
+ background color to support the <STRONG><A HREF="default_colors.3x.html">use_default_colors(3x)</A></STRONG> extension, but
only if that routine has been first invoked.
The assumption that <STRONG>COLOR_BLACK</STRONG> is the default background color for all
- terminals can be modified using the <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG>
+ terminals can be modified using the <STRONG><A HREF="default_colors.3x.html">assume_default_colors(3x)</A></STRONG>
extension.
- This implementation checks the pointers, e.g., for the values returned
- by <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG>, and will treat those as optional
+ This implementation checks the pointers, e.g., for the values returned
+ by <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG>, and will treat those as optional
parameters when null.
- 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 <STRONG>short</STRONG>
- for the parameters, it carries over SVr4's implementation detail for
+ for the parameters, it carries over SVr4's implementation detail for
the compiled terminfo database, which uses signed 16-bit numbers. This
- implementation provides extended versions of those functions which use
- <STRONG>short</STRONG> parameters, allowing applications to use larger color- and pair-
+ implementation provides extended versions of those functions which use
+ <STRONG>short</STRONG> parameters, allowing applications to use larger color- and pair-
numbers.
The <STRONG>reset_color_pairs</STRONG> function is an extension of <EM>ncurses</EM>.
</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
SVr3.2 introduced color support to curses in 1987.
- SVr4 made internal changes, e.g., moving the storage for the color
- state from <STRONG>SP</STRONG> (the <STRONG>SCREEN</STRONG> structure) to <STRONG>cur_term</STRONG> (the <STRONG>TERMINAL</STRONG>
+ SVr4 made internal changes, e.g., moving the storage for the color
+ state from <STRONG>SP</STRONG> (the <EM>SCREEN</EM> structure) to <STRONG>cur_term</STRONG> (the <EM>TERMINAL</EM>
structure), but provided the same set of library functions.
- SVr4 curses limits the number of color pairs to 64, reserving color
- pair zero (0) as the terminal's initial uncolored state. This limit
- arises because the color pair information is a bitfield in the <STRONG>chtype</STRONG>
+ SVr4 curses limits the number of color pairs to 64, reserving color
+ pair zero (0) as the terminal's initial uncolored state. This limit
+ arises because the color pair information is a bitfield in the <STRONG>chtype</STRONG>
data type (denoted by <STRONG>A_COLOR</STRONG>).
Other implementations of curses had different limits:
<STRONG>o</STRONG> X/Open Curses (1992-present) added a new structure <STRONG>cchar_t</STRONG> to store
the character, attributes and color pair values, allowing increased
- range of color pairs. Both color pairs and color-values used a
+ range of color pairs. Both color pairs and color-values used a
signed <STRONG>short</STRONG>, limiting values to 15 bits.
- <STRONG>o</STRONG> <EM>ncurses</EM> (1992-present) uses eight bits for <STRONG>A_COLOR</STRONG> in <STRONG>chtype</STRONG>
+ <STRONG>o</STRONG> <EM>ncurses</EM> (1992-present) uses eight bits for <STRONG>A_COLOR</STRONG> in <STRONG>chtype</STRONG>
values.
- Version 5.3 provided a wide-character interface (2002), but left
+ Version 5.3 provided a wide-character interface (2002), but left
color pairs as part of the attributes-field.
Since version 6 (2015), ncurses uses a separate <STRONG>int</STRONG> for color pairs
in the <STRONG>cchar_t</STRONG> values. When those color pair values fit in 8 bits,
- ncurses allows color pairs to be manipulated via the functions
+ ncurses allows color pairs to be manipulated via the functions
using <STRONG>chtype</STRONG> values.
- <STRONG>o</STRONG> NetBSD curses used 6 bits from 2000 (when colors were first
- supported) until 2004. At that point, NetBSD changed to use 10
- bits. As of 2021, that size is unchanged. Like <EM>ncurses</EM> before
- version 6, the NetBSD color pair information is stored in the
- attributes field of <STRONG>cchar_t</STRONG>, limiting the number of color pairs by
+ <STRONG>o</STRONG> NetBSD curses used 6 bits from 2000 (when colors were first
+ supported) until 2004. At that point, NetBSD changed to use 10
+ bits. As of 2021, that size is unchanged. Like <EM>ncurses</EM> before
+ version 6, the NetBSD color pair information is stored in the
+ attributes field of <STRONG>cchar_t</STRONG>, limiting the number of color pairs by
the size of the bitfield.
</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.4 2023-12-16 <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-Overview">Overview</a></li>
-<li><a href="#h3-Color-Rendering">Color Rendering</a></li>
+<li><a href="#h3-Rendering">Rendering</a></li>
</ul>
</li>
<li><a href="#h2-CONSTANTS">CONSTANTS</a></li>
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1999-on
- * @Id: curs_extend.3x,v 1.43 2023/12/16 20:32:22 tom Exp @
+ * @Id: curs_extend.3x,v 1.44 2023/12/23 16:36:18 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 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_extend 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_extend 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_extend 3x 2023-12-23 ncurses 6.4 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>
this and restore it.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ These functions are <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> extensions, and are not found in SVr4
+ <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous curses implementation.
+
+
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These routines are specific to <EM>ncurses</EM>. They were not supported on
- Version 7, BSD or System V implementations. It is recommended that any
- code depending on them be conditioned using NCURSES_VERSION.
+ Applications employing <EM>ncurses</EM> extensions should condition their use on
+ the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
</PRE><H2><a name="h2-AUTHORS">AUTHORS</a></H2><PRE>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_get_wch.3x,v 1.30 2023/11/25 13:58:47 tom Exp @
+ * @Id: curs_get_wch.3x,v 1.31 2023/12/23 16:35: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_get_wch 3x 2023-11-25 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_get_wch 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_get_wch 3x 2023-11-25 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_get_wch 3x 2023-12-23 ncurses 6.4 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>
on the state of the tty driver when each character is typed, the
program may produce undesirable results.
- All of these symbols except <STRONG>wget_wch</STRONG> and <STRONG>unget_wch</STRONG> may be available as
- macros.
+ All of these functions except <STRONG>wget_wch</STRONG> and <STRONG>unget_wch</STRONG> may be implemented
+ as macros.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-ncurses 6.4 2023-11-25 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getch.3x,v 1.76 2023/12/16 21:01:28 tom Exp @
+ * @Id: curs_getch.3x,v 1.77 2023/12/23 16:36:18 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 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_getch 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_getch 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_getch 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-</PRE><H3><a name="h3-Reading-characters">Reading characters</a></H3><PRE>
+</PRE><H3><a name="h3-Reading-Characters">Reading Characters</a></H3><PRE>
The <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG> and <STRONG>mvwgetch</STRONG>, routines read a character from
the window. In no-delay mode, if no input is waiting, the value <STRONG>ERR</STRONG> is
returned. In delay mode, the program waits until the system passes
is read.
-</PRE><H3><a name="h3-Keypad-mode">Keypad mode</a></H3><PRE>
+</PRE><H3><a name="h3-Keypad-Mode">Keypad Mode</a></H3><PRE>
If <STRONG>keypad</STRONG> is <STRONG>TRUE</STRONG>, and a function key is pressed, the token for that
function key is returned instead of the raw characters:
pressed.
-</PRE><H3><a name="h3-Ungetting-characters">Ungetting characters</a></H3><PRE>
+</PRE><H3><a name="h3-Ungetting-Characters">Ungetting Characters</a></H3><PRE>
The <STRONG>ungetch</STRONG> routine places <EM>ch</EM> back onto the input queue to be returned
by the next call to <STRONG>wgetch</STRONG>. There is just one input queue for all
windows.
-</PRE><H3><a name="h3-Predefined-key-codes">Predefined key-codes</a></H3><PRE>
+</PRE><H3><a name="h3-Predefined-Key-Codes">Predefined Key Codes</a></H3><PRE>
The following special keys are defined in <STRONG><curses.h></STRONG>.
<STRONG>o</STRONG> Except for the special case <STRONG>KEY_RESIZE</STRONG>, it is necessary to enable
escape sequences, just like a function key.
-</PRE><H3><a name="h3-Testing-key-codes">Testing key-codes</a></H3><PRE>
+</PRE><H3><a name="h3-Testing-Key-Codes">Testing Key Codes</a></H3><PRE>
The <STRONG>has_key</STRONG> routine takes a key-code value from the above list, and
returns <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG> according to whether the current terminal type
recognizes a key with that value.
mapped to <STRONG>KEY_IC</STRONG>.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ <STRONG>has_key</STRONG> was designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and is not found in SVr4 <EM>curses</EM>,
+ 4.4BSD <EM>curses</EM>, or any other previous curses implementation.
+
+
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The *get* functions are described in the XSI Curses standard, Issue 4.
- They read single-byte characters only. The standard specifies that
- they return <STRONG>ERR</STRONG> on failure, but specifies no error conditions.
-
- The echo behavior of these functions on input of <STRONG>KEY_</STRONG> or backspace
- characters was not specified in the SVr4 documentation. This
- description is adopted from the XSI Curses standard.
-
- The behavior of <STRONG>getch</STRONG> and friends in the presence of handled signals is
- unspecified in the SVr4 and XSI Curses documentation. Under historical
- curses implementations, it varied depending on whether the operating
- system's implementation of handled signal receipt interrupts a <STRONG>read(2)</STRONG>
- call in progress or not, and also (in some implementations) depending
- on whether an input timeout or non-blocking mode has been set.
-
- <STRONG>KEY_MOUSE</STRONG> is mentioned in XSI Curses, along with a few related terminfo
- capabilities, but no higher-level functions use the feature. The
+ Applications employing <EM>ncurses</EM> extensions should condition their use on
+ the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
+
+ X/Open Curses, Issue 4, Version 2, describes <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>,
+ <STRONG>mvwgetch</STRONG>, and <STRONG>ungetch</STRONG>. They read single-byte characters only. The
+ standard specifies that they return <STRONG>ERR</STRONG> on failure, but describes no
+ failure conditions.
+
+ The echo behavior of these functions on input of <STRONG>KEY_</STRONG> or backspace
+ characters was not specified in the SVr4 documentation. This
+ description is adapted from X/Open Curses.
+
+ The behavior of <STRONG>getch</STRONG> and friends in the presence of signal handlers is
+ unspecified in the SVr4 documentation and X/Open Curses. Under
+ historical curses implementations, it varied depending on whether the
+ operating system's dispatch of a signal to a handler interrupts a
+ <STRONG>read(2)</STRONG> call in progress or not, and also (in some implementations)
+ whether an input timeout or non-blocking mode has been set.
+
+ <STRONG>KEY_MOUSE</STRONG> 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
implementation in <EM>ncurses</EM> is an extension.
- <STRONG>KEY_RESIZE</STRONG> is an extension first implemented for <EM>ncurses</EM>. NetBSD
- curses later added this extension.
+ <STRONG>KEY_RESIZE</STRONG> is an extension first implemented for <EM>ncurses.</EM> NetBSD
+ <EM>curses</EM> later added this extension.
- Programmers concerned about portability should be prepared for either
- of two cases: (a) signal receipt does not interrupt <STRONG>getch</STRONG>; (b) signal
- receipt interrupts <STRONG>getch</STRONG> and causes it to return <STRONG>ERR</STRONG> with <STRONG>errno</STRONG> set to
+ Programmers concerned about portability should be prepared for either
+ of two cases: (a) signal receipt does not interrupt <STRONG>getch</STRONG>; (b) signal
+ receipt interrupts <STRONG>getch</STRONG> and causes it to return <STRONG>ERR</STRONG> with <STRONG>errno</STRONG> set to
<STRONG>EINTR</STRONG>.
- The <STRONG>has_key</STRONG> function is unique to <EM>ncurses</EM>. We recommend that any code
+ The <STRONG>has_key</STRONG> function is unique to <EM>ncurses</EM>. We recommend that any code
using it be conditionalized on the <STRONG>NCURSES_VERSION</STRONG> feature macro.
<STRONG><A HREF="ncurses.3x.html">curses(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>
- Comparable functions in the wide-character (ncursesw) library are
+ Comparable functions in the wide-character (ncursesw) library are
described in <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>.
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-Reading-characters">Reading characters</a></li>
-<li><a href="#h3-Keypad-mode">Keypad mode</a></li>
-<li><a href="#h3-Ungetting-characters">Ungetting characters</a></li>
-<li><a href="#h3-Predefined-key-codes">Predefined key-codes</a></li>
-<li><a href="#h3-Testing-key-codes">Testing key-codes</a></li>
+<li><a href="#h3-Reading-Characters">Reading Characters</a></li>
+<li><a href="#h3-Keypad-Mode">Keypad Mode</a></li>
+<li><a href="#h3-Ungetting-Characters">Ungetting Characters</a></li>
+<li><a href="#h3-Predefined-Key-Codes">Predefined Key Codes</a></li>
+<li><a href="#h3-Testing-Key-Codes">Testing Key Codes</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_initscr.3x,v 1.59 2023/12/17 23:56:04 tom Exp @
+ * @Id: curs_initscr.3x,v 1.60 2023/12/23 16:27: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_initscr 3x 2023-12-17 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_initscr 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_initscr 3x 2023-12-17 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_initscr 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
use <STRONG>newterm</STRONG>.
The routine <STRONG>newterm</STRONG> should be called once for each terminal. It
- returns a variable of type <STRONG>SCREEN</STRONG> <STRONG>*</STRONG> which should be saved as a
+ returns a variable of type <EM>SCREEN</EM> <EM>*</EM> which should be saved as a
reference to that terminal. <STRONG>newterm</STRONG>'s arguments are
<STRONG>o</STRONG> the <EM>type</EM> of the terminal to be used in place of <STRONG>$TERM</STRONG>,
If the <EM>type</EM> parameter is <STRONG>NULL</STRONG>, <STRONG>$TERM</STRONG> will be used.
The file descriptor of the output stream is passed to <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>,
- which returns a pointer to a <STRONG>TERMINAL</STRONG> structure. <STRONG>newterm</STRONG>'s return
- value holds a pointer to the <STRONG>TERMINAL</STRONG> structure.
+ which returns a pointer to a <EM>TERMINAL</EM> structure. <STRONG>newterm</STRONG>'s return
+ value holds a pointer to the <EM>TERMINAL</EM> structure.
</PRE><H3><a name="h3-endwin">endwin</a></H3><PRE>
The <STRONG>set_term</STRONG> routine is used to switch between different terminals.
The screen reference <EM>new</EM> becomes the new current terminal. The
previous terminal is returned by the routine. This is the only routine
- which manipulates <STRONG>SCREEN</STRONG> pointers; all other routines affect only the
+ which manipulates <EM>SCREEN</EM> pointers; all other routines affect only the
current terminal.
</PRE><H3><a name="h3-delscreen">delscreen</a></H3><PRE>
- The <STRONG>delscreen</STRONG> routine frees storage associated with the <STRONG>SCREEN</STRONG> data
+ The <STRONG>delscreen</STRONG> routine frees storage associated with the <EM>SCREEN</EM> data
structure. The <STRONG>endwin</STRONG> routine does not do this, so <STRONG>delscreen</STRONG> should be
- called after <STRONG>endwin</STRONG> if a particular <STRONG>SCREEN</STRONG> is no longer needed.
+ called after <STRONG>endwin</STRONG> if a particular <EM>SCREEN</EM> is no longer needed.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
redundant to check the return value of <STRONG>initscr</STRONG> in XSI Curses.
Calling <STRONG>endwin</STRONG> does not dispose of the memory allocated in <STRONG>initscr</STRONG> or
- <STRONG>newterm</STRONG>. Deleting a <STRONG>SCREEN</STRONG> provides a way to do this:
+ <STRONG>newterm</STRONG>. Deleting a <EM>SCREEN</EM> provides a way to do this:
- <STRONG>o</STRONG> X/Open Curses does not say what happens to <STRONG>WINDOW</STRONG>s when <STRONG>delscreen</STRONG>
- "frees storage associated with the <STRONG>SCREEN</STRONG>" nor does the SVr4
+ <STRONG>o</STRONG> X/Open Curses does not say what happens to <EM>WINDOW</EM>s when <STRONG>delscreen</STRONG>
+ "frees storage associated with the <EM>SCREEN</EM>" nor does the SVr4
documentation help, adding that it should be called after <STRONG>endwin</STRONG> if
- a <STRONG>SCREEN</STRONG> is no longer needed.
+ a <EM>SCREEN</EM> is no longer needed.
- <STRONG>o</STRONG> However, <STRONG>WINDOW</STRONG>s are implicitly associated with a <STRONG>SCREEN</STRONG>. so that
+ <STRONG>o</STRONG> However, <EM>WINDOW</EM>s are implicitly associated with a <EM>SCREEN</EM>. so that
it is reasonable to expect <STRONG>delscreen</STRONG> to deal with these.
- <STRONG>o</STRONG> SVr4 curses deletes the standard <STRONG>WINDOW</STRONG> structures <STRONG>stdscr</STRONG> and
+ <STRONG>o</STRONG> SVr4 curses deletes the standard <EM>WINDOW</EM> structures <STRONG>stdscr</STRONG> and
<STRONG>curscr</STRONG> as well as a work area <STRONG>newscr</STRONG>. SVr4 curses ignores other
windows.
windows when <STRONG>delscreen</STRONG> is called.
<STRONG>o</STRONG> NetBSD copied this feature of <EM>ncurses</EM> in 2001. PDCurses follows
- the SVr4 model, deleting only the standard <STRONG>WINDOW</STRONG> structures.
+ the SVr4 model, deleting only the standard <EM>WINDOW</EM> structures.
</PRE><H3><a name="h3-High-level-versus-Low-level">High-level versus Low-level</a></H3><PRE>
Different implementations may disagree regarding the level of some
- functions. For example, <STRONG>SCREEN</STRONG> (returned by <STRONG>newterm</STRONG>) and <STRONG>TERMINAL</STRONG>
+ functions. For example, <EM>SCREEN</EM> (returned by <STRONG>newterm</STRONG>) and <EM>TERMINAL</EM>
(returned by <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>) hold file descriptors for the output
stream. If an application switches screens using <STRONG>set_term</STRONG>, or switches
terminals using <STRONG><A HREF="curs_terminfo.3x.html">set_curterm(3x)</A></STRONG>, applications which use the output file
For example
- <STRONG>o</STRONG> NetBSD's <STRONG><A HREF="curs_termattrs.3x.html">baudrate(3x)</A></STRONG> function uses the descriptor in <STRONG>TERMINAL</STRONG>.
- <EM>ncurses</EM> and SVr4 use the descriptor in <STRONG>SCREEN</STRONG>.
+ <STRONG>o</STRONG> NetBSD's <STRONG><A HREF="curs_termattrs.3x.html">baudrate(3x)</A></STRONG> function uses the descriptor in <EM>TERMINAL</EM>.
+ <EM>ncurses</EM> and SVr4 use the descriptor in <EM>SCREEN</EM>.
- <STRONG>o</STRONG> NetBSD and <EM>ncurses</EM> use the descriptor in <STRONG>TERMINAL</STRONG> for terminal I/O
+ <STRONG>o</STRONG> NetBSD and <EM>ncurses</EM> use the descriptor in <EM>TERMINAL</EM> for terminal I/O
modes, e.g., <STRONG><A HREF="curs_kernel.3x.html">def_shell_mode(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">def_prog_mode(3x)</A></STRONG>. SVr4 curses
- uses the descriptor in <STRONG>SCREEN</STRONG>.
+ uses the descriptor in <EM>SCREEN</EM>.
<STRONG>Unset</STRONG> <EM>TERM</EM> <STRONG>Variable</STRONG>
If the <EM>TERM</EM> variable is missing or empty, <STRONG>initscr</STRONG> uses the value
The handler <EM>attempts</EM> to cleanup the screen on exit. Although it
<EM>usually</EM> works as expected, there are limitations:
- <STRONG>o</STRONG> Walking the <STRONG>SCREEN</STRONG> list is unsafe, since all list management
+ <STRONG>o</STRONG> Walking the <EM>SCREEN</EM> list is unsafe, since all list management
is done without any signal blocking.
<STRONG>o</STRONG> On systems which have <STRONG>REENTRANT</STRONG> turned on, <STRONG>set_term</STRONG> uses
functions which could deadlock or misbehave in other ways.
- <STRONG>o</STRONG> <STRONG>endwin</STRONG> calls other functions, many of which use stdio or other
- library functions which are clearly unsafe.
+ <STRONG>o</STRONG> <STRONG>endwin</STRONG> calls other functions, many of which use <STRONG>stdio(3)</STRONG> or
+ other library functions which are clearly unsafe.
<STRONG>SIGTERM</STRONG>
This uses the same handler as <STRONG>SIGINT</STRONG>, with the same limitations.
-ncurses 6.4 2023-12-17 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inopts.3x,v 1.59 2023/12/16 20:32:22 tom Exp @
+ * @Id: curs_inopts.3x,v 1.60 2023/12/23 16:36:18 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 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_inopts 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_inopts 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_inopts 3x 2023-12-23 ncurses 6.4 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>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <EM>ncurses</EM> library provides several functions which let an application
- change the way input from the terminal is handled. Some are global,
- applying to all windows. Others apply only to a specific window.
- Window-specific settings are not automatically applied to new or
- derived windows. An application must apply these to each window, if
- the same behavior is needed.
-
-
-</PRE><H3><a name="h3-cbreak_nocbreak">cbreak/nocbreak</a></H3><PRE>
- Normally, the tty driver buffers typed characters until a newline or
- carriage return is typed. The <STRONG>cbreak</STRONG> routine disables line buffering
- and erase/kill character-processing (interrupt and flow control
- characters are unaffected), making characters typed by the user
+ <EM>ncurses</EM> provides several functions that let an application change the
+ way input from the terminal is handled. Some are global, applying to
+ all windows. Others apply only to a specific window. Window-specific
+ settings are not automatically applied to new or derived windows. An
+ application must apply these to each window if the same behavior is
+ desired.
+
+
+</PRE><H3><a name="h3-cbreak_-nocbreak">cbreak, nocbreak</a></H3><PRE>
+ Normally, the terminal driver buffers typed characters until a newline
+ or carriage return is typed. The <STRONG>cbreak</STRONG> routine disables line
+ buffering and erase/kill character-processing (interrupt and flow
+ control characters are unaffected), making characters typed by the user
immediately available to the program. The <STRONG>nocbreak</STRONG> routine returns the
terminal to normal (cooked) mode.
discussion of how these routines interact with <STRONG>echo</STRONG> and <STRONG>noecho</STRONG>.]
-</PRE><H3><a name="h3-echo_noecho">echo/noecho</a></H3><PRE>
+</PRE><H3><a name="h3-echo_-noecho">echo, noecho</a></H3><PRE>
The <STRONG>echo</STRONG> and <STRONG>noecho</STRONG> routines control whether characters typed by the
- user are echoed by <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG> as they are typed. Echoing by the tty
- driver is always disabled, but initially <STRONG>getch</STRONG> is in echo mode, so
- characters typed are echoed. Authors of most interactive programs
- prefer to do their own echoing in a controlled area of the screen, or
- not to echo at all, so they disable echoing by calling <STRONG>noecho</STRONG>. [See
- <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion of how these routines interact with
- <STRONG>cbreak</STRONG> and <STRONG>nocbreak</STRONG>.]
+ user are echoed by <STRONG><A HREF="curs_getch.3x.html">getch(3x)</A></STRONG> as they are typed. Echoing by the
+ terminal driver is always disabled, but initially <STRONG>getch</STRONG> is in echo
+ mode, so characters typed are echoed. Authors of most interactive
+ programs prefer to do their own echoing in a controlled area of the
+ screen, or not to echo at all, so they disable echoing by calling
+ <STRONG>noecho</STRONG>. [See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion of how these routines
+ interact with <STRONG>cbreak</STRONG> and <STRONG>nocbreak</STRONG>.]
</PRE><H3><a name="h3-halfdelay">halfdelay</a></H3><PRE>
</PRE><H3><a name="h3-intrflush">intrflush</a></H3><PRE>
If the <STRONG>intrflush</STRONG> option is enabled (<EM>bf</EM> is <STRONG>TRUE</STRONG>), and an interrupt key
is pressed on the keyboard (interrupt, break, quit), all output in the
- tty driver queue will be flushed, giving the effect of faster response
+ terminal driver queue is flushed, giving the effect of faster response
to the interrupt, but causing <EM>curses</EM> to have the wrong idea of what is
- on the screen. Disabling the option (<EM>bf</EM> is <STRONG>FALSE</STRONG>) prevents the flush.
- The default for the option is inherited from the tty driver settings.
- The window argument is ignored.
+ on the screen. Disabling the option (<EM>bf</EM> is <STRONG>FALSE</STRONG>), prevents the flush.
+ The default for the option is inherited from the terminal driver
+ settings. The <EM>win</EM> argument is ignored.
</PRE><H3><a name="h3-keypad">keypad</a></H3><PRE>
</PRE><H3><a name="h3-meta">meta</a></H3><PRE>
Initially, whether the terminal returns 7 or 8 significant bits on
- input depends on the control mode of the tty driver [see <STRONG>termios(3)</STRONG>].
- To force 8 bits to be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>); this is
- equivalent, under POSIX, to setting the CS8 flag on the terminal. To
- force 7 bits to be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>); this is
- equivalent, under POSIX, to setting the CS7 flag on the terminal. The
- window argument, <EM>win</EM>, is always ignored. If the terminfo capabilities
- <STRONG>smm</STRONG> (meta_on) and <STRONG>rmm</STRONG> (meta_off) are defined for the terminal, <STRONG>smm</STRONG> is
- sent to the terminal when <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>) is called and <STRONG>rmm</STRONG> is sent
- when <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>) is called.
-
-
-</PRE><H3><a name="h3-nl_nonl">nl/nonl</a></H3><PRE>
+ input depends on the control mode of the terminal driver [see
+ <STRONG>termios(3)</STRONG>]. To force 8 bits to be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>);
+ this is equivalent, under POSIX, to setting the CS8 flag on the
+ terminal. To force 7 bits to be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>);
+ this is equivalent, under POSIX, to setting the CS7 flag on the
+ terminal. The window argument, <EM>win,</EM> is always ignored. If the
+ terminfo capabilities <STRONG>smm</STRONG> (meta_on) and <STRONG>rmm</STRONG> (meta_off) are defined for
+ the terminal, <STRONG>smm</STRONG> is sent to the terminal when <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>) is
+ called and <STRONG>rmm</STRONG> is sent when <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>) is called.
+
+
+</PRE><H3><a name="h3-nl_-nonl">nl, nonl</a></H3><PRE>
The <STRONG>nl</STRONG> and <STRONG>nonl</STRONG> routines control whether the underlying display device
translates the return key into newline on input.
When interpreting an escape sequence, <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> sets a timer while
waiting for the next character. If <STRONG>notimeout(</STRONG><EM>win</EM>, <STRONG>TRUE</STRONG>) is called,
then <STRONG>wgetch</STRONG> does not set a timer. The purpose of the timeout is to
- differentiate between sequences received from a function key and those
- typed by a user.
+ distinguish sequences produced by a function key from those typed by a
+ user.
-</PRE><H3><a name="h3-raw_noraw">raw/noraw</a></H3><PRE>
+</PRE><H3><a name="h3-raw_-noraw">raw, noraw</a></H3><PRE>
The <STRONG>raw</STRONG> and <STRONG>noraw</STRONG> routines place the terminal into or out of raw mode.
Raw mode is similar to <STRONG>cbreak</STRONG> mode, in that characters typed are
immediately passed through to the user program. The differences are
that in raw mode, the interrupt, quit, suspend, and flow control
characters are all passed through uninterpreted, instead of generating
a signal. The behavior of the BREAK key depends on other bits in the
- tty driver that are not set by <EM>curses</EM>.
+ terminal driver that are not set by <EM>curses.</EM>
-</PRE><H3><a name="h3-qiflush_noqiflush">qiflush/noqiflush</a></H3><PRE>
+</PRE><H3><a name="h3-qiflush_-nqiflush">qiflush, nqiflush</a></H3><PRE>
When the <STRONG>noqiflush</STRONG> routine is used, normal flush of input and output
queues associated with the <STRONG>INTR</STRONG>, <STRONG>QUIT</STRONG> and <STRONG>SUSP</STRONG> characters will not be
done [see <STRONG>termios(3)</STRONG>]. When <STRONG>qiflush</STRONG> is called, the queues will be
the interrupt had not occurred, after the handler exits.
-</PRE><H3><a name="h3-timeout_wtimeout">timeout/wtimeout</a></H3><PRE>
+</PRE><H3><a name="h3-timeout_-wtimeout">timeout, wtimeout</a></H3><PRE>
The <STRONG>timeout</STRONG> and <STRONG>wtimeout</STRONG> routines set blocking or non-blocking read for
- a given window. If <EM>delay</EM> is negative, blocking read is used (i.e.,
- waits indefinitely for input). If <EM>delay</EM> is zero, then non-blocking
- read is used (i.e., read returns <STRONG>ERR</STRONG> if no input is waiting). If <EM>delay</EM>
- is positive, then read blocks for <EM>delay</EM> milliseconds, and returns <STRONG>ERR</STRONG>
+ a given window. If <EM>delay</EM> is negative, a blocking read is used (i.e.,
+ waits indefinitely for input). If <EM>delay</EM> is zero, then a non-blocking
+ read is used (i.e., <EM>read</EM> returns <STRONG>ERR</STRONG> if no input is waiting). If <EM>delay</EM>
+ is positive, then <EM>read</EM> blocks for <EM>delay</EM> milliseconds, and returns <STRONG>ERR</STRONG>
if there is still no input. Hence, these routines provide the same
functionality as <STRONG>nodelay</STRONG>, plus the additional capability of being able
to block for only <EM>delay</EM> milliseconds (where <EM>delay</EM> is positive).
</PRE><H3><a name="h3-typeahead">typeahead</a></H3><PRE>
- The <EM>curses</EM> library does "line-breakout optimization" by looking for
- typeahead periodically while updating the screen. If input is found,
- and it is coming from a tty, the current update is postponed until
+ <EM>curses</EM> does "line-breakout optimization" by looking for typeahead
+ periodically while updating the screen. If input is found, and it is
+ coming from a terminal, the current update is postponed until
<STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> or <STRONG>doupdate</STRONG> is called again. This allows faster response
- to commands typed in advance. Normally, the input FILE pointer passed
+ to commands typed in advance. Normally, the input <EM>FILE</EM> pointer passed
to <STRONG>newterm</STRONG>, or <STRONG>stdin</STRONG> in the case that <STRONG>initscr</STRONG> was used, will be used to
do this typeahead checking. The <STRONG>typeahead</STRONG> routine specifies that the
file descriptor <EM>fd</EM> is to be used to check for typeahead instead. If <EM>fd</EM>
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- Note that <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>, <STRONG>nl</STRONG>, <STRONG>nonl</STRONG>, <STRONG>nodelay</STRONG>,
- <STRONG>notimeout</STRONG>, <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG> may be macros.
+ <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>meta</STRONG>, <STRONG>nl</STRONG>, <STRONG>nonl</STRONG>, <STRONG>nodelay</STRONG>, <STRONG>notimeout</STRONG>,
+ <STRONG>noqiflush</STRONG>, <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, and <STRONG>wtimeout</STRONG> may be implemented as macros.
- The <STRONG>noraw</STRONG> and <STRONG>nocbreak</STRONG> calls follow historical practice in that they
- attempt to restore to normal ("cooked") mode from raw and cbreak modes
- respectively. Mixing raw/noraw and cbreak/nocbreak calls leads to tty
- driver control states that are hard to predict or understand; it is not
+ <STRONG>noraw</STRONG> and <STRONG>nocbreak</STRONG> follow historical practice in that they attempt to
+ restore normal ("cooked") mode from raw and cbreak modes respectively.
+ Mixing <STRONG>raw</STRONG>/<STRONG>noraw</STRONG> and <STRONG>cbreak</STRONG>/<STRONG>nocbreak</STRONG> calls leads to terminal driver
+ control states that are hard to predict or understand; doing so is not
recommended.
</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
- This implementation provides four functions which may be used to detect
- if the corresponding flags were set or reset:
+ <EM>ncurses</EM> provides four "is_" functions that may be used to detect if the
+ corresponding flags were set or reset.
- <STRONG>Query</STRONG> <STRONG>Set</STRONG> <STRONG>Reset</STRONG>
- ------------------------------
- is_cbreak cbreak nocbreak
- is_echo echo noecho
- is_nl nl nonl
- is_raw raw noraw
+ <STRONG>Query</STRONG> <STRONG>Set</STRONG> <STRONG>Reset</STRONG>
+ ------------------------------
+ is_cbreak cbreak nocbreak
+ is_echo echo noecho
+ is_nl nl nonl
+ is_raw raw noraw
In each case, the function returns
- 1 if the flag is set,
+ 1 if the flag is set,
- 0 if the flag is reset, or
+ 0 if the flag is reset, or
- -1 if the <EM>curses</EM> library was not initialized.
+ -1 if the library is not initialized.
- These routines are specific to <EM>ncurses</EM>. They were not supported on
- Version 7, BSD or System V implementations. It is recommended that any
- code depending on <EM>ncurses</EM> extensions be conditioned using
- NCURSES_VERSION.
+ They were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and are not found in SVr4 <EM>curses</EM>,
+ 4.4BSD <EM>curses</EM>, or any other previous <EM>curses</EM> implementation.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- Except as noted in the section on extensions, these functions are
- described in the XSI Curses standard, Issue 4.
-
- The <EM>ncurses</EM> library obeys the XPG4 standard and the historical practice
- of the AT&T <EM>curses</EM> implementations, in that the echo bit is cleared
- when <EM>curses</EM> initializes the terminal state. BSD <EM>curses</EM> differed from
- this slightly; it left the echo bit on at initialization, but the BSD
- <STRONG>raw</STRONG> call turned it off as a side-effect. For best portability, set
- <STRONG>echo</STRONG> or <STRONG>noecho</STRONG> explicitly just after initialization, even if your
- program remains in cooked mode.
-
- The XSI Curses standard is ambiguous on the question of whether <STRONG>raw</STRONG>
- should disable the CRLF translations controlled by <STRONG>nl</STRONG> and <STRONG>nonl</STRONG>. BSD
- <EM>curses</EM> did turn off these translations; AT&T <EM>curses</EM> (at least as late
- as SVr1) did not. We chose to do so, on the theory that a programmer
- requesting raw input wants a clean (ideally 8-bit clean) connection
- that the operating system will not alter.
-
- When <STRONG>keypad</STRONG> is first enabled, <EM>ncurses</EM> loads the key-definitions for the
- current terminal description. If the terminal description includes
- extended string capabilities, e.g., from using the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>,
- then <EM>ncurses</EM> also defines keys for the capabilities whose names begin
- with "k". The corresponding keycodes are generated and (depending on
- previous loads of terminal descriptions) may differ from one execution
+ 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,
+ Version 2 describes these functions.
+
+ <EM>ncurses</EM> follows X/Open Curses and the historical practice of AT&T
+ <EM>curses</EM> implementations, in that the echo bit is cleared when <EM>curses</EM>
+ initializes the terminal state. BSD <EM>curses</EM> differed from this
+ slightly; it left the echo bit on at initialization, but the BSD <STRONG>raw</STRONG>
+ call turned it off as a side effect. For best portability, set <STRONG>echo</STRONG> or
+ <STRONG>noecho</STRONG> explicitly just after initialization, even if your program
+ remains in cooked mode.
+
+ X/Open Curses is ambiguous regarding whether <STRONG>raw</STRONG> should disable the
+ CR/LF translations controlled by <STRONG>nl</STRONG> and <STRONG>nonl</STRONG>. BSD <EM>curses</EM> did turn off
+ these translations; AT&T <EM>curses</EM> (at least as late as SVr1) did not.
+ <EM>ncurses</EM> does so, on the assumption that a programmer requesting raw
+ input wants a clean (ideally, 8-bit clean) connection that the
+ operating system will not alter.
+
+ When <STRONG>keypad</STRONG> is first enabled, <EM>ncurses</EM> loads the key definitions for the
+ current terminal description. If the terminal description includes
+ extended string capabilities, e.g., from using the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>,
+ then <EM>ncurses</EM> also defines keys for the capabilities whose names begin
+ with "k". The corresponding keycodes are generated and (depending on
+ previous loads of terminal descriptions) may differ from one execution
of a program to the next. The generated keycodes are recognized by the
- <STRONG>keyname</STRONG> function (which will then return a name beginning with "k"
- denoting the terminfo capability name rather than "K", used for <EM>curses</EM>
- key-names). On the other hand, an application can use <STRONG>define_key</STRONG> to
- establish a specific keycode for a given string. This makes it
- possible for an application to check for an extended capability's
- presence with <STRONG>tigetstr</STRONG>, and reassign the keycode to match its own
+ <STRONG><A HREF="curs_util.3x.html">keyname(3x)</A></STRONG> function (which will then return a name beginning with "k"
+ denoting the terminfo capability name rather than "K", used for <EM>curses</EM>
+ key names). On the other hand, an application can use <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
+ to establish a specific keycode for a given string. This makes it
+ possible for an application to check for an extended capability's
+ presence with <STRONG>tigetstr</STRONG>, and reassign the keycode to match its own
needs.
Low-level applications can use <STRONG>tigetstr</STRONG> to obtain the definition of any
- particular string capability. Higher-level applications which use the
- <EM>curses</EM> <STRONG>wgetch</STRONG> and similar functions to return keycodes rely upon the
+ particular string capability. Higher-level applications which use the
+ <EM>curses</EM> <STRONG>wgetch</STRONG> and similar functions to return keycodes rely upon the
order in which the strings are loaded. If more than one key definition
- has the same string value, then <STRONG>wgetch</STRONG> can return only one keycode.
+ has the same string value, then <STRONG>wgetch</STRONG> can return only one keycode.
Most <EM>curses</EM> implementations (including <EM>ncurses</EM>) load key definitions in
- the order defined by the array of string capability names. The last
- key to be loaded determines the keycode which will be returned. In
- <EM>ncurses</EM>, you may also have extended capabilities interpreted as key
- definitions. These are loaded after the predefined keys, and if a
- capability's value is the same as a previously-loaded key definition,
+ the order defined by the array of string capability names. The last
+ key to be loaded determines the keycode which will be returned. In
+ <EM>ncurses,</EM> you may also have extended capabilities interpreted as key
+ definitions. These are loaded after the predefined keys, and if a
+ capability's value is the same as a previously-loaded key definition,
the later definition is the one used.
</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_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>,
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>,
<STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>, <STRONG>termios(3)</STRONG>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-cbreak_nocbreak">cbreak/nocbreak</a></li>
-<li><a href="#h3-echo_noecho">echo/noecho</a></li>
+<li><a href="#h3-cbreak_-nocbreak">cbreak, nocbreak</a></li>
+<li><a href="#h3-echo_-noecho">echo, noecho</a></li>
<li><a href="#h3-halfdelay">halfdelay</a></li>
<li><a href="#h3-intrflush">intrflush</a></li>
<li><a href="#h3-keypad">keypad</a></li>
<li><a href="#h3-meta">meta</a></li>
-<li><a href="#h3-nl_nonl">nl/nonl</a></li>
+<li><a href="#h3-nl_-nonl">nl, nonl</a></li>
<li><a href="#h3-nodelay">nodelay</a></li>
<li><a href="#h3-notimeout">notimeout</a></li>
-<li><a href="#h3-raw_noraw">raw/noraw</a></li>
-<li><a href="#h3-qiflush_noqiflush">qiflush/noqiflush</a></li>
-<li><a href="#h3-timeout_wtimeout">timeout/wtimeout</a></li>
+<li><a href="#h3-raw_-noraw">raw, noraw</a></li>
+<li><a href="#h3-qiflush_-nqiflush">qiflush, nqiflush</a></li>
+<li><a href="#h3-timeout_-wtimeout">timeout, wtimeout</a></li>
<li><a href="#h3-typeahead">typeahead</a></li>
</ul>
</li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_ins_wch.3x,v 1.24 2023/11/25 11:32:28 tom Exp @
+ * @Id: curs_ins_wch.3x,v 1.26 2023/12/23 16: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_ins_wch 3x 2023-11-25 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_ins_wch 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_ins_wch 3x 2023-11-25 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_ins_wch 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
<STRONG>ins_wch</STRONG>, <STRONG>mvins_wch</STRONG>, <STRONG>mvwins_wch</STRONG>, <STRONG>wins_wch</STRONG> - insert a <EM>curses</EM> complex
- character string in a window
+ character in a window
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- #include <curses.h>
+ <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
<STRONG>int</STRONG> <STRONG>ins_wch(const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>wins_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>mvins_wch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwins_wch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines, insert the complex character <EM>wch</EM> with rendition before
- the character under the cursor. All characters to the right of the
- cursor are moved one space to the right, with the possibility of the
- rightmost character on the line being lost. The insertion operation
- does not change the cursor position.
+ These functions insert the <EM>curses</EM> complex character <EM>wch</EM> at the cursor
+ in the specified window <EM>win</EM> (or <STRONG>stdscr</STRONG>). The character previously at
+ the cursor and any to its right move one cell to the right; the
+ rightmost character on the line is discarded. The cursor does not
+ advance.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- If successful, these functions return <STRONG>OK</STRONG>. If not, they return <STRONG>ERR</STRONG>.
+ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
+
+ Functions taking a <EM>WINDOW</EM> pointer argument fail if the pointer is <STRONG>NULL</STRONG>.
+
+ Functions prefixed with "mv" first perform cursor movement using <STRONG>wmove</STRONG>
+ and fail if the position (<EM>y</EM>, <EM>x</EM>) is outside the window.
+
+
+</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
+ A terminal's <STRONG>insert_character</STRONG> (<STRONG>ich1</STRONG>) capability is not necessarily
+ employed.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ <STRONG>ins_wch</STRONG>, <STRONG>mvins_wch</STRONG>, and <STRONG>mvwins_wch</STRONG> may be implemented as macros.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
+ X/Open Curses, Issue 4, describes these functions.
+
+ SVr4 describes successful return values only as "an integer value other
+ than <STRONG>ERR</STRONG>".
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ SVr4 (1989) implemented these functions under the names <STRONG>inswch</STRONG>,
+ <STRONG>winswch</STRONG>, <STRONG>mvinswch</STRONG>, and <STRONG>mvwinswch</STRONG>.
</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_insch.3x.html">curs_insch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> describes comparable functions in the non-wide-character
+ <EM>curses</EM> configuration.
+
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-ncurses 6.4 2023-11-25 <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-NOTES">NOTES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-HISTORY">HISTORY</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_insch.3x,v 1.34 2023/12/16 21:09:11 tom Exp @
+ * @Id: curs_insch.3x,v 1.36 2023/12/23 16: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_insch 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_insch 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_insch 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_insch 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
<STRONG>int</STRONG> <STRONG>insch(chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>winsch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
-
<STRONG>int</STRONG> <STRONG>mvinsch(int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>mvwinsch(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- These routines insert the character <EM>ch</EM> before the character under the
- cursor. All characters to the right of the cursor are moved one space
- to the right, with the possibility of the rightmost character on the
- line being lost. The insertion operation does not change the cursor
- position.
+ These functions insert the <EM>curses</EM> character <EM>ch</EM> at the cursor in the
+ specified window <EM>win</EM> (or <STRONG>stdscr</STRONG>). The character previously at the
+ cursor and any to its right move one cell to the right; the rightmost
+ character on the line is discarded. The cursor does not advance.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- These routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG> (SVr4
- specifies only "an integer value other than <STRONG>ERR</STRONG>") upon successful
- completion.
+ These functions return <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on failure.
+
+ Functions taking a <EM>WINDOW</EM> pointer argument fail if the pointer is <STRONG>NULL</STRONG>.
- Functions with a "mv" prefix first perform a cursor movement using
- <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
- the window pointer is null.
+ Functions prefixed with "mv" first perform cursor movement using <STRONG>wmove</STRONG>
+ and fail if the position (<EM>y</EM>, <EM>x</EM>) is outside the window.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- These routines do not necessarily imply use of a hardware insert
- character feature.
+ A terminal's <STRONG>insert_character</STRONG> (<STRONG>ich1</STRONG>) capability is not necessarily
+ employed.
- Note that <STRONG>insch</STRONG>, <STRONG>mvinsch</STRONG>, and <STRONG>mvwinsch</STRONG> may be macros.
+ <STRONG>insch</STRONG>, <STRONG>mvinsch</STRONG>, and <STRONG>mvwinsch</STRONG> may be implemented as macros.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These functions are described in the XSI Curses standard, Issue 4.
+ X/Open Curses, Issue 4, describes these functions.
+
+ SVr4 describes successful return values only as "an integer value other
+ than <STRONG>ERR</STRONG>".
</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_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> describes comparable functions in the wide-character
+ <EM>curses</EM> configuration.
- Comparable functions in the wide-character (ncursesw) library are
- described in <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_legacy.3x,v 1.29 2023/10/21 10:28:36 tom Exp @
+ * @Id: curs_legacy.3x,v 1.30 2023/12/23 16:40: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_legacy 3x 2023-10-21 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_legacy 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_legacy 3x 2023-10-21 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_legacy 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- All of these interfaces are provided as macros and functions. The
- macros are suppressed (and only the functions provided) when
- <STRONG>NCURSES_OPAQUE</STRONG> is defined. The standard forms such as <STRONG>getyx</STRONG> must be
- implemented as macros, and (in this implementation) are defined in
- terms of the functions described here, to avoid reliance on internal
- details of the <STRONG>WINDOW</STRONG> structure.
+ All of these interfaces are implemented as macros and functions. The
+ macros are suppressed (and only the functions provided) in an "opaque"
+ <EM>ncurses</EM> build, which defines the preprocessor symbol <STRONG>NCURSES_OPAQUE</STRONG>.
+ See section "ALTERNATE CONFIGURATIONS" in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
+
+ The standard forms such as <STRONG>getyx</STRONG> <EM>must</EM> be implemented as macros, and (in
+ this implementation) are defined in terms of the functions described
+ here, to avoid reliance on internal details of the <EM>WINDOW</EM> structure.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
-ncurses 6.4 2023-10-21 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_memleaks.3x,v 1.32 2023/12/16 20:32:22 tom Exp @
+ * @Id: curs_memleaks.3x,v 1.33 2023/12/23 16:22: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>curs_memleaks 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_memleaks 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_memleaks 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_memleaks 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>
the memory allocated by curses:
<STRONG>o</STRONG> The portable part of <STRONG>exit_curses</STRONG> can be freed using <STRONG>delscreen</STRONG>,
- passing the <STRONG>SCREEN*</STRONG> pointer returned by <STRONG>newterm</STRONG>.
+ passing the <EM>SCREEN</EM> pointer returned by <STRONG>newterm</STRONG>.
In some implementations, there is a global variable <STRONG>sp</STRONG> which could
be used, e.g., if the screen were only initialized using <STRONG>initscr</STRONG>.
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_mouse.3x,v 1.82 2023/12/16 21:08:16 tom Exp @
+ * @Id: curs_mouse.3x,v 1.83 2023/12/23 20:37:56 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 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_mouse 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_mouse 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_mouse 3x 2023-12-23 ncurses 6.4 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>
is device-dependent.
-</PRE><H3><a name="h3-Mouse-events">Mouse events</a></H3><PRE>
+</PRE><H3><a name="h3-Mouse-Events">Mouse Events</a></H3><PRE>
Here are the mouse event type masks which may be defined:
<STRONG>Name</STRONG> <STRONG>Description</STRONG>
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- The feature macro <STRONG>NCURSES_MOUSE_VERSION</STRONG> is provided so the preprocessor
- can be used to test whether these features are present. If the
- interface is changed, the value of <STRONG>NCURSES_MOUSE_VERSION</STRONG> will be
- incremented. These values for <STRONG>NCURSES_MOUSE_VERSION</STRONG> may be specified
- when configuring <EM>ncurses</EM>:
-
- 1 has definitions for reserved events. The mask uses 28 bits.
-
- 2 adds definitions for button 5, removes the definitions for
- reserved events. The mask uses 29 bits.
-
- 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 xterm'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
If you are using an unsupported configuration, mouse events will not be
visible to <EM>ncurses</EM> (and the <STRONG>mousemask</STRONG> function will always return <STRONG>0</STRONG>).
- If the terminfo entry contains a <STRONG>XM</STRONG> string, this is used in the xterm
- mouse driver to control the way the terminal is initialized for mouse
- operation. The default, if <STRONG>XM</STRONG> is not found, corresponds to private
- mode 1000 of xterm:
+ If the <EM>terminfo</EM> entry contains a <STRONG>XM</STRONG> string, this is used in the <EM>xterm</EM>
+ mouse driver to control the way the terminal is initialized 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%;
- The mouse driver also recognizes a newer xterm private mode 1006, e.g.,
+ The mouse driver also recognizes a newer <EM>xterm</EM> private mode 1006, e.g.,
\E[?1006;1000%?%p1%{1}%=%th%el%;
- The <EM>z</EM> member in the event structure is not presently used. It is
- intended for use with touch screens (which may be pressure-sensitive)
+ The <EM>z</EM> member in the event structure is not presently used. It is
+ 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 xterm, 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 were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and are not found in
+ SVr4 <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous curses
+ implementation. (SVr4 <EM>curses</EM> did have a <EM>getmouse</EM> function, which took
+ no argument and returned a different type.)
+
+
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- These calls were designed for <EM>ncurses</EM>, and are not found in SVr4
- <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous version of <EM>curses</EM>.
+ 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
+ "ALTERNATE CONFIGURATIONS" of <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>. The following values may be
+ specified.
+
+ 1 has definitions for reserved events. The mask uses 28 bits.
+
+ 2 adds definitions for button 5, removes the definitions for
+ reserved events. The mask uses 29 bits.
- SVr4 <EM>curses</EM> had support for the mouse in a variant of <STRONG>xterm(1)</STRONG>. It is
- mentioned in a few places, but with no supporting documentation:
+ SVr4 <EM>curses</EM> had support for the mouse in a variant of <STRONG>xterm(1)</STRONG>. It is
+ mentioned in a few places, with little supporting documentation.
- <STRONG>o</STRONG> the "libcurses" manual page lists functions for this feature which
- are prototyped in <STRONG>curses.h</STRONG>:
+ <STRONG>o</STRONG> Its "libcurses" manual page lists functions for this feature
+ prototyped in <EM>curses.h</EM>.
extern int mouse_set(long int);
extern int mouse_on(long int);
extern void wmouse_position(WINDOW *, int *, int *);
extern unsigned long getmouse(void), getbmap(void);
- <STRONG>o</STRONG> the "terminfo" manual page lists capabilities for the feature
+ <STRONG>o</STRONG> Its "terminfo" manual page lists capabilities for the feature.
buttons btns BT Number of buttons on the mouse
get_mouse getm Gm Curses should get button events
mouse_info minfo Mi Mouse status information
req_mouse_pos reqmp RQ 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> 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>
+ For instance, the SVr4 <EM>curses</EM> library used the <STRONG>get_mouse</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>
capability.
- Those features required a terminal which had been modified to work
- with <EM>curses</EM>. They were not part of the X Consortium's xterm.
+ 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 xterm mouse support for <EM>ncurses</EM> in September 1995,
+ 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 PDCurses 2.3 using the SVr4 interface. PDCurses, however, does not
+ 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.
Mouse event reports from <EM>xterm</EM> are not detected correctly in a window
with keypad application mode disabled, since they are interpreted as a
- variety of function key. Set the the terminal's <EM>terminfo</EM> capability
- <STRONG>kmous</STRONG> to "\E[M" (the beginning of the response from <EM>xterm</EM> for mouse
- clicks). Other values of <STRONG>kmous</STRONG> are permitted under the same
- assumption, that is, the report begins with that sequence.
+ variety of function key. Set the terminal's <EM>terminfo</EM> capability <STRONG>kmous</STRONG>
+ to "\E[M" (the beginning of the response from <EM>xterm</EM> for mouse clicks).
+ Other values of <STRONG>kmous</STRONG> are permitted under the same assumption, that is,
+ the report begins with that sequence.
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>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. The <STRONG>kmous</STRONG> capability is checked first, allowing
- use of newer <EM>xterm</EM> mouse protocols such as its private mode 1006.
+ use of newer <EM>xterm</EM> mouse protocols, such as its private mode 1006.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-mousemask">mousemask</a></li>
-<li><a href="#h3-Mouse-events">Mouse events</a></li>
+<li><a href="#h3-Mouse-Events">Mouse Events</a></li>
<li><a href="#h3-getmouse">getmouse</a></li>
<li><a href="#h3-ungetmouse">ungetmouse</a></li>
<li><a href="#h3-wenclose">wenclose</a></li>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-BUGS">BUGS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_print.3x,v 1.35 2023/12/16 20:32:22 tom Exp @
+ * @Id: curs_print.3x,v 1.36 2023/12/23 16:36:18 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_print 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_print 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_print 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_print 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
sent to the printer.
+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ <STRONG>mcprint</STRONG> was designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and was not found in SVr4 <EM>curses</EM>,
+ 4.4BSD <EM>curses</EM>, or any other previous curses implementation.
+
+
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The <STRONG>mcprint</STRONG> call was designed for <EM>ncurses</EM>, and is not found in SVr4
- <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous version of <EM>curses</EM>. It is
- recommended that any code depending on <EM>ncurses</EM> extensions be
- conditioned using <STRONG>NCURSES_VERSION</STRONG>.
+ Applications employing this <EM>ncurses</EM> extension should condition its use
+ on the visibility of the <STRONG>NCURSES_VERSION</STRONG> preprocessor macro.
</PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
+<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
<li><a href="#h2-BUGS">BUGS</a></li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_printw.3x,v 1.45 2023/12/18 00:03:28 tom Exp @
+ * @Id: curs_printw.3x,v 1.47 2023/12/23 14:41:07 tom Exp @
* https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/src/lib/\
* libcurses/printw.c
* https://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/\
<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 2023-12-17 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_printw 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_printw 3x 2023-12-17 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_printw 3x 2023-12-23 ncurses 6.4 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>
using the <EM>stdarg.h</EM> interface.
<STRONG>o</STRONG> X/Open Curses, Issue 5, Draft 2 (December 2007) marked <STRONG>vwprintw</STRONG>
- (along with <STRONG>vwscanw</STRONG> and the termcap interface) as withdrawn. After
+ (along with <STRONG>vwscanw</STRONG> and the <EM>termcap</EM> interface) as withdrawn. After
incorporating review comments, this became X/Open Curses, Issue 7
(2009).
-ncurses 6.4 2023-12-17 <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_scanw.3x,v 1.44 2023/12/17 22:50:40 tom Exp @
+ * @Id: curs_scanw.3x,v 1.47 2023/12/23 14:41:50 tom Exp @
* https://minnie.tuhs.org/cgi-bin/utree.pl?file=4BSD/usr/src/lib/\
* libcurses/scanw.c
* https://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/include/\
<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 2023-12-17 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_scanw 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_scanw 3x 2023-12-17 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_scanw 3x 2023-12-23 ncurses 6.4 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>
using the <EM>stdarg.h</EM> interface.
<STRONG>o</STRONG> X/Open Curses, Issue 5, Draft 2 (December 2007) marked <STRONG>vwscanw</STRONG>
- (along with <STRONG>vwscanw</STRONG> and the termcap interface) as withdrawn. After
+ (along with <STRONG>vwscanw</STRONG> and the <EM>termcap</EM> interface) as withdrawn. After
incorporating review comments, this became X/Open Curses, Issue 7
(2009).
SVr3 (1987) added <STRONG>mvscanw</STRONG>, and <STRONG>mvwscanw</STRONG>, stating
- These routines correspond to <STRONG>scanf(3S)</STRONG>, as do their arguments
+ "[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.
+ 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
-ncurses 6.4 2023-12-17 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_sp_funcs.3x,v 1.45 2023/12/16 20:32:22 tom Exp @
+ * @Id: curs_sp_funcs.3x,v 1.46 2023/12/23 16:26:05 tom Exp @
* ***************************************************************************
* ***************************************************************************
* ***************************************************************************
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_sp_funcs 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_sp_funcs 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_sp_funcs 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_sp_funcs 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
This implementation can be configured to provide a set of functions
which improve the ability to manage multiple screens. This feature can
be added to any of the configurations supported by <EM>ncurses</EM>; it adds new
- entrypoints without changing the meaning of any of the existing ones.
+ symbols without changing the meaning of any of the existing ones.
-</PRE><H3><a name="h3-IMPROVED-FUNCTIONS">IMPROVED FUNCTIONS</a></H3><PRE>
+</PRE><H3><a name="h3-Improved-Functions">Improved Functions</a></H3><PRE>
Most of the functions are new versions of existing functions. A
- parameter is added at the front of the parameter list. It is a SCREEN
+ parameter is added at the front of the parameter list. It is a <EM>SCREEN</EM>
pointer.
The existing functions all use the current screen, which is a static
multiple screens.
-</PRE><H3><a name="h3-NEW-FUNCTIONS">NEW FUNCTIONS</a></H3><PRE>
+</PRE><H3><a name="h3-New-Functions">New Functions</a></H3><PRE>
Here are the new functions:
ceiling_panel
With the screen-pointer extension, there are situations where it
must create a current screen before the unextended library does.
The <STRONG>new_prescr</STRONG> function is used internally to handle these cases.
- It is also provided as an entrypoint to allow applications to
- customize the library initialization.
+ It is also provided to allow applications to customize library
+ initialization.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-IMPROVED-FUNCTIONS">IMPROVED FUNCTIONS</a></li>
-<li><a href="#h3-NEW-FUNCTIONS">NEW FUNCTIONS</a></li>
+<li><a href="#h3-Improved-Functions">Improved Functions</a></li>
+<li><a href="#h3-New-Functions">New Functions</a></li>
</ul>
</li>
<li><a href="#h2-NOTES">NOTES</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_termcap.3x,v 1.76 2023/12/18 00:22:30 tom Exp @
+ * @Id: curs_termcap.3x,v 1.80 2023/12/23 20:19:05 tom Exp @
* See <https://minnie.tuhs.org/cgi-bin/utree.pl?file=2BSD/src/\
* termlib/termcap.c>.
* See https://www.oreilly.com/openbook/opensources/book/kirkmck.html
* Observe the `tncktc()`, `tnamatch()`, `tskip()`, and `tdecode()`
* entry points disappearing from termcap.c.
* 2BSD became a branch retaining support for non-virtual memory
- * systems (like the PDP-11) whereas most BSD development focused on
+ * systems (such as the PDP-11) whereas most BSD development focused on
* the VAX and other VM-enabled systems starting with 3BSD.
* This man page previously located a termcap.h in 2BSD, but that may
* be confusion arising from its backport to 2.9BSD (and still present
<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_termcap 3x 2023-12-17 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_termcap 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_termcap 3x 2023-12-17 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_termcap 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE>
<STRONG>tgetent</STRONG> loads the terminal database entry for <EM>name</EM>; see <STRONG><A HREF="term.7.html">term(7)</A></STRONG>. This
- must be done before calling any of the other functions. It returns:
+ must be done before calling any of the other functions. It returns
- 1 on success,
+ 1 on success,
- 0 if there is no such entry (or if the matching entry describes a
- generic terminal, having too little information for <EM>curses</EM>
- applications to run), and
+ 0 if there is no such entry (or if the matching entry describes a
+ generic terminal, having too little information for <EM>curses</EM>
+ applications to run), and
- -1 if the <EM>terminfo</EM> database could not be found.
+ -1 if the <EM>terminfo</EM> database could not be found.
This implementation differs from those of historical <EM>termcap</EM> libraries.
form, which is not the same thing.
<STRONG>o</STRONG> The meanings of the return values differ. The BSD <EM>termcap</EM>
- library does not check whether the terminal type description is
- marked with the <STRONG>gn</STRONG> (<STRONG>generic</STRONG>) capability, nor whether the
- terminal type description supports an addressable cursor, a
- property essential for any <EM>curses</EM> implementation to operate.
+ library does not check whether the terminal type description
+ includes the <STRONG>generic</STRONG> (<STRONG>gn</STRONG>) capability, nor whether the terminal
+ type description supports an addressable cursor, a property
+ essential for any <EM>curses</EM> implementation to operate.
</PRE><H3><a name="h3-Retrieving-Capability-Values">Retrieving Capability Values</a></H3><PRE>
Doing so reveals a quirk in <STRONG>tgoto</STRONG>: most hardware terminals use
cursor addressing with <EM>row</EM> first, but the original developers of
the <EM>termcap</EM> interface chose to put the <EM>col</EM> (column) parameter
- first. The <STRONG>tgoto</STRONG> function swaps the order of parameters. It does
- this even for calls requiring only a single parameter. In that
- case, the first parameter is merely a placeholder.
+ first. The <STRONG>tgoto</STRONG> function swaps the order of its parameters. It
+ does this even for calls requiring only a single parameter. In
+ that case, the first parameter is merely a placeholder.
<STRONG>o</STRONG> Normally the <EM>ncurses</EM> library is compiled without full <EM>termcap</EM>
support. In that case, <STRONG>tgoto</STRONG> uses an internal version of <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>
applications should not rely upon its availability.
<STRONG>tputs</STRONG> is described in <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>. It can retrieve capabilities
- by either <EM>termcap</EM> or <EM>terminfo</EM> name.
+ by either <EM>termcap</EM> or <EM>terminfo</EM> code.
</PRE><H3><a name="h3-Global-Variables">Global Variables</a></H3><PRE>
del_curterm(cur_term);
to free this memory, but there is an additional complication with
<EM>ncurses</EM>. It uses a fixed-size pool of storage locations, one per value
- of the <EM>TERM</EM> environment variable when <STRONG>tgetent</STRONG> is called. The <STRONG>screen(1)</STRONG>
- program relies upon this arrangement to improve its performance.
+ of the terminal name parameter given to <STRONG>tgetent</STRONG>. The <STRONG>screen(1)</STRONG> program
+ relies upon this arrangement to improve its performance.
An application that uses only the <EM>termcap</EM> functions, not the higher
level <EM>curses</EM> API, could release the memory using <STRONG><A HREF="curs_terminfo.3x.html">del_curterm(3x)</A></STRONG>,
</PRE><H3><a name="h3-Standards">Standards</a></H3><PRE>
<STRONG>o</STRONG> X/Open Curses, Issue 4, Version 2 (1996), describes these
- functions. However, they are marked "TO BE WITHDRAWN".
+ functions, marking them as "TO BE WITHDRAWN".
- <STRONG>o</STRONG> X/Open Curses, Issue 7 (2009) marked the <EM>termcap</EM> interface (along
+ <STRONG>o</STRONG> X/Open Curses, Issue 7 (2009) marks the <EM>termcap</EM> interface (along
with <STRONG>vwprintw</STRONG> and <STRONG>vwscanw</STRONG>) as withdrawn.
Neither X/Open Curses nor the SVr4 man pages documented the return
- values of <STRONG>tgetent</STRONG> correctly, though all three were in fact returned
- ever since SVr1. In particular, an omission in the X/Open Curses
- specification has been misinterpreted to mean that <STRONG>tgetent</STRONG> returns <STRONG>OK</STRONG>
- or <STRONG>ERR</STRONG>. Because the purpose of these functions is to provide
- compatibility with the <EM>termcap</EM> library, that is a defect in X/Open
- Curses, Issue 4, Version 2 rather than in <EM>ncurses</EM>.
+ values of <STRONG>tgetent</STRONG> correctly, though all three shown here were in fact
+ returned ever since SVr1. In particular, an omission in the X/Open
+ Curses specification has been misinterpreted to mean that <STRONG>tgetent</STRONG>
+ returns <STRONG>OK</STRONG> or <STRONG>ERR</STRONG>. Because the purpose of these functions is to
+ provide compatibility with the <EM>termcap</EM> library, that is a defect in
+ X/Open Curses, Issue 4, Version 2 rather than in <EM>ncurses</EM>.
<STRONG>Compatibility</STRONG> <STRONG>with</STRONG> <STRONG>BSD</STRONG> <EM>termcap</EM>
Externally visible variables are provided for support of certain
4BSD (November 1980) renamed <EM>termlib</EM> to <EM>termcap</EM> and added another test
program. The library remained much the same though 4.3BSD (June 1986).
- 4.4BSD-Lite (June 1994) refactored it but left the API unchanged.
+ 4.4BSD-Lite (June 1994) refactored it, leaving the API unchanged.
- Function prototypes were a feature of the forthcoming ANSI C (1989).
- Thus the library provided no header file declaring them. Nevertheless,
- the BSD sources included two different <EM>termcap.h</EM> header files over
- time.
+ Function prototypes were a feature of ANSI C (1989). Thus the library
+ itself provided no header file declaring them. Nevertheless, the BSD
+ sources included two different <EM>termcap.h</EM> header files over time.
<STRONG>o</STRONG> One was used internally by <STRONG>jove(1)</STRONG> from 4.3BSD onward. It delcared
global symbols for the <EM>termcap</EM> variables that it used.
- <STRONG>o</STRONG> The other appeared in 4.4BSD-Lite Release 2 (June 1995) as part of
- <EM>libedit</EM> (also known as the <EM>editline</EM> library). CSRG source history
+ <STRONG>o</STRONG> The other appeared in 4.4BSD-Lite Release 2 (June 1995) as part of
+ <EM>libedit</EM> (also known as the <EM>editline</EM> library). CSRG source history
shows that this was added in mid-1992. The <EM>libedit</EM> header file was
used internally as a convenience for compiling the <EM>editline</EM>
library. It declared function prototypes, but no global variables.
This header file was added to NetBSD's <EM>termcap</EM> library in mid-1994.
- Meanwhile, GNU <EM>termcap</EM> began development in 1990. Its first release
- (1.0) in 1991 included a <EM>termcap.h</EM> header. Its second (1.1) in
- September 1992 modified the header to use <EM>const</EM> for the function
- prototypes in the header where one would expect the parameters to be
+ Meanwhile, GNU <EM>termcap</EM> began development in 1990. Its first release
+ (1.0) in 1991 included a <EM>termcap.h</EM> header. Its second (1.1) in
+ September 1992 modified the header to use <EM>const</EM> for the function
+ prototypes in the header where one would expect the parameters to be
read-only. BSD <EM>termcap</EM> did not. The prototype for <STRONG>tputs</STRONG> also
- differed, but in that instance, it was <EM>libedit</EM> that differed from BSD
+ differed, but in that instance, it was <EM>libedit</EM> that differed from BSD
<EM>termcap</EM>.
- GNU <EM>termcap</EM> 1.3 was bundled with <EM>bash</EM> in mid-1993 to support the
+ GNU <EM>termcap</EM> 1.3 was bundled with <STRONG>bash(1)</STRONG> in mid-1993 to support the
<STRONG>readline(3)</STRONG> library.
- <EM>ncurses</EM> 1.8.1 (November 1993) provided a <EM>termcap.h</EM> file. It reflected
- influence from GNU <EM>termcap</EM> and <STRONG>emacs(1)</STRONG> (rather than <STRONG>jove(1)</STRONG>),
+ <EM>ncurses</EM> 1.8.1 (November 1993) provided a <EM>termcap.h</EM> file. It reflected
+ influence from GNU <EM>termcap</EM> and <STRONG>emacs(1)</STRONG> (rather than <STRONG>jove(1)</STRONG>),
providing the following interface:
<STRONG>o</STRONG> global symbols used by <EM>emacs</EM>,
<STRONG>o</STRONG> a prototype for <STRONG>tparam</STRONG>, a GNU <EM>termcap</EM> feature.
- Later (in mid-1996) the <STRONG>tparam</STRONG> function was removed from <EM>ncurses</EM>. Any
- two of the four implementations thus differ, and programs that intend
+ Later (in mid-1996) the <STRONG>tparam</STRONG> function was removed from <EM>ncurses</EM>. Any
+ two of the four implementations thus differ, and programs that intend
to work with all <EM>termcap</EM> library interfaces must account for that fact.
</PRE><H2><a name="h2-BUGS">BUGS</a></H2><PRE>
- If you call <STRONG>tgetstr</STRONG> to fetch <STRONG>ca</STRONG> or any other parameterized string
- capability, be aware that it is returned in <EM>terminfo</EM> notation, not the
- older and not-quite-compatible <EM>termcap</EM> notation. This does not cause
- problems if all you do with it is call <STRONG>tgoto</STRONG> or <STRONG>tparm</STRONG>, which both
- expand <EM>terminfo</EM>-style strings as <EM>terminfo</EM> does. (If <EM>ncurses</EM> is
- configured to support <EM>termcap,</EM> <STRONG>tgoto</STRONG> checks whether the string is <EM>term-</EM>
- <EM>info</EM>-style by looking for "<STRONG>%p</STRONG>" parameters or "<STRONG><</STRONG>...<STRONG>></STRONG>" delays, and
- invokes a <EM>termcap</EM>-style parser if the string appears not to use <EM>term-</EM>
- <EM>info</EM> syntax.)
-
- Because <EM>terminfo</EM>'s syntax for padding in string capabilities differs
+ If you call <STRONG>tgetstr</STRONG> to fetch <STRONG>column_address</STRONG> (<STRONG>ch</STRONG>) or any other
+ parameterized string capability, be aware that it is returned in <EM>term-</EM>
+ <EM>info</EM> notation, not the older and not-quite-compatible <EM>termcap</EM> notation.
+ This does not cause problems if all you do with it is call <STRONG>tgoto</STRONG> or
+ <STRONG>tparm</STRONG>, which both expand <EM>terminfo</EM>-style strings as <EM>terminfo</EM> does. (If
+ <EM>ncurses</EM> is configured to support <EM>termcap,</EM> <STRONG>tgoto</STRONG> checks whether the
+ string is <EM>terminfo</EM>-style by looking for "<STRONG>%p</STRONG>" parameters or "<STRONG><</STRONG>...<STRONG>></STRONG>"
+ delays, and invokes a <EM>termcap</EM>-style parser if the string appears not to
+ use <EM>terminfo</EM> syntax.)
+
+ Because <EM>terminfo</EM>'s syntax for padding in string capabilities differs
from <EM>termcap</EM>'s, users can be surprised.
- <STRONG>o</STRONG> <STRONG>tputs("50")</STRONG> in a <EM>terminfo</EM> system transmits "50" rather than busy-
+ <STRONG>o</STRONG> <STRONG>tputs("50")</STRONG> in a <EM>terminfo</EM> system transmits "50" rather than busy-
waiting for 50 milliseconds.
- <STRONG>o</STRONG> However, if <EM>ncurses</EM> is configured to support <EM>termcap</EM>, it may also
+ <STRONG>o</STRONG> However, if <EM>ncurses</EM> is configured to support <EM>termcap</EM>, it may also
have been configured to support BSD-style padding.
- In that case, <STRONG>tputs</STRONG> inspects strings passed to it, looking for
+ In that case, <STRONG>tputs</STRONG> inspects strings passed to it, looking for
digits at the beginning of the string.
- <STRONG>tputs("50")</STRONG> in a <EM>termcap</EM> system may busy-wait for 50 milliseconds
+ <STRONG>tputs("50")</STRONG> in a <EM>termcap</EM> system may busy-wait for 50 milliseconds
rather than transmitting "50".
- <EM>termcap</EM> has nothing analogous to <EM>terminfo</EM>'s <STRONG>sgr</STRONG> string. One
- consequence is that <EM>termcap</EM> applications assume that "<STRONG>me</STRONG>" (equivalent
- to <EM>terminfo</EM>'s <STRONG>sgr0</STRONG> capability) does not reset the alternate character
- set. <EM>ncurses</EM> checks for, and modifies the data shared with, the
- <EM>termcap</EM> interface to accommodate the latter's limitation in this
- respect.
+ <EM>termcap</EM> has nothing analogous to <EM>terminfo</EM>'s <STRONG>set_attributes</STRONG> (<STRONG>sgr</STRONG>)
+ capability. One consequence is that <EM>termcap</EM> applications assume that
+ "<STRONG>me</STRONG>" (equivalent to <EM>terminfo</EM>'s <STRONG>exit_attribute_mode</STRONG> (<STRONG>sgr0</STRONG>) capability)
+ does not reset the alternate character set. <EM>ncurses</EM> checks for, and
+ modifies the data shared with, the <EM>termcap</EM> interface to accommodate the
+ latter's limitation in this respect.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
-ncurses 6.4 2023-12-17 <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_terminfo.3x,v 1.123 2023/12/16 21:11:53 tom Exp @
+ * @Id: curs_terminfo.3x,v 1.124 2023/12/23 17:34:39 tom Exp @
* ***************************************************************************
* ***************************************************************************
* ***************************************************************************
* ***************************************************************************
* ***************************************************************************
* ***************************************************************************
+ * See X/Open Curses Issue 4, Version 2, pp. 227-234.
+ * See X/Open Curses Issue 7, pp. 311-318.
* ***************************************************************************
* ***************************************************************************
* ***************************************************************************
<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 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_terminfo 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_terminfo 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_terminfo 3x 2023-12-23 ncurses 6.4 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>
<STRONG>char</STRONG> <STRONG>*tiparm_s(int</STRONG> <EM>expected</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>mask</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>,</STRONG> <STRONG>...);</STRONG>
<STRONG>int</STRONG> <STRONG>tiscan_s(int</STRONG> <STRONG>*</STRONG><EM>expected</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <STRONG>*</STRONG><EM>mask</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>str</EM><STRONG>);</STRONG>
+ <EM>/*</EM> <EM>deprecated</EM> <EM>*/</EM>
+ <STRONG>int</STRONG> <STRONG>setterm(const</STRONG> <STRONG>char</STRONG> <STRONG>*</STRONG><EM>term</EM><STRONG>);</STRONG>
+
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
These low-level routines must be called by programs that have to deal
</PRE><H3><a name="h3-The-Terminal-State">The Terminal State</a></H3><PRE>
The <STRONG>setupterm</STRONG> routine stores its information about the terminal in a
- <STRONG>TERMINAL</STRONG> structure pointed to by the global variable <STRONG>cur_term</STRONG>. If it
+ <EM>TERMINAL</EM> structure pointed to by the global variable <STRONG>cur_term</STRONG>. If it
detects an error, or decides that the terminal is unsuitable (hardcopy
or generic), it discards this information, making it not available to
applications.
<STRONG>o</STRONG> <EM>affcnt</EM> is the number of lines affected, or 1 if not applicable.
- <STRONG>o</STRONG> <EM>putc</EM> is a <STRONG>putchar</STRONG>-like routine to which the characters are passed,
+ <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>
The <STRONG>vidputs</STRONG> routine displays the string on the terminal in the video
attribute mode <EM>attrs</EM>, which is any combination of the attributes listed
- in <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>. The characters are passed to the <STRONG>putchar</STRONG>-like routine
+ in <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>. The characters are passed to the <EM>putchar</EM>-like function
<EM>putc</EM>.
The <STRONG>vidattr</STRONG> routine is like the <STRONG>vidputs</STRONG> routine, except that it outputs
- through <STRONG>putchar</STRONG>.
+ through <EM>putchar</EM>.
The <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> routines correspond to vidattr and vidputs,
respectively. They use a set of arguments for representing the video
<STRONG>o</STRONG> to improve performance, <EM>ncurses</EM> 6.3 caches the result of analyzing
terminfo strings for their parameter types. That is stored as a
- binary tree referenced from the <STRONG>TERMINAL</STRONG> structure.
+ 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
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
- X/Open notes that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros.
+ According to X/Open Curses, any of the <EM>enhanced</EM> <EM>curses</EM> functions may be
+ implemented as macros. The term "enhanced" refers to features not
+ found in SVr4 curses.
+
+ <STRONG>ncurses</STRONG> uses macros
+
+ <STRONG>o</STRONG> for functions which return values via their parameters,
+
+ <STRONG>o</STRONG> to support obsolete features,
+
+ <STRONG>o</STRONG> to reuse functions, e.g., those that move the cursor before another
+ operation, and
+
+ <STRONG>o</STRONG> a few special cases.
+
+ The <STRONG>vid_puts</STRONG> function in <STRONG>ncurses</STRONG> is a special case. It was originally
+ implemented based on a draft of X/Open Curses, as a macro, before other
+ parts of the <STRONG>ncurses</STRONG> wide-character API were developed.
</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
- The functions marked as extensions were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and
- are not found in SVr4 curses, 4.4BSD curses, or any other previous
- version of curses.
+ The functions marked as extensions were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and
+ are not found in SVr4 <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous
+ curses implementation.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The function <STRONG>setterm</STRONG> is not described by X/Open and must be considered
- non-portable. All other functions are as described by X/Open.
+ <STRONG>setterm</STRONG> is not described by X/Open and must be considered non-portable.
+ All other functions are as described by X/Open.
</PRE><H3><a name="h3-Compatibility-Macros">Compatibility Macros</a></H3><PRE>
- This implementation provides a few macros for compatibility with
- systems before SVr4 (see <EM>HISTORY</EM>). Those include <STRONG>crmode</STRONG>, <STRONG>fixterm</STRONG>,
- <STRONG>gettmode</STRONG>, <STRONG>nocrmode</STRONG>, <STRONG>resetterm</STRONG>, <STRONG>saveterm</STRONG>, and <STRONG>setterm</STRONG>.
+ This implementation provides a few macros for compatibility with
+ systems before SVr4 (see section "HISTORY" below). They include
+ <STRONG>Bcrmode</STRONG>, <STRONG>Bfixterm</STRONG>, <STRONG>Bgettmode</STRONG>, <STRONG>Bnocrmode</STRONG>, <STRONG>Bresetterm</STRONG>, <STRONG>Bsaveterm</STRONG>, and
+ <STRONG>Bsetterm</STRONG>.
- In SVr4, those are found in <STRONG><curses.h></STRONG>, but except for <STRONG>setterm</STRONG>, are
+ In SVr4, these are found in <EM>curses.h</EM>, but except for <STRONG>setterm</STRONG>, are
likewise macros. The one function, <STRONG>setterm</STRONG>, is mentioned in the manual
- page. The manual page notes that the <STRONG>setterm</STRONG> routine was replaced by
- <STRONG>setupterm</STRONG>, stating that the call
-
- <STRONG>setupterm(</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0)</STRONG>
-
- provides the same functionality as <STRONG>setterm(</STRONG><EM>term</EM><STRONG>)</STRONG>, and is not
- recommended for new programs. This implementation provides each of
- those symbols as macros for BSD compatibility.
+ page. It further notes that <STRONG>setterm</STRONG> was replaced by <STRONG>setupterm</STRONG>, stating
+ that the call
+ setupterm(<EM>term</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0)</STRONG>
+ provides the same functionality as <STRONG>setterm(</STRONG><EM>term</EM><STRONG>)</STRONG>, discouraging the
+ latter for new programs. <EM>ncurses</EM> implements each of these symbols as
+ macros for BSD <EM>curses</EM> compatibility.
</PRE><H3><a name="h3-Legacy-Data">Legacy Data</a></H3><PRE>
X/Open notes that after calling <STRONG>mvcur</STRONG>, the curses state may not match
the actual terminal state, and that an application should touch and
refresh the window before resuming normal curses calls. Both <EM>ncurses</EM>
- and System V Release 4 curses implement <STRONG>mvcur</STRONG> using the SCREEN data
+ and System V Release 4 curses implement <STRONG>mvcur</STRONG> using the <EM>SCREEN</EM> data
allocated in either <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. So though it is documented as
a terminfo function, <STRONG>mvcur</STRONG> is really a curses function which is not
well specified.
<STRONG>fixterm</STRONG> restore tty to "in curses" state
<STRONG>gettmode</STRONG> establish current tty modes
<STRONG>mvcur</STRONG> low level cursor motion
-
<STRONG>putp</STRONG> utility function that uses <STRONG>tputs</STRONG> to send characters via
- <STRONG>putchar</STRONG>.
+ <EM>putchar</EM>.
<STRONG>resetterm</STRONG> set tty modes to "out of curses" state
<STRONG>resetty</STRONG> reset tty flags to stored value
<STRONG>saveterm</STRONG> save current modes as "in curses" state
<STRONG>setupterm</STRONG> establish terminal with given type
<STRONG>tparm</STRONG> instantiate a string expression with parameters
<STRONG>tputs</STRONG> apply padding information to a string
- <STRONG>vidattr</STRONG> like <STRONG>vidputs</STRONG>, but outputs through <STRONG>putchar</STRONG>
+ <STRONG>vidattr</STRONG> like <STRONG>vidputs</STRONG>, but outputs through <EM>putchar</EM>
<STRONG>vidputs</STRONG> output a string to put terminal in a specified video
attribute mode
<STRONG>tputs</STRONG> apply padding to capability, calling a function to put
characters
- Early terminfo programs obtained capability values from the <STRONG>TERMINAL</STRONG>
+ Early terminfo programs obtained capability values from the <EM>TERMINAL</EM>
structure initialized by <STRONG>setupterm</STRONG>.
SVr3 extended terminfo by adding functions to retrieve capability
<STRONG>Function</STRONG> <STRONG>Description</STRONG>
------------------------------------------------------------------------
+
<STRONG>tigetflag</STRONG> get boolean entry for given <EM>id</EM>
<STRONG>tigetnum</STRONG> get numeric entry for given <EM>id</EM>
<STRONG>tigetstr</STRONG> get string entry for given <EM>id</EM>
descriptions, e.g., <STRONG>set_curterm</STRONG>. Some of that was incremental
improvements to the SVr2 library:
- <STRONG>o</STRONG> The <STRONG>TERMINAL</STRONG> 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
<STRONG>term</STRONG> structure provided in SVr2.
<STRONG>o</STRONG> The various global variables such as <STRONG>boolnames</STRONG> were mentioned in
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_threads.3x,v 1.50 2023/12/16 20:32:22 tom Exp @
+ * @Id: curs_threads.3x,v 1.51 2023/12/23 16:22:25 tom Exp @
* ***************************************************************************
* ***************************************************************************
-->
<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_threads 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_threads 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_threads 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_threads 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_trace.3x,v 1.41 2023/12/16 20:50:14 tom Exp @
+ * @Id: curs_trace.3x,v 1.42 2023/12/23 16:08: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_trace 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_trace 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_trace 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_trace 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> Library calls <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_util.3x,v 1.91 2023/12/16 20:32:22 tom Exp @
+ * @Id: curs_util.3x,v 1.92 2023/12/23 16:24:15 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 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_util 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_util 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_util 3x 2023-12-23 ncurses 6.4 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>
that data. It returns a pointer to the new window. There are a few
caveats:
- <STRONG>o</STRONG> the data written is a copy of the <STRONG>WINDOW</STRONG> structure, and its
+ <STRONG>o</STRONG> the data written is a copy of the <EM>WINDOW</EM> structure, and its
associated character cells. The format differs between the wide-
character (<EM>ncursesw</EM>) and non-wide (<EM>ncurses</EM>) libraries. You can
transfer data between the two, however.
1988) incorporated into SVr4. Oddly, there are no such functions
in the 4.3BSD curses sources.
- <STRONG>o</STRONG> Most implementations simply dump the binary <STRONG>WINDOW</STRONG> structure to the
+ <STRONG>o</STRONG> Most implementations simply dump the binary <EM>WINDOW</EM> structure to the
file. These include SVr4 curses, NetBSD and PDCurses, as well as
older <EM>ncurses</EM> versions. This implementation (as well as the X/Open
variant of Solaris curses, dated 1995) uses textual dumps.
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_variables.3x,v 1.35 2023/12/16 21:05:52 tom Exp @
+ * @Id: curs_variables.3x,v 1.40 2023/12/23 23:10:13 tom Exp @
+ * SVID 4, Volume 3, p. 408
-->
<!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 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_variables 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">curs_variables 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_variables 3x 2023-12-23 ncurses 6.4 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>
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
- <EM>bool</EM>, <EM>chtype</EM>, <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, <EM>attr</EM><STRONG>_</STRONG><EM>t</EM>, <EM>WINDOW</EM>, <STRONG>TRUE</STRONG>, <STRONG>FALSE</STRONG>, <STRONG>ERR</STRONG>, <STRONG>OK</STRONG>, <STRONG>COLORS</STRONG>,
- <STRONG>COLOR_PAIRS</STRONG>, <STRONG>COLS</STRONG>, <STRONG>ESCDELAY</STRONG>, <STRONG>LINES</STRONG>, <STRONG>TABSIZE</STRONG>, <STRONG>curscr</STRONG>, <STRONG>newscr</STRONG>, <STRONG>stdscr</STRONG> -
- <EM>curses</EM> data types, constants, and global variables
+ <EM>bool</EM>, <EM>chtype</EM>, <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>, <EM>attr</EM><STRONG>_</STRONG><EM>t</EM>, <EM>SCREEN</EM>, <EM>WINDOW</EM>, <STRONG>TRUE</STRONG>, <STRONG>FALSE</STRONG>, <STRONG>ERR</STRONG>, <STRONG>OK</STRONG>,
+ <STRONG>curscr</STRONG>, <STRONG>newscr</STRONG>, <STRONG>stdscr</STRONG>, <STRONG>COLORS</STRONG>, <STRONG>COLOR_PAIRS</STRONG>, <STRONG>COLS</STRONG>, <STRONG>LINES</STRONG>, <STRONG>ESCDELAY</STRONG>,
+ <STRONG>TABSIZE</STRONG> - <EM>curses</EM> data types, constants, and global variables
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
<STRONG>typedef</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>chtype;</STRONG>
<STRONG>typedef</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>cchar_t;</STRONG>
<STRONG>typedef</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>attr_t;</STRONG>
+ <STRONG>typedef</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>SCREEN;</STRONG>
<STRONG>typedef</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>WINDOW;</STRONG>
<EM>/*</EM> <EM>constants</EM> <EM>*/</EM>
<STRONG>const</STRONG> <EM>/*</EM> <STRONG>...</STRONG> <EM>*/</EM> <STRONG>OK;</STRONG>
<EM>/*</EM> <EM>variables</EM> <EM>*/</EM>
- <STRONG>int</STRONG> <STRONG>COLOR_PAIRS;</STRONG>
<STRONG>int</STRONG> <STRONG>COLORS;</STRONG>
+ <STRONG>int</STRONG> <STRONG>COLOR_PAIRS;</STRONG>
<STRONG>int</STRONG> <STRONG>COLS;</STRONG>
<STRONG>int</STRONG> <STRONG>LINES;</STRONG>
<STRONG>WINDOW</STRONG> <STRONG>*</STRONG> <STRONG>curscr;</STRONG>
<STRONG>WINDOW</STRONG> <STRONG>*</STRONG> <STRONG>stdscr;</STRONG>
+
<EM>/*</EM> <EM>extensions</EM> <EM>*/</EM>
<STRONG>int</STRONG> <STRONG>ESCDELAY;</STRONG>
<STRONG>int</STRONG> <STRONG>TABSIZE;</STRONG>
library.
-</PRE><H3><a name="h3-bool_-TRUE_-FALSE"><EM>bool,</EM> TRUE, FALSE</a></H3><PRE>
- X/Open Issue 4 <EM>curses</EM> (1996) preceded the ISO C99 and ISO C++98
- standards, each of which also defined a Boolean data type. The <EM>curses</EM>
- library requires an integral type <EM>bool</EM> and constants <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> to
- store its two possible values.
+</PRE><H2><a name="h2-CONSTANTS">CONSTANTS</a></H2><PRE>
+
+</PRE><H3><a name="h3-TRUE_-FALSE">TRUE, FALSE</a></H3><PRE>
+ The <EM>curses</EM> library defines <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> to represent the values of
+ the Boolean data type.
</PRE><H3><a name="h3-ERR_-OK">ERR, OK</a></H3><PRE>
values indicating failure and success, respectively.
+</PRE><H2><a name="h2-PREDEFINED-TYPES">PREDEFINED TYPES</a></H2><PRE>
+
+</PRE><H3><a name="h3-bool"><EM>bool</EM></a></H3><PRE>
+ X/Open Issue 4 <EM>curses</EM> (1996) preceded the ISO C99 and ISO C++98
+ standards, each of which also defined a Boolean data type. The <EM>curses</EM>
+ library requires an integral type <EM>bool</EM>.
+
+ <STRONG>ncurses</STRONG>' configure script attempts to discover the data type used by
+ the system's C and C++ compilers, to reuse for the <EM>curses</EM> <EM>bool</EM>.
+
+
</PRE><H3><a name="h3-chtype"><EM>chtype</EM></a></H3><PRE>
- The <EM>chtype</EM> integral type combines a ("narrow", 8-bit) character with
- attributes encoding the character's <EM>rendition</EM>, such as the styling of
+ The <EM>chtype</EM> integral type combines a ("narrow", 8-bit) character with
+ attributes encoding the character's <EM>rendition</EM>, such as the styling of
its typeface and/or foreground and background colors. See, for
example, <STRONG><A HREF="curs_addch.3x.html">addch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">attron(3x)</A></STRONG>, and <STRONG><A HREF="curs_inch.3x.html">inch(3x)</A></STRONG>.
</PRE><H3><a name="h3-cchar_t_-attr_t"><EM>cchar_t,</EM> attr_t</a></H3><PRE>
- <EM>chtype</EM> is too small for the standard C library's wide-character type,
- <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>. <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> is a type that can accommodate an <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> and enough
- wide characters to store what Unicode terms a <EM>grapheme</EM> <EM>cluster</EM> (a
- "user-perceived character" [UAX #29], which may nevertheless require
- several character encoding units to represent). <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> is an integral
- type storing "wide" attributes that apply to <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>s. See, for
+ <EM>chtype</EM> is too small for the standard C library's wide-character type,
+ <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM>. <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM> is a type that can accommodate an <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> and enough
+ wide characters to store what Unicode terms a <EM>grapheme</EM> <EM>cluster</EM> (a
+ "user-perceived character" [UAX #29], which may nevertheless require
+ several character encoding units to represent). <EM>attr</EM><STRONG>_</STRONG><EM>t</EM> is an integral
+ type storing "wide" attributes that apply to <EM>cchar</EM><STRONG>_</STRONG><EM>t</EM>s. See, for
example, <STRONG><A HREF="curs_add_wch.3x.html">add_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">attr_on(3x)</A></STRONG>, and <STRONG><A HREF="curs_in_wch.3x.html">in_wch(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
- pairs supported by the terminal. Often, its value is the product
- <STRONG>COLORS</STRONG> x <STRONG>COLORS</STRONG>, but this is not always true.
+</PRE><H3><a name="h3-SCREEN"><EM>SCREEN</EM></a></H3><PRE>
+ <EM>curses</EM> manages a terminal device with this structure type; see
+ <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG>.
+
- <STRONG>o</STRONG> A few terminals use HLS colors, ignoring this rule; and
+</PRE><H3><a name="h3-WINDOW"><EM>WINDOW</EM></a></H3><PRE>
+ <EM>curses</EM> represents rectangular portions of the terminal screen with the
+ <EM>WINDOW</EM> structure type; see subsection "Overview" of <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>.
- <STRONG>o</STRONG> terminals supporting a large number of colors are limited by the
- number of color pairs that a <EM>signed</EM> <EM>short</EM> value can represent.
+
+</PRE><H2><a name="h2-VARIABLES">VARIABLES</a></H2><PRE>
+
+</PRE><H3><a name="h3-curscr_-stdscr_-newscr">curscr, stdscr, newscr</a></H3><PRE>
+ 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
+ the terminal's capabilities to make <STRONG>curscr</STRONG> look like <STRONG>newscr</STRONG>.
+
+ Once <EM>curses</EM> is initialized, it creates a window named <STRONG>stdscr</STRONG>. It is
+ the same size as the terminal screen and is the default window used by
+ routines that do not take a parameter identifying one. Many <EM>curses</EM>
+ functions use this window.
</PRE><H3><a name="h3-COLORS">COLORS</a></H3><PRE>
- Once <EM>curses</EM> is initialized, <STRONG>COLORS</STRONG> contains the number of colors
- supported by the terminal.
+ 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-COLS">COLS</a></H3><PRE>
- Once <EM>curses</EM> is initialized, <STRONG>COLS</STRONG> contains the screen's width in
- character cells; that is, the number of columns.
+</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
+ 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
+ columns and lines.
</PRE><H3><a name="h3-ESCDELAY">ESCDELAY</a></H3><PRE>
For <EM>curses</EM> to distinguish an escape character corresponding to a user's
- press of an "Escape" key on the input device from one included in a
+ press of an "Escape" key on the input device from one included in a
control sequence used by a cursor movement or function key, the library
- waits to see if another key event occurs after the escape character.
+ waits to see if another key event occurs after the escape character.
<STRONG>ESCDELAY</STRONG> stores this interval in milliseconds.
-</PRE><H3><a name="h3-LINES">LINES</a></H3><PRE>
- Once <EM>curses</EM> is initialized, <STRONG>LINES</STRONG> contains the screen's height in
- character cells; that is, the number of lines.
-
-
</PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
The <EM>curses</EM> library converts a tab character to this number of spaces as
it adds a tab to a window; see <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
-</PRE><H3><a name="h3-curscr">curscr</a></H3><PRE>
- <EM>curses</EM> records updates to the terminal screen in a <EM>WINDOW</EM> structure
- 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>.
-
-
-</PRE><H3><a name="h3-newscr">newscr</a></H3><PRE>
- <EM>ncurses</EM> collects pending updates to the terminal screen in a <EM>WINDOW</EM>
- structure 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-stdscr">stdscr</a></H3><PRE>
- Once <EM>curses</EM> is initialized, it creates a <EM>WINDOW</EM> structure named <STRONG>stdscr</STRONG>.
- It is the same size as the terminal screen and is the default window
- used by routines that do not take a parameter identifying one. Many
- <EM>curses</EM> functions use this window.
-
-
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
Either <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG> initializes <EM>curses</EM>.
- If <EM>ncurses</EM> is configured to provide separate <EM>curses</EM> and <EM>terminfo</EM>
+ If <EM>ncurses</EM> is configured to provide separate <EM>curses</EM> and <EM>terminfo</EM>
libraries, most of these variables reside in the <EM>curses</EM> library.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The X/Open Curses standard documents all of the foregoing types and
+ The X/Open Curses standard documents all of the foregoing types and
symbols except for <STRONG>newscr</STRONG>, <STRONG>TABSIZE</STRONG>, and <STRONG>ESCDELAY</STRONG>.
- X/Open Curses describes <STRONG>curscr</STRONG> only as "an internal data structure";
- SVID gave more details, noting its use "for certain low-level
- operations like clearing and redrawing a screen containing garbage".
+ X/Open Curses describes <STRONG>curscr</STRONG> only as "an internal data structure";
+ SVr4 gave more details, noting its use "for certain low-level
+ operations like clearing and redrawing a screen containing garbage".
Neither specified its interaction with the rest of the interface beyond
use as an argument to <STRONG><A HREF="curs_outopts.3x.html">clearok(3x)</A></STRONG> and <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>.
- <STRONG>newscr</STRONG> is a feature of SVr4 <EM>curses</EM>. When refreshing the screen, this
- window is used as a working area for combining the standard screen
- <STRONG>stdscr</STRONG> with any other windows which the application may have created
- with <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG>. When the updated <STRONG>newscr</STRONG> is complete, <EM>curses</EM> updates
- <STRONG>curscr</STRONG> to match <STRONG>newscr</STRONG>.
+ <STRONG>newscr</STRONG> is a feature of SVr4 <EM>curses</EM>. When refreshing the screen, it is
+ used as a working area for combining the standard window <STRONG>stdscr</STRONG> with
+ any others the application may have created with <STRONG><A HREF="curs_window.3x.html">newwin(3x)</A></STRONG>. When the
+ update of <STRONG>newscr</STRONG> is complete, <EM>curses</EM> modifies <STRONG>curscr</STRONG> to match <STRONG>newscr</STRONG>.
<STRONG>TABSIZE</STRONG> is a feature of SVr4 <EM>curses</EM>.
</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_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>
+ <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>
[UAX #29] "Unicode Standard Annex #29: Unicode Text Segmentation";
<https://unicode.org/reports/tr29/>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="curs_variables.3x.html">curs_variables(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><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
+<li><a href="#h2-CONSTANTS">CONSTANTS</a>
<ul>
-<li><a href="#h3-bool_-TRUE_-FALSE">bool, TRUE, FALSE</a></li>
+<li><a href="#h3-TRUE_-FALSE">TRUE, FALSE</a></li>
<li><a href="#h3-ERR_-OK">ERR, OK</a></li>
+</ul>
+</li>
+<li><a href="#h2-PREDEFINED-TYPES">PREDEFINED TYPES</a>
+<ul>
+<li><a href="#h3-bool">bool</a></li>
<li><a href="#h3-chtype">chtype</a></li>
<li><a href="#h3-cchar_t_-attr_t">cchar_t, attr_t</a></li>
-<li><a href="#h3-COLOR_PAIRS">COLOR_PAIRS</a></li>
+<li><a href="#h3-SCREEN">SCREEN</a></li>
+<li><a href="#h3-WINDOW">WINDOW</a></li>
+</ul>
+</li>
+<li><a href="#h2-VARIABLES">VARIABLES</a>
+<ul>
+<li><a href="#h3-curscr_-stdscr_-newscr">curscr, stdscr, newscr</a></li>
<li><a href="#h3-COLORS">COLORS</a></li>
-<li><a href="#h3-COLS">COLS</a></li>
+<li><a href="#h3-COLOR_PAIRS">COLOR_PAIRS</a></li>
+<li><a href="#h3-COLS_-LINES">COLS, LINES</a></li>
<li><a href="#h3-ESCDELAY">ESCDELAY</a></li>
-<li><a href="#h3-LINES">LINES</a></li>
<li><a href="#h3-TABSIZE">TABSIZE</a></li>
-<li><a href="#h3-curscr">curscr</a></li>
-<li><a href="#h3-newscr">newscr</a></li>
-<li><a href="#h3-stdscr">stdscr</a></li>
</ul>
</li>
<li><a href="#h2-NOTES">NOTES</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form.3x,v 1.51 2023/12/16 20:32:22 tom Exp @
+ * @Id: form.3x,v 1.52 2023/12/23 16:08: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>form 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>form 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">form 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">form 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="form.3x.html">form(3x)</A></STRONG> Library calls <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_driver.3x,v 1.53 2023/11/25 13:58:47 tom Exp @
+ * @Id: form_driver.3x,v 1.54 2023/12/23 16:08: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>form_driver 3x 2023-11-25 ncurses 6.4 Library calls</TITLE>
+<TITLE>form_driver 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">form_driver 3x 2023-11-25 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">form_driver 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG> Library calls <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
character or a request.
-</PRE><H3><a name="h3-Form-driver-requests">Form-driver requests</a></H3><PRE>
+</PRE><H3><a name="h3-Form-Driver-Requests">Form Driver Requests</a></H3><PRE>
The form driver requests are as follows:
<STRONG>Name</STRONG> <STRONG>Description</STRONG>
forms requests listed above, that request is executed.
-</PRE><H3><a name="h3-Field-validation">Field validation</a></H3><PRE>
+</PRE><H3><a name="h3-Field-Validation">Field Validation</a></H3><PRE>
The form library makes updates to the window associated with form
fields rather than directly to the field buffers.
data from the window associated with the field to the field buffer.
-</PRE><H3><a name="h3-Mouse-handling">Mouse handling</a></H3><PRE>
+</PRE><H3><a name="h3-Mouse-Handling">Mouse Handling</a></H3><PRE>
If the second argument is the KEY_MOUSE special key, the associated
mouse event is translated into one of the above pre-defined requests.
Currently only clicks in the user window (e.g., inside the form display
translated into a form request an <STRONG>E_REQUEST_DENIED</STRONG> is returned.
-</PRE><H3><a name="h3-Application-defined-commands">Application-defined commands</a></H3><PRE>
+</PRE><H3><a name="h3-Application-defined-Commands">Application-defined Commands</a></H3><PRE>
If the second argument is neither printable nor one of the above pre-
defined form requests, the driver assumes it is an application-specific
command and returns <STRONG>E_UNKNOWN_COMMAND</STRONG>. Application-defined commands
-ncurses 6.4 2023-11-25 <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<ul>
<li><a href="#h3-form_driver">form_driver</a></li>
<li><a href="#h3-form_driver_w">form_driver_w</a></li>
-<li><a href="#h3-Form-driver-requests">Form-driver requests</a></li>
-<li><a href="#h3-Field-validation">Field validation</a></li>
-<li><a href="#h3-Mouse-handling">Mouse handling</a></li>
-<li><a href="#h3-Application-defined-commands">Application-defined commands</a></li>
+<li><a href="#h3-Form-Driver-Requests">Form Driver Requests</a></li>
+<li><a href="#h3-Field-Validation">Field Validation</a></li>
+<li><a href="#h3-Mouse-Handling">Mouse Handling</a></li>
+<li><a href="#h3-Application-defined-Commands">Application-defined Commands</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: infocmp.1m,v 1.102 2023/12/16 20:32:22 tom Exp @
+ * @Id: infocmp.1m,v 1.103 2023/12/23 16:08: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>infocmp 1m 2023-12-16 ncurses 6.4 User commands</TITLE>
+<TITLE>infocmp 1m 2023-12-23 ncurses 6.4 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">infocmp 1m 2023-12-16 ncurses 6.4 User commands</H1>
+<H1 class="no-header">infocmp 1m 2023-12-23 ncurses 6.4 User commands</H1>
<PRE>
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> User commands <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu.3x,v 1.42 2023/12/16 20:32:22 tom Exp @
+ * @Id: menu.3x,v 1.43 2023/12/23 16:08: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>menu 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>menu 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">menu 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">menu 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG> Library calls <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_driver.3x,v 1.44 2023/12/16 20:32:22 tom Exp @
+ * @Id: menu_driver.3x,v 1.45 2023/12/23 16:08: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>menu_driver 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>menu_driver 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">menu_driver 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">menu_driver 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG> Library calls <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
corresponding action is performed.
-</PRE><H3><a name="h3-MOUSE-HANDLING">MOUSE HANDLING</a></H3><PRE>
+</PRE><H3><a name="h3-Mouse-Handling">Mouse Handling</a></H3><PRE>
If the second argument is the KEY_MOUSE special key, the associated
mouse event is translated into one of the above pre-defined requests.
Currently only clicks in the user window (e.g., inside the menu display
translated into a menu request an <STRONG>E_REQUEST_DENIED</STRONG> is returned.
-</PRE><H3><a name="h3-APPLICATION-DEFINED-COMMANDS">APPLICATION-DEFINED COMMANDS</a></H3><PRE>
+</PRE><H3><a name="h3-Application-defined-Commands">Application-defined Commands</a></H3><PRE>
If the second argument is neither printable nor one of the above pre-
defined menu requests or KEY_MOUSE, the drive assumes it is an
application-specific command and returns <STRONG>E_UNKNOWN_COMMAND</STRONG>.
-ncurses 6.4 2023-12-16 <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-MOUSE-HANDLING">MOUSE HANDLING</a></li>
-<li><a href="#h3-APPLICATION-DEFINED-COMMANDS">APPLICATION-DEFINED COMMANDS</a></li>
+<li><a href="#h3-Mouse-Handling">Mouse Handling</a></li>
+<li><a href="#h3-Application-defined-Commands">Application-defined Commands</a></li>
</ul>
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: ncurses.3x,v 1.187 2023/12/17 23:44:14 tom Exp @
+ * @Id: ncurses.3x,v 1.189 2023/12/23 16:32:37 tom Exp @
* X/Open Curses Issue 7 assumes some optimization will be done, but
* does not mandate it in any way.
-->
<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 2023-12-17 ncurses 6.4 Library calls</TITLE>
+<TITLE>ncurses 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">ncurses 3x 2023-12-17 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">ncurses 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> Library calls <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
method of updating character screens with reasonable optimization.
This implementation is "new curses" (<EM>ncurses</EM>) and is the approved
replacement for 4.4BSD classic curses, which has been discontinued.
- This describes <EM>ncurses</EM> version 6.4 (patch 20231217).
+ This describes <EM>ncurses</EM> version 6.4 (patch 20231223).
The <EM>ncurses</EM> library emulates the curses library of System V Release 4
Unix ("SVr4"), and XPG4 (X/Open Portability Guide) curses (also known
<STRONG>-lncurses_g</STRONG>. (Your system integrator may also have installed these
libraries under the names <STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.) The ncurses_g
library generates trace logs (in a file called "trace" in the current
- directory) that describe curses actions. See also the section on
- <STRONG>ALTERNATE</STRONG> <STRONG>CONFIGURATIONS</STRONG>.
+ directory) that describe curses actions. See section "ALTERNATE
+ CONFIGURATIONS" below.
The <EM>ncurses</EM> package supports: overall screen, window and pad
manipulation; output to windows and pads; reading terminal input;
modes as underlined, in reverse video, or in color on terminals that
support such display enhancements. See <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>.
- <EM>curses</EM> predefines symbols for a small set of line graphics characters,
- corresponding to the VT100 line drawing set. See <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> and
- <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>.
+ <EM>curses</EM> predefines constants for a small set of line-drawing and other
+ graphics corresponding to the DEC Alternate Character Set (ACS), a
+ feature of VT100 and other terminals. See <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> and <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG>.
<EM>curses</EM> is implemented using the operating system's terminal driver;
- keystroke events are not received as scan codes but as byte sequences.
+ keystroke events are received not as scan codes but as byte sequences.
Graphical keycaps (alphanumeric and punctuation keys, and the space)
appear as-is. Everything else, including the tab, enter/return,
keypad, arrow, and function keys, appears as a control character or a
<EM>wint</EM><STRONG>_</STRONG><EM>t</EM> can store a <EM>wchar</EM><STRONG>_</STRONG><EM>t</EM> or the constant <STRONG>WEOF</STRONG>,
analogously to the <EM>int</EM>-sized character manipulation
- functions of ISO C and their constant <STRONG>EOF</STRONG>.
+ functions of ISO C and its constant <STRONG>EOF</STRONG>.
The wide library provides additional functions that
complement those in the non-wide library where the size of
The reason for the change was to make the behavior for interrupts and
other signals more robust. One drawback is that certain
- nonconventional programs would mix ordinary stdio calls with <EM>ncurses</EM>
+ nonconventional programs would mix ordinary <STRONG>stdio(3)</STRONG> calls with <EM>ncurses</EM>
calls and (usually) work. This is no longer possible since <EM>ncurses</EM> is
not using the buffered standard output but its own output (to the same
file descriptor). As a special case, the low-level calls such as <STRONG>putp</STRONG>
</PRE><H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
- Several different configurations are possible, depending on the
- configure script options used when building <EM>ncurses</EM>. There are a few
- main options whose effects are visible to the applications developer
- using <EM>ncurses</EM>:
+ 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>
--disable-overwrite
The standard include for <EM>ncurses</EM> is as noted in <STRONG>SYNOPSIS</STRONG>:
sections of the library man pages.
-</PRE><H3><a name="h3-Error-checking">Error checking</a></H3><PRE>
+</PRE><H3><a name="h3-Error-Checking">Error Checking</a></H3><PRE>
In many cases, X/Open Curses is vague about error conditions, omitting
some of the SVr4 documentation.
Unlike other implementations, this one checks parameters such as
- pointers to WINDOW structures to ensure they are not null. The main
+ pointers to <EM>WINDOW</EM> structures to ensure they are not null. The main
reason for providing this behavior is 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 were detected.
portability of curses applications.
-</PRE><H3><a name="h3-Extensions-versus-portability">Extensions versus portability</a></H3><PRE>
+</PRE><H3><a name="h3-Extensions-Versus-Portability">Extensions Versus Portability</a></H3><PRE>
Most of the extensions provided by <EM>ncurses</EM> have not been standardized.
Some have been incorporated into other implementations, such as
PDCurses or NetBSD curses. Here are a few to consider:
<STRONG>o</STRONG> The routine <STRONG>wresize</STRONG> is not part of XPG4, nor is it present in SVr4.
See the <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> manual page for details.
- <STRONG>o</STRONG> The WINDOW structure's internal details can be hidden from
+ <STRONG>o</STRONG> The <EM>WINDOW</EM> structure's internal details can be hidden from
application programs. See <STRONG><A HREF="curs_opaque.3x.html">curs_opaque(3x)</A></STRONG> for the discussion of
<STRONG>is_scrollok</STRONG>, etc.
See <STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> for details.
-</PRE><H3><a name="h3-Padding-differences">Padding differences</a></H3><PRE>
+</PRE><H3><a name="h3-Padding-Differences">Padding Differences</a></H3><PRE>
In historic curses versions, delays embedded in the capabilities <STRONG>cr</STRONG>,
<STRONG>ind</STRONG>, <STRONG>cub1</STRONG>, <STRONG>ff</STRONG> and <STRONG>tab</STRONG> activated corresponding delay bits in the Unix
tty driver. In this implementation, all padding is done by sending NUL
portability correspondingly.
-</PRE><H3><a name="h3-Header-files">Header files</a></H3><PRE>
+</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
<EM>unctrl.h</EM>.
-ncurses 6.4 2023-12-17 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-EXTENSIONS">EXTENSIONS</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
<ul>
-<li><a href="#h3-Error-checking">Error checking</a></li>
-<li><a href="#h3-Extensions-versus-portability">Extensions versus portability</a></li>
-<li><a href="#h3-Padding-differences">Padding differences</a></li>
-<li><a href="#h3-Header-files">Header files</a></li>
+<li><a href="#h3-Error-Checking">Error Checking</a></li>
+<li><a href="#h3-Extensions-Versus-Portability">Extensions Versus Portability</a></li>
+<li><a href="#h3-Padding-Differences">Padding Differences</a></li>
+<li><a href="#h3-Header-Files">Header Files</a></li>
</ul>
</li>
<li><a href="#h2-AUTHORS">AUTHORS</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: MKncu_config.in,v 1.20 2023/12/16 21:43:05 tom Exp @
+ * @Id: MKncu_config.in,v 1.22 2023/12/23 23:44: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>ncursesw6-config 1 2023-12-16 ncurses 6.4 User commands</TITLE>
+<TITLE>ncursesw6-config 1 2023-12-23 ncurses 6.4 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">ncursesw6-config 1 2023-12-16 ncurses 6.4 User commands</H1>
+<H1 class="no-header">ncursesw6-config 1 2023-12-23 ncurses 6.4 User commands</H1>
<PRE>
<STRONG><A HREF="ncursesw6-config.1.html">ncursesw6-config(1)</A></STRONG> User commands <STRONG><A HREF="ncursesw6-config.1.html">ncursesw6-config(1)</A></STRONG>
<STRONG>--libs</STRONG> reports the libraries needed to link with <EM>ncurses</EM>.
- <STRONG>--version</STRONG> reports the release and patch date information of
- <EM>ncurses</EM> and exits successfully.
-
<STRONG>--abi-version</STRONG> reports the ABI version of <EM>ncurses</EM>.
<STRONG>--mouse-version</STRONG> reports the mouse-interface version of <EM>ncurses</EM>.
<STRONG>--datadir</STRONG> reports the directory containing <EM>ncurses</EM> data.
- <STRONG>--includedir</STRONG> reports the directory containing <EM>ncurses</EM> header
+ <STRONG>--includedir</STRONG> reports the directory containing <EM>ncurses</EM> header
files.
<STRONG>--libdir</STRONG> reports the directory containing <EM>ncurses</EM> libraries.
<STRONG>--mandir</STRONG> reports the directory containing <EM>ncurses</EM> man pages.
- <STRONG>--terminfo</STRONG> reports the <EM>TERMINFO</EM> <EM>terminfo</EM> database path, for
+ <STRONG>--terminfo</STRONG> reports the <EM>TERMINFO</EM> <EM>terminfo</EM> database path, for
example <EM>/usr/share/terminfo</EM>.
- <STRONG>--terminfo-dirs</STRONG> reports the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> supplemental search path
+ <STRONG>--terminfo-dirs</STRONG> reports the <EM>TERMINFO</EM><STRONG>_</STRONG><EM>DIRS</EM> supplemental search path
for the <EM>terminfo</EM> database, for example
<EM>/usr/share/terminfo</EM>.
<STRONG>--termpath</STRONG> reports the <EM>TERMPATH</EM> supplemental search path for the
- <EM>termcap</EM> database, if support for <EM>termcap</EM> is
+ <EM>termcap</EM> database, if support for <EM>termcap</EM> is
configured.
- <STRONG>--help</STRONG> issues a usage message and exits successfully.
+ The following options cause all others to be ignored.
+
+ <STRONG>--help</STRONG> issues a usage message and exits successfully.
+
+ <STRONG>--version</STRONG> issues the release and patch date information of <EM>ncurses</EM> and
+ exits successfully.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="ncursesw6-config.1.html">ncursesw6-config(1)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="ncursesw6-config.1.html">ncursesw6-config(1)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: panel.3x,v 1.60 2023/12/16 21:24:43 tom Exp @
+ * @Id: panel.3x,v 1.61 2023/12/23 16:22:25 tom Exp @
* ---------
* ---------
* ---------
<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>panel 3x 2023-12-16 ncurses 6.4 Library calls</TITLE>
+<TITLE>panel 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">panel 3x 2023-12-16 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">panel 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> Library calls <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: scr_dump.5,v 1.40 2023/12/16 21:07:24 tom Exp @
+ * @Id: scr_dump.5,v 1.41 2023/12/23 16:27: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>scr_dump 5 2023-12-16 ncurses 6.4 File formats</TITLE>
+<TITLE>scr_dump 5 2023-12-23 ncurses 6.4 File formats</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">scr_dump 5 2023-12-16 ncurses 6.4 File formats</H1>
+<H1 class="no-header">scr_dump 5 2023-12-23 ncurses 6.4 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>
<STRONG>o</STRONG> The ncurses6 <STRONG>getwin</STRONG> reads the legacy screen dumps from ncurses5.
-</PRE><H3><a name="h3-ncurses5-_legacy_">ncurses5 (legacy)</a></H3><PRE>
+</PRE><H3><a name="h3-ncurses5-_Legacy_">ncurses5 (Legacy)</a></H3><PRE>
The screen-dump feature was added to <EM>ncurses</EM> in June 1995. While there
were fixes and improvements in succeeding years, the basic scheme was
unchanged:
- <STRONG>o</STRONG> The <STRONG>WINDOW</STRONG> structure was written in binary form.
+ <STRONG>o</STRONG> The <EM>WINDOW</EM> structure was written in binary form.
- <STRONG>o</STRONG> The <STRONG>WINDOW</STRONG> structure refers to lines of data, which were written as
- an array of binary data following the <STRONG>WINDOW</STRONG>.
+ <STRONG>o</STRONG> The <EM>WINDOW</EM> structure refers to lines of data, which were written as
+ an array of binary data following the <EM>WINDOW</EM>.
<STRONG>o</STRONG> When <STRONG>getwin</STRONG> restored the window, it would keep track of offsets
- into the array of line-data and adjust the <STRONG>WINDOW</STRONG> structure which
+ into the array of line-data and adjust the <EM>WINDOW</EM> structure which
was read back into memory.
This is similar to Unix System V, but does not write a "magic number"
</PRE><H3><a name="h3-Unix-System-V">Unix System V</a></H3><PRE>
Unix System V curses identified the file format by writing a "magic
- number" at the beginning of the dump. The <STRONG>WINDOW</STRONG> data and the lines of
+ number" at the beginning of the dump. The <EM>WINDOW</EM> data and the lines of
text follow, all in binary form.
The Solaris curses source has these definitions:
\001\035
- After the magic number, the <STRONG>WINDOW</STRONG> structure and line-data are written
+ After the magic number, the <EM>WINDOW</EM> structure and line-data are written
in binary format. While the magic number used by the Unix systems can
be seen using <STRONG>od(1)</STRONG>, none of the Unix systems documents the format used
for screen-dumps.
</PRE><H3><a name="h3-PDCurses">PDCurses</a></H3><PRE>
PDCurses added support for screen dumps in version 2.7 (2005). Like
- Unix System V and ncurses5, it writes the <STRONG>WINDOW</STRONG> structure in binary,
+ Unix System V and ncurses5, it writes the <EM>WINDOW</EM> structure in binary,
but begins the file with its three-byte identifier "PDC", followed by a
one-byte version, e.g.,
<STRONG>o</STRONG> the curses shared library major and minor versions as the first two
bytes (e.g., 7 and 1),
- <STRONG>o</STRONG> followed by a binary dump of the <STRONG>WINDOW</STRONG>,
+ <STRONG>o</STRONG> followed by a binary dump of the <EM>WINDOW</EM>,
- <STRONG>o</STRONG> some data for wide-characters referenced by the <STRONG>WINDOW</STRONG> structure,
+ <STRONG>o</STRONG> some data for wide-characters referenced by the <EM>WINDOW</EM> structure,
and
<STRONG>o</STRONG> finally, lines as done by other implementations.
-ncurses 6.4 2023-12-16 <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="scr_dump.5.html">scr_dump(5)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-ncurses6">ncurses6</a></li>
-<li><a href="#h3-ncurses5-_legacy_">ncurses5 (legacy)</a></li>
+<li><a href="#h3-ncurses5-_Legacy_">ncurses5 (Legacy)</a></li>
</ul>
</li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tabs.1,v 1.51 2023/12/17 00:13:57 tom Exp @
+ * @Id: tabs.1,v 1.52 2023/12/23 16:08:25 tom Exp @
* https://minnie.tuhs.org/cgi-bin/utree.pl?file=PWB1/sys/source/s2/\
* tabs.c
* https://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/tabs.c
<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 2023-12-16 ncurses 6.4 User commands</TITLE>
+<TITLE>tabs 1 2023-12-23 ncurses 6.4 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">tabs 1 2023-12-16 ncurses 6.4 User commands</H1>
+<H1 class="no-header">tabs 1 2023-12-23 ncurses 6.4 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>
which is equivalent to the 1,6,11,16,21 example.
-</PRE><H3><a name="h3-Predefined-Tab-Stops">Predefined Tab-Stops</a></H3><PRE>
+</PRE><H3><a name="h3-Predefined-Tab-Stops">Predefined Tab Stops</a></H3><PRE>
POSIX defines several predefined lists of tab stops.
<STRONG>-a</STRONG> Assembler, IBM S/370, first format
-ncurses 6.4 2023-12-16 <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h3-General-Options">General Options</a></li>
<li><a href="#h3-Implicit-Lists">Implicit Lists</a></li>
<li><a href="#h3-Explicit-Lists">Explicit Lists</a></li>
-<li><a href="#h3-Predefined-Tab-Stops">Predefined Tab-Stops</a></li>
+<li><a href="#h3-Predefined-Tab-Stops">Predefined Tab Stops</a></li>
<li><a href="#h3-Margins">Margins</a></li>
</ul>
</li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: term.5,v 1.68 2023/12/16 20:32:22 tom Exp @
+ * @Id: term.5,v 1.69 2023/12/23 16:08: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>term 5 2023-12-16 ncurses 6.4 File formats</TITLE>
+<TITLE>term 5 2023-12-23 ncurses 6.4 File formats</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">term 5 2023-12-16 ncurses 6.4 File formats</H1>
+<H1 class="no-header">term 5 2023-12-23 ncurses 6.4 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>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-</PRE><H3><a name="h3-STORAGE-LOCATION">STORAGE LOCATION</a></H3><PRE>
+</PRE><H3><a name="h3-Storage-Location">Storage Location</a></H3><PRE>
Compiled terminfo descriptions are placed under the directory
<STRONG>/usr/share/terminfo</STRONG>. Two configurations are supported (when building
the <EM>ncurses</EM> libraries):
database otherwise.
-</PRE><H3><a name="h3-LEGACY-STORAGE-FORMAT">LEGACY STORAGE FORMAT</a></H3><PRE>
+</PRE><H3><a name="h3-Legacy-Storage-Format">Legacy Storage Format</a></H3><PRE>
The format has been chosen so that it will be the same on all hardware.
An 8 or more bit byte is assumed, but no assumptions about byte
ordering or sign extension are made.
uninterpreted form.
-</PRE><H3><a name="h3-EXTENDED-STORAGE-FORMAT">EXTENDED STORAGE FORMAT</a></H3><PRE>
+</PRE><H3><a name="h3-Extended-Storage-Format">Extended Storage Format</a></H3><PRE>
The previous section describes the conventional terminfo binary format.
With some minor variations of the offsets (see PORTABILITY), the same
binary format is used in all modern Unix systems. Each system uses a
names with members of a <STRONG>TERMTYPE</STRONG> structure.
-</PRE><H3><a name="h3-EXTENDED-NUMBER-FORMAT">EXTENDED NUMBER FORMAT</a></H3><PRE>
+</PRE><H3><a name="h3-Extended-Number-Format">Extended Number Format</a></H3><PRE>
On occasion, 16-bit signed integers are not large enough. With <EM>ncurses</EM>
6.1, a new format was introduced by making a few changes to the legacy
format:
the lists of boolean, number, and string capabilities.
-</PRE><H3><a name="h3-Binary-format">Binary format</a></H3><PRE>
+</PRE><H3><a name="h3-Binary-Format">Binary Format</a></H3><PRE>
X/Open Curses does not specify a format for the terminfo database.
System V curses used a directory-tree of binary files, one per terminal
description.
different configuration options.
-</PRE><H3><a name="h3-Magic-codes">Magic codes</a></H3><PRE>
+</PRE><H3><a name="h3-Magic-Codes">Magic Codes</a></H3><PRE>
The magic number in a binary terminfo file is the first 16-bits (two
bytes). Besides making it more reliable for the library to check that
a file is terminfo, utilities such as <STRONG>file(1)</STRONG> also use that to tell
uses 01036 as a continuation of that sequence, but with a different
high-order byte to avoid confusion.
-
-</PRE><H3><a name="h3-The-TERMTYPE-structure">The TERMTYPE structure</a></H3><PRE>
+ <STRONG>The</STRONG> <EM>TERMTYPE</EM> <STRONG>Structure</STRONG>
Direct access to the <STRONG>TERMTYPE</STRONG> structure is provided for legacy
applications. Portable applications should use the <STRONG>tigetflag</STRONG> and
related functions described in <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> for reading terminal
capabilities.
-</PRE><H3><a name="h3-Mixed-case-terminal-names">Mixed-case terminal names</a></H3><PRE>
+</PRE><H3><a name="h3-Mixed-case-Terminal-Names">Mixed-case Terminal Names</a></H3><PRE>
A small number of terminal descriptions use uppercase characters in
their names. If the underlying filesystem ignores the difference
between uppercase and lowercase, <EM>ncurses</EM> represents the "first
-ncurses 6.4 2023-12-16 <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="term.5.html">term(5)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-STORAGE-LOCATION">STORAGE LOCATION</a></li>
-<li><a href="#h3-LEGACY-STORAGE-FORMAT">LEGACY STORAGE FORMAT</a></li>
-<li><a href="#h3-EXTENDED-STORAGE-FORMAT">EXTENDED STORAGE FORMAT</a></li>
-<li><a href="#h3-EXTENDED-NUMBER-FORMAT">EXTENDED NUMBER FORMAT</a></li>
+<li><a href="#h3-Storage-Location">Storage Location</a></li>
+<li><a href="#h3-Legacy-Storage-Format">Legacy Storage Format</a></li>
+<li><a href="#h3-Extended-Storage-Format">Extended Storage Format</a></li>
+<li><a href="#h3-Extended-Number-Format">Extended Number Format</a></li>
</ul>
</li>
<li><a href="#h2-FILES">FILES</a></li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a>
<ul>
<li><a href="#h3-setupterm">setupterm</a></li>
-<li><a href="#h3-Binary-format">Binary format</a></li>
-<li><a href="#h3-Magic-codes">Magic codes</a></li>
-<li><a href="#h3-The-TERMTYPE-structure">The TERMTYPE structure</a></li>
-<li><a href="#h3-Mixed-case-terminal-names">Mixed-case terminal names</a></li>
+<li><a href="#h3-Binary-Format">Binary Format</a></li>
+<li><a href="#h3-Magic-Codes">Magic Codes</a></li>
+<li><a href="#h3-Mixed-case-Terminal-Names">Mixed-case Terminal Names</a></li>
<li><a href="#h3-Limits">Limits</a></li>
</ul>
</li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: term_variables.3x,v 1.33 2023/11/25 14:32:36 tom Exp @
+ * @Id: term_variables.3x,v 1.34 2023/12/23 16:08: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>term_variables 3x 2023-11-25 ncurses 6.4 Library calls</TITLE>
+<TITLE>term_variables 3x 2023-12-23 ncurses 6.4 Library calls</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">term_variables 3x 2023-11-25 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">term_variables 3x 2023-12-23 ncurses 6.4 Library calls</H1>
<PRE>
<STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG> Library calls <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>
<STRONG>set_term</STRONG>.
-</PRE><H3><a name="h3-Terminfo-Lookup-Tables">Terminfo Lookup Tables</a></H3><PRE>
+</PRE><H3><a name="h3-terminfo-Lookup-Tables"><EM>terminfo</EM> Lookup Tables</a></H3><PRE>
The <STRONG><A HREF="tic.1m.html">tic(1)</A></STRONG> and <STRONG><A HREF="infocmp.1m.html">infocmp(1)</A></STRONG> programs use lookup tables for the long and
short names of terminfo capabilities, as well as the corresponding
names for termcap capabilities. These are available to other
<STRONG>ttytype</STRONG>.
-</PRE><H3><a name="h3-Terminfo-Names">Terminfo Names</a></H3><PRE>
+</PRE><H3><a name="h3-terminfo-Names"><EM>terminfo</EM> Names</a></H3><PRE>
In addition to the variables, <STRONG><term.h></STRONG> also defines a symbol for each
terminfo capability <EM>long</EM> <EM>name</EM>. These are in terms of the symbol <STRONG>CUR</STRONG>,
which is defined
-ncurses 6.4 2023-11-25 <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<ul>
<li><a href="#h3-Alternate-Character-Set-Mapping">Alternate Character Set Mapping</a></li>
<li><a href="#h3-Current-Terminal-Data">Current Terminal Data</a></li>
-<li><a href="#h3-Terminfo-Lookup-Tables">Terminfo Lookup Tables</a></li>
+<li><a href="#h3-terminfo-Lookup-Tables">terminfo Lookup Tables</a></li>
<li><a href="#h3-Terminal-Type">Terminal Type</a></li>
-<li><a href="#h3-Terminfo-Names">Terminfo Names</a></li>
+<li><a href="#h3-terminfo-Names">terminfo Names</a></li>
</ul>
</li>
<li><a href="#h2-NOTES">NOTES</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: terminfo.head,v 1.57 2023/12/18 01:15:58 tom Exp @
+ * @Id: terminfo.head,v 1.59 2023/12/23 23:44:58 tom Exp @
* Head of terminfo man page ends here
****************************************************************************
* Copyright 2018-2022,2023 Thomas E. Dickey *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: terminfo.tail,v 1.139 2023/12/17 22:56:21 tom Exp @
+ * @Id: terminfo.tail,v 1.140 2023/12/23 16:23:35 tom Exp @
*.in -2
*.in +2
*.in -2
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>terminfo 5 2023-12-17 ncurses 6.4 File formats</TITLE>
+<TITLE>terminfo 5 2023-12-23 ncurses 6.4 File formats</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">terminfo 5 2023-12-17 ncurses 6.4 File formats</H1>
+<H1 class="no-header">terminfo 5 2023-12-23 ncurses 6.4 File formats</H1>
<PRE>
<STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> File formats <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
have, by specifying how to perform screen operations, and by specifying
padding requirements and initialization sequences.
- This manual describes <EM>ncurses</EM> version 6.4 (patch 20231217).
+ This manual describes <EM>ncurses</EM> version 6.4 (patch 20231223).
-</PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
+</PRE><H3><a name="h3-terminfo-Entry-Syntax"><EM>terminfo</EM> Entry Syntax</a></H3><PRE>
Entries in <EM>terminfo</EM> consist of a sequence of fields:
<STRONG>o</STRONG> Each field ends with a comma "," (embedded commas may be escaped
For more on terminal naming conventions, see the <STRONG><A HREF="term.7.html">term(7)</A></STRONG> manual page.
-</PRE><H3><a name="h3-Terminfo-Capabilities-Syntax">Terminfo Capabilities Syntax</a></H3><PRE>
+</PRE><H3><a name="h3-terminfo-Capabilities-Syntax"><EM>terminfo</EM> Capabilities Syntax</a></H3><PRE>
The terminfo entry consists of several <EM>capabilities</EM>, i.e., features
that the terminal has, or methods for exercising the terminal's
features.
stack in the <STRONG>tparm</STRONG> function.
<STRONG>o</STRONG> SVr3.2 curses supported <EM>static</EM> variables. Those are an array
- in the <STRONG>TERMINAL</STRONG> structure (declared in <STRONG>term.h</STRONG>), and are zeroed
+ in the <EM>TERMINAL</EM> structure (declared in <STRONG>term.h</STRONG>), and are zeroed
automatically when the <STRONG>setupterm</STRONG> function allocates the data.
<STRONG>o</STRONG> SVr4 curses made no further improvements to the <EM>dynamic/static</EM>
-ncurses 6.4 2023-12-17 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></li>
-<li><a href="#h3-Terminfo-Capabilities-Syntax">Terminfo Capabilities Syntax</a></li>
+<li><a href="#h3-terminfo-Entry-Syntax">terminfo Entry Syntax</a></li>
+<li><a href="#h3-terminfo-Capabilities-Syntax">terminfo Capabilities Syntax</a></li>
<li><a href="#h3-Similar-Terminals">Similar Terminals</a></li>
<li><a href="#h3-Predefined-Capabilities">Predefined Capabilities</a></li>
<li><a href="#h3-User-Defined-Capabilities">User-Defined Capabilities</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tic.1m,v 1.104 2023/12/16 20:33:11 tom Exp @
+ * @Id: tic.1m,v 1.105 2023/12/23 16:08: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>tic 1m 2023-12-16 ncurses 6.4 User commands</TITLE>
+<TITLE>tic 1m 2023-12-23 ncurses 6.4 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">tic 1m 2023-12-16 ncurses 6.4 User commands</H1>
+<H1 class="no-header">tic 1m 2023-12-23 ncurses 6.4 User commands</H1>
<PRE>
<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> User commands <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
goes into further detail.
-</PRE><H3><a name="h3-ALIASES">ALIASES</a></H3><PRE>
+</PRE><H3><a name="h3-Aliases">Aliases</a></H3><PRE>
This is the same program as infotocap and captoinfo; usually those are
linked to, or copied from this program:
as function keys.
-</PRE><H3><a name="h3-PARAMETERS">PARAMETERS</a></H3><PRE>
+</PRE><H3><a name="h3-Parameters">Parameters</a></H3><PRE>
<EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions in source
format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. Each description in the file
describes the capabilities of a particular terminal.
The <EM>file</EM> parameter may also be the path of a character-device.
-</PRE><H3><a name="h3-PROCESSING">PROCESSING</a></H3><PRE>
+</PRE><H3><a name="h3-Processing">Processing</a></H3><PRE>
All but one of the capabilities recognized by <STRONG>tic</STRONG> are documented in
<STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. The exception is the <STRONG>use</STRONG> capability.
-ncurses 6.4 2023-12-16 <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-ALIASES">ALIASES</a></li>
+<li><a href="#h3-Aliases">Aliases</a></li>
</ul>
</li>
<li><a href="#h2-OPTIONS">OPTIONS</a>
<ul>
-<li><a href="#h3-PARAMETERS">PARAMETERS</a></li>
-<li><a href="#h3-PROCESSING">PROCESSING</a></li>
+<li><a href="#h3-Parameters">Parameters</a></li>
+<li><a href="#h3-Processing">Processing</a></li>
</ul>
</li>
<li><a href="#h2-FILES">FILES</a></li>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tput.1,v 1.92 2023/12/16 20:32:22 tom Exp @
+ * @Id: tput.1,v 1.96 2023/12/23 20:55:36 tom Exp @
+ * longname was added in October 1989.
-->
<!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 2023-12-16 ncurses 6.4 User commands</TITLE>
+<TITLE>tput 1 2023-12-23 ncurses 6.4 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">tput 1 2023-12-16 ncurses 6.4 User commands</H1>
+<H1 class="no-header">tput 1 2023-12-23 ncurses 6.4 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>
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
- <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <EM>capname</EM> [<EM>parameters</EM>]
+ <STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <EM>cap-code</EM> [<EM>parameter</EM> ...]
+
<STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] [<STRONG>-x</STRONG>] <STRONG>clear</STRONG>
+
<STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>init</STRONG>
+
<STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>reset</STRONG>
+
<STRONG>tput</STRONG> [<STRONG>-T</STRONG> <EM>terminal-type</EM>] <STRONG>longname</STRONG>
- <STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG><<</STRONG>
+
+ <STRONG>tput</STRONG> <STRONG>-S</STRONG>
+
<STRONG>tput</STRONG> <STRONG>-V</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>tput</STRONG> utility uses the <STRONG>terminfo</STRONG> database to make the values of
- terminal-dependent capabilities and information available to the shell
- (see <STRONG>sh(1)</STRONG>), to initialize or reset the terminal, or return the long
- name of the requested terminal type. The result depends upon the
- capability's type:
+ <STRONG>tput</STRONG> uses the <EM>terminfo</EM> library and database to make the values of
+ terminal-specific capabilities and information available to the shell,
+ to initialize or reset the terminal, or report the long name of the
+ current (or specified) terminal type. When retrieving capability
+ values, the result depends upon the capability's type.
- string
- <STRONG>tput</STRONG> writes the string to the standard output. No trailing
- newline is supplied.
+ Boolean <STRONG>tput</STRONG> sets its exit status to <STRONG>0</STRONG> if the terminal possesses <EM>cap-</EM>
+ <EM>code,</EM> and <STRONG>1</STRONG> if it does not.
- integer
- <STRONG>tput</STRONG> writes the decimal value to the standard output, with a
- trailing newline.
+ integer <STRONG>tput</STRONG> writes <EM>cap-code</EM>'s decimal value to the standard output
+ stream if defined (<STRONG>-1</STRONG> if it is not) followed by a newline.
- boolean
- <STRONG>tput</STRONG> simply sets the exit code (<STRONG>0</STRONG> for TRUE if the terminal has
- the capability, <STRONG>1</STRONG> for FALSE if it does not), and writes nothing
- to the standard output.
+ string <STRONG>tput</STRONG> writes <EM>cap-code</EM>'s value to the standard output stream if
+ defined, without a trailing newline.
- Before using a value returned on the standard output, the application
- should test the exit code (e.g., <STRONG>$?</STRONG>, see <STRONG>sh(1)</STRONG>) to be sure it is <STRONG>0</STRONG>.
- (See the <STRONG>EXIT</STRONG> <STRONG>STATUS</STRONG> and <STRONG>DIAGNOSTICS</STRONG> sections.) For a complete list of
- capabilities and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
+ Before using a value returned on the standard output, the application
+ should test <STRONG>tput</STRONG>'s exit status (for example, using <STRONG>$?</STRONG> in <STRONG>sh(1)</STRONG>) to be
+ sure it is <STRONG>0</STRONG>; see sections "EXIT STATUS" and "DIAGNOSTICS" below. For
+ a complete list of <EM>cap-codes,</EM> see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
</PRE><H3><a name="h3-Options">Options</a></H3><PRE>
- <STRONG>-S</STRONG> allows more than one capability per invocation of <STRONG>tput</STRONG>. The
- capabilities must be passed to <STRONG>tput</STRONG> from the standard input
- instead of from the command line (see example). Only one
- <EM>capname</EM> is allowed per line. The <STRONG>-S</STRONG> option changes the meaning
- of the <STRONG>0</STRONG> and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT
- STATUS section).
-
- Because some capabilities may use <EM>string</EM> parameters rather than
+ <STRONG>-S</STRONG> allows more than one capability per invocation of <STRONG>tput</STRONG>. The
+ capabilities must be passed to <STRONG>tput</STRONG> from the standard input
+ instead of from the command line (see example). Only one <EM>cap-</EM>
+ <EM>code</EM> is allowed per line. The <STRONG>-S</STRONG> option changes the meaning of
+ the <STRONG>0</STRONG> and <STRONG>1</STRONG> Boolean and string exit statuses (see section "EXIT
+ STATUS" below).
+
+ Because some capabilities may use <EM>string</EM> parameters rather than
<EM>numbers</EM>, <STRONG>tput</STRONG> uses a table and the presence of parameters in its
- input to decide whether to use <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>, and how to interpret
+ input to decide whether to use <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>, and how to interpret
the parameters.
<STRONG>-T</STRONG><EM>type</EM> indicates the <EM>type</EM> of terminal. Normally this option is
- unnecessary, because the default is taken from the environment
- variable <EM>TERM</EM>. If <STRONG>-T</STRONG> is specified, then the shell variables
+ unnecessary, because the default is taken from the environment
+ variable <EM>TERM</EM>. If <STRONG>-T</STRONG> is specified, then the shell variables
<EM>LINES</EM> and <EM>COLUMNS</EM> will also be ignored.
- <STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> which was used in this program,
+ <STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> which was used in this program,
and exits.
<STRONG>-x</STRONG> prevents <STRONG>tput</STRONG> from attempting to clear the scrollback buffer.
</PRE><H3><a name="h3-Commands">Commands</a></H3><PRE>
A few commands (<STRONG>init</STRONG>, <STRONG>reset</STRONG> and <STRONG>longname</STRONG>) are special; they are defined
by the <STRONG>tput</STRONG> program. The others are the names of <EM>capabilities</EM> from the
- terminal database (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for a list). Although <STRONG>init</STRONG> and
- <STRONG>reset</STRONG> resemble capability names, <STRONG>tput</STRONG> uses several capabilities to
+ terminal database (see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for a list). Although <STRONG>init</STRONG> and
+ <STRONG>reset</STRONG> resemble capability names, <STRONG>tput</STRONG> uses several capabilities to
perform these special functions.
- <EM>capname</EM>
+ <EM>cap-code</EM>
indicates the capability from the terminal database.
- If the capability is a string that takes parameters, the
- arguments following the capability will be used as parameters
+ If the capability is a string that takes parameters, the
+ arguments following the capability will be used as parameters
for the string.
- Most parameters are numbers. Only a few terminal capabilities
- require string parameters; <STRONG>tput</STRONG> uses a table to decide which to
- pass as strings. Normally <STRONG>tput</STRONG> uses <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> to perform the
- substitution. If no parameters are given for the capability,
+ Most parameters are numbers. Only a few terminal capabilities
+ require string parameters; <STRONG>tput</STRONG> uses a table to decide which to
+ pass as strings. Normally <STRONG>tput</STRONG> uses <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> to perform the
+ substitution. If no parameters are given for the capability,
<STRONG>tput</STRONG> writes the string without performing the substitution.
- <STRONG>init</STRONG> If the terminal database is present and an entry for the user's
+ <STRONG>init</STRONG> If the terminal database is present and an entry for the user's
terminal exists (see <STRONG>-T</STRONG><EM>type</EM>, above), the following will occur:
- (1) first, <STRONG>tput</STRONG> retrieves the current terminal mode settings
+ (1) first, <STRONG>tput</STRONG> retrieves the current terminal mode settings
for your terminal. It does this by successively testing
<STRONG>o</STRONG> the standard error,
<STRONG>o</STRONG> ultimately "/dev/tty"
- to obtain terminal settings. Having retrieved these
- settings, <STRONG>tput</STRONG> remembers which file descriptor to use when
+ to obtain terminal settings. Having retrieved these
+ settings, <STRONG>tput</STRONG> remembers which file descriptor to use when
updating settings.
- (2) if the window size cannot be obtained from the operating
+ (2) if the window size cannot be obtained from the operating
system, but the terminal description (or environment, e.g.,
- <EM>LINES</EM> and <EM>COLUMNS</EM> variables specify this), update the
+ <EM>LINES</EM> and <EM>COLUMNS</EM> variables specify this), update the
operating system's notion of the window size.
(3) the terminal modes will be updated:
- <STRONG>o</STRONG> any delays (e.g., newline) specified in the entry will
+ <STRONG>o</STRONG> any delays (e.g., newline) specified in the entry will
be set in the tty driver,
- <STRONG>o</STRONG> tabs expansion will be turned on or off according to
+ <STRONG>o</STRONG> tabs expansion will be turned on or off according to
the specification in the entry, and
- <STRONG>o</STRONG> if tabs are not expanded, standard tabs will be set
+ <STRONG>o</STRONG> if tabs are not expanded, standard tabs will be set
(every 8 spaces).
- (4) if present, the terminal's initialization strings will be
- output as detailed in the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM>
+ (4) if present, the terminal's initialization strings will be
+ output as detailed in the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM>
<EM>Initialization</EM>,
(5) output is flushed.
- If an entry does not contain the information needed for any of
+ If an entry does not contain the information needed for any of
these activities, that activity will silently be skipped.
<STRONG>reset</STRONG> This is similar to <STRONG>init</STRONG>, with two differences:
<STRONG>o</STRONG> turn on newline translation and
- <STRONG>o</STRONG> reset any unset special characters to their default
+ <STRONG>o</STRONG> reset any unset special characters to their default
values
- (2) Instead of putting out <EM>initialization</EM> strings, the
- terminal's <EM>reset</EM> strings will be output if present (<STRONG>rs1</STRONG>,
- <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the <EM>reset</EM> strings are not present, but
+ (2) Instead of putting out <EM>initialization</EM> strings, the
+ terminal's <EM>reset</EM> strings will be output if present (<STRONG>rs1</STRONG>,
+ <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the <EM>reset</EM> strings are not present, but
<EM>initialization</EM> strings are, the <EM>initialization</EM> strings will
be output.
Otherwise, <STRONG>reset</STRONG> acts identically to <STRONG>init</STRONG>.
<STRONG>longname</STRONG>
- If the terminal database is present and an entry for the user's
- terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above), then the long name of the
- terminal will be put out. The long name is the last name in the
- first line of the terminal's description in the <STRONG>terminfo</STRONG>
- database [see <STRONG><A HREF="term.5.html">term(5)</A></STRONG>].
+ If the terminal database is present and an entry for the user's
+ terminal exists (see <STRONG>-T</STRONG> <EM>type</EM> above), <STRONG>tput</STRONG> reports the terminal's
+ description (or "long name") to the standard output, without a
+ trailing newline. See <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
</PRE><H3><a name="h3-Aliases">Aliases</a></H3><PRE>
</PRE><H2><a name="h2-EXIT-STATUS">EXIT STATUS</a></H2><PRE>
If the <STRONG>-S</STRONG> option is used, <STRONG>tput</STRONG> checks for errors from each line, and if
- any errors are found, will set the exit code to 4 plus the number of
- lines with errors. If no errors are found, the exit code is <STRONG>0</STRONG>. No
- indication of which line failed can be given so exit code <STRONG>1</STRONG> will never
- appear. Exit codes <STRONG>2</STRONG>, <STRONG>3</STRONG>, and <STRONG>4</STRONG> retain their usual interpretation. If
- the <STRONG>-S</STRONG> option is not used, the exit code depends on the type of
- <EM>capname</EM>:
-
- <EM>boolean</EM>
+ any errors are found, will set the exit status to 4 plus the number of
+ lines with errors. If no errors are found, the exit status is <STRONG>0</STRONG>. No
+ indication of which line failed can be given so exit status <STRONG>1</STRONG> will
+ never appear. Exit statuses <STRONG>2</STRONG>, <STRONG>3</STRONG>, and <STRONG>4</STRONG> retain their usual
+ interpretation. If the <STRONG>-S</STRONG> option is not used, the exit status depends
+ on the type of <EM>cap-code</EM>:
+
+ <EM>Boolean</EM>
a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE.
- <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined for this
- terminal <EM>type</EM> (the value of <EM>capname</EM> is returned on standard
- output); a value of <STRONG>1</STRONG> is set if <EM>capname</EM> is not defined for
+ <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>cap-code</EM> is defined for this
+ terminal <EM>type</EM> (the value of <EM>cap-code</EM> is returned on standard
+ output); a value of <STRONG>1</STRONG> is set if <EM>cap-code</EM> is not defined for
this terminal <EM>type</EM> (nothing is written to standard output).
<EM>integer</EM>
- a value of <STRONG>0</STRONG> is always set, whether or not <EM>capname</EM> is defined
- for this terminal <EM>type</EM>. To determine if <EM>capname</EM> is defined
- for this terminal <EM>type</EM>, the user must test the value written
- to standard output. A value of <STRONG>-1</STRONG> means that <EM>capname</EM> is not
- defined for this terminal <EM>type</EM>.
+ a value of <STRONG>0</STRONG> is always set, whether or not <EM>cap-code</EM> is
+ defined for this terminal <EM>type</EM>. To determine if <EM>cap-code</EM> is
+ defined for this terminal <EM>type</EM>, the user must test the value
+ written to standard output. A value of <STRONG>-1</STRONG> means that <EM>cap-</EM>
+ <EM>code</EM> is not defined for this terminal <EM>type</EM>.
<EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respective files. In
- that case, the exit code is set to 4 + <STRONG>errno</STRONG>.
+ that case, the exit status is set to 4 + <STRONG>errno</STRONG>.
- Any other exit code indicates an error; see the DIAGNOSTICS section.
+ Any other exit status indicates an error; see section "DIAGNOSTICS"
+ below.
</PRE><H2><a name="h2-DIAGNOSTICS">DIAGNOSTICS</a></H2><PRE>
- <STRONG>tput</STRONG> prints the following error messages and sets the corresponding
- exit codes.
-
- exit code error message
- ----------------------------------------------------------------------
- <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
- the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g.
- <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-Thp2621</STRONG> <STRONG>xmc</STRONG>)
- <STRONG>1</STRONG> no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>STATUS</STRONG> section.
- <STRONG>2</STRONG> usage error
- <STRONG>3</STRONG> unknown terminal <EM>type</EM> or no <STRONG>terminfo</STRONG> database
- <STRONG>4</STRONG> unknown <STRONG>terminfo</STRONG> capability <EM>capname</EM>
- <STRONG>>4</STRONG> error occurred in -S
- ----------------------------------------------------------------------
+ <STRONG>tput</STRONG> prints the following error messages and sets the corresponding
+ exit statuses.
+
+ exit status error message
+ ------------------------------------------------------------------------
+ <STRONG>0</STRONG> (<EM>cap-code</EM> is a numeric variable that is not specified in
+ the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g.
+ <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-Thp2621</STRONG> <STRONG>xmc</STRONG>)
+ <STRONG>1</STRONG> no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>STATUS</STRONG> section.
+ <STRONG>2</STRONG> usage error
+ <STRONG>3</STRONG> unknown terminal <EM>type</EM> or no <EM>terminfo</EM> database
+ <STRONG>4</STRONG> unknown <EM>terminfo</EM> capability <EM>cap-code</EM>
+ <STRONG>>4</STRONG> error occurred in -S
+ ------------------------------------------------------------------------
</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- This implementation of <STRONG>tput</STRONG> differs from AT&T <STRONG>tput</STRONG> in two important
+ This implementation of <STRONG>tput</STRONG> differs from AT&T <STRONG>tput</STRONG> in two important
areas:
- <STRONG>o</STRONG> <STRONG>tput</STRONG> <EM>capname</EM> writes to the standard output. That need not be a
- regular terminal. However, the subcommands which manipulate
+ <STRONG>o</STRONG> <STRONG>tput</STRONG> <EM>cap-code</EM> writes to the standard output. That need not be a
+ regular terminal. However, the subcommands which manipulate
terminal modes may not use the standard output.
- The AT&T implementation's <STRONG>init</STRONG> and <STRONG>reset</STRONG> commands use the BSD
- (4.1c) <STRONG>tset</STRONG> source, which manipulates terminal modes. It
- successively tries standard output, standard error, standard input
+ The AT&T implementation's <STRONG>init</STRONG> and <STRONG>reset</STRONG> commands use the BSD
+ (4.1c) <STRONG>tset</STRONG> source, which manipulates terminal modes. It
+ successively tries standard output, standard error, standard input
before falling back to "/dev/tty" and finally just assumes a 1200Bd
terminal. When updating terminal modes, it ignores errors.
- Until changes made after <EM>ncurses</EM> 6.0, <STRONG>tput</STRONG> did not modify terminal
+ Until changes made after <EM>ncurses</EM> 6.0, <STRONG>tput</STRONG> did not modify terminal
modes. <STRONG>tput</STRONG> now uses a similar scheme, using functions shared with
- <STRONG>tset</STRONG> (and ultimately based on the 4.4BSD <STRONG>tset</STRONG>). If it is not able
+ <STRONG>tset</STRONG> (and ultimately based on the 4.4BSD <STRONG>tset</STRONG>). If it is not able
to open a terminal, e.g., when running in <STRONG>cron(1)</STRONG>, <STRONG>tput</STRONG> will return
an error.
- <STRONG>o</STRONG> AT&T <STRONG>tput</STRONG> guesses the type of its <EM>capname</EM> operands by seeing if all
- of the characters are numeric, or not.
+ <STRONG>o</STRONG> AT&T <STRONG>tput</STRONG> guesses the type of its <EM>cap-code</EM> operands by seeing if
+ all of the characters are numeric, or not.
- Most implementations which provide support for <EM>capname</EM> operands use
- the <STRONG>tparm</STRONG> function to expand parameters in it. That function
- expects a mixture of numeric and string parameters, requiring <STRONG>tput</STRONG>
+ Most implementations which provide support for <EM>cap-code</EM> operands
+ use the <STRONG>tparm</STRONG> function to expand parameters in it. That function
+ expects a mixture of numeric and string parameters, requiring <STRONG>tput</STRONG>
to know which type to use.
- This implementation uses a table to determine the parameter types
- for the standard <EM>capname</EM> operands, and an internal library function
- to analyze nonstandard <EM>capname</EM> operands.
+ This implementation uses a table to determine the parameter types
+ for the standard <EM>cap-code</EM> operands, and an internal library
+ function to analyze nonstandard <EM>cap-code</EM> operands.
- Besides providing more reliable operation than AT&T's utility, a
- portability problem is introduced by this analysis: An OpenBSD
- developer adapted the internal library function from <EM>ncurses</EM> to
- port NetBSD's termcap-based <STRONG>tput</STRONG> to terminfo. That had been
- modified to interpret multiple commands on a line. Portable
+ Besides providing more reliable operation than AT&T's utility, a
+ portability problem is introduced by this analysis: An OpenBSD
+ developer adapted the internal library function from <EM>ncurses</EM> to
+ port NetBSD's termcap-based <STRONG>tput</STRONG> to terminfo. That had been
+ modified to interpret multiple commands on a line. Portable
applications should not rely upon this feature; <EM>ncurses</EM> provides it
to support applications written specifically for OpenBSD.
This implementation (unlike others) can accept both <EM>termcap</EM> and
- <EM>terminfo</EM> names for the <EM>capname</EM> feature, if <EM>termcap</EM> support is compiled
- in. However, the predefined <EM>termcap</EM> and <EM>terminfo</EM> names have two
+ <EM>terminfo</EM> names for the <EM>cap-code</EM> feature, if <EM>termcap</EM> support is compiled
+ in. However, the predefined <EM>termcap</EM> and <EM>terminfo</EM> names have two
ambiguities in this case (and the <EM>terminfo</EM> name is assumed):
- <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>dl</STRONG> corresponds to the <EM>terminfo</EM> name <STRONG>dl1</STRONG> (delete
+ <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>dl</STRONG> corresponds to the <EM>terminfo</EM> name <STRONG>dl1</STRONG> (delete
one line).
- The <EM>terminfo</EM> name <STRONG>dl</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>DL</STRONG> (delete a
+ The <EM>terminfo</EM> name <STRONG>dl</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>DL</STRONG> (delete a
given number of lines).
- <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>ed</STRONG> corresponds to the <EM>terminfo</EM> name <STRONG>rmdc</STRONG> (end
+ <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>ed</STRONG> corresponds to the <EM>terminfo</EM> name <STRONG>rmdc</STRONG> (end
delete mode).
- The <EM>terminfo</EM> name <STRONG>ed</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>cd</STRONG> (clear to
+ The <EM>terminfo</EM> name <STRONG>ed</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>cd</STRONG> (clear to
end of screen).
- The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitution features
- used in the <STRONG>cup</STRONG> example, were not supported in BSD curses before
- 4.3reno (1989) or in AT&T/USL curses before SVr4 (1988).
+ The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitution features
+ used in the <STRONG>cup</STRONG> example, were not supported in AT&T/USL <EM>curses</EM> before
+ SVr4 (1989). Later, 4.3BSD-Reno (1990) added support for <STRONG>longname</STRONG>, and
+ NetBSD (1994) added support for the parameter-substitution features.
IEEE Std 1003.1/The Open Group Base Specifications Issue 7
(POSIX.1-2008) documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG> and <STRONG>reset</STRONG>.
There are a few interesting observations to make regarding that:
- <STRONG>o</STRONG> In this implementation, <STRONG>clear</STRONG> is part of the <EM>capname</EM> support. The
+ <STRONG>o</STRONG> In this implementation, <STRONG>clear</STRONG> is part of the <EM>cap-code</EM> support. The
others (<STRONG>init</STRONG> and <STRONG>longname</STRONG>) do not correspond to terminal
capabilities.
<STRONG>o</STRONG> Other implementations of <STRONG>tput</STRONG> on SVr4-based systems such as
Solaris, IRIX64 and HP-UX as well as others such as AIX and Tru64
- provide support for <EM>capname</EM> operands.
+ provide support for <EM>cap-code</EM> operands.
<STRONG>o</STRONG> A few platforms such as FreeBSD recognize termcap names rather than
terminfo capability names in their respective <STRONG>tput</STRONG> commands. Since
set of capability names, the reasoning for documenting only a few may
not be apparent.
- <STRONG>o</STRONG> X/Open Curses Issue 7 documents <STRONG>tput</STRONG> differently, with <EM>capname</EM> and
+ <STRONG>o</STRONG> X/Open Curses Issue 7 documents <STRONG>tput</STRONG> differently, with <EM>cap-code</EM> and
the other features used in this implementation.
<STRONG>o</STRONG> That is, there are two standards for <STRONG>tput</STRONG>: POSIX (a subset) and
terminal capabilities database.
<STRONG>o</STRONG> While it is certainly possible to write a <STRONG>tput</STRONG> program without
- using curses, none of the systems which have a curses
- implementation provide a <STRONG>tput</STRONG> utility which does not provide the
- <EM>capname</EM> feature.
+ using <EM>curses,</EM> no system with a <EM>curses</EM> implementation provides a
+ <STRONG>tput</STRONG> utility that does not also supply the <EM>cap-code</EM> feature.
X/Open Curses Issue 7 (2009) is the first version to document
utilities. However that part of X/Open Curses does not follow existing
- practice (i.e., Unix features documented in SVID 3):
+ practice (that is, System V <EM>curses</EM> behavior).
- <STRONG>o</STRONG> It assigns exit code 4 to "invalid operand", which may be the same
- as <EM>unknown</EM> <EM>capability</EM>. For instance, the source code for Solaris'
- xcurses uses the term "invalid" in this case.
+ <STRONG>o</STRONG> It assigns exit status 4 to "invalid operand", which may be the
+ same as <EM>unknown</EM> <EM>capability</EM>. For instance, the source code for
+ Solaris' xcurses uses the term "invalid" in this case.
- <STRONG>o</STRONG> It assigns exit code 255 to a numeric variable that is not
+ <STRONG>o</STRONG> It assigns exit status 255 to a numeric variable that is not
specified in the terminfo database. That likely is a documentation
- error, confusing the <STRONG>-1</STRONG> written to the standard output for an
- absent or cancelled numeric value versus an (unsigned) exit code.
+ error, confusing the <STRONG>-1</STRONG> written to the standard output for an
+ absent or cancelled numeric value versus an (unsigned) exit status.
- The various Unix systems (AIX, HP-UX, Solaris) use the same exit-codes
- as <EM>ncurses</EM>.
+ The various Unix systems (AIX, HP-UX, Solaris) use the same exit
+ statuses as <EM>ncurses</EM>.
- NetBSD curses documents different exit codes which do not correspond to
- either <EM>ncurses</EM> or X/Open.
+ NetBSD curses documents different exit statuses which do not correspond
+ to either <EM>ncurses</EM> or X/Open.
</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- The <STRONG>tput</STRONG> command was begun by Bill Joy in 1980. The initial version
+ The <STRONG>tput</STRONG> command was begun by Bill Joy in 1980. The initial version
only cleared the screen.
AT&T System V provided a different <STRONG>tput</STRONG> command:
- <STRONG>o</STRONG> SVr2 provided a rudimentary <STRONG>tput</STRONG> which checked the parameter
- against each predefined capability and returned the corresponding
- value. This version of <STRONG>tput</STRONG> did not use <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> for the
+ <STRONG>o</STRONG> SVr2 provided a rudimentary <STRONG>tput</STRONG> which checked the parameter
+ against each predefined capability and returned the corresponding
+ value. This version of <STRONG>tput</STRONG> did not use <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> for the
capabilities which are parameterized.
<STRONG>o</STRONG> SVr3 replaced that, a year later, by a more extensive program whose
- <STRONG>init</STRONG> and <STRONG>reset</STRONG> subcommands (more than half the program) were
- incorporated from the <STRONG>reset</STRONG> feature of BSD <STRONG>tset</STRONG> written by Eric
+ <STRONG>init</STRONG> and <STRONG>reset</STRONG> subcommands (more than half the program) were
+ incorporated from the <STRONG>reset</STRONG> feature of BSD <STRONG>tset</STRONG> written by Eric
Allman.
<STRONG>o</STRONG> SVr4 added color initialization using the <STRONG>orig_colors</STRONG> and <STRONG>orig_pair</STRONG>
capabilities in the <STRONG>init</STRONG> subcommand.
- Keith Bostic replaced the BSD <STRONG>tput</STRONG> command in 1989 with a new
- implementation based on the AT&T System V program <STRONG>tput</STRONG>. Like the AT&T
- program, Bostic's version accepted some parameters named for <EM>terminfo</EM>
- capabilities (<STRONG>clear</STRONG>, <STRONG>init</STRONG>, <STRONG>longname</STRONG> and <STRONG>reset</STRONG>). However (because he
- had only <EM>termcap</EM> available), it accepted <EM>termcap</EM> names for other
- capabilities. Also, Bostic's BSD <STRONG>tput</STRONG> did not modify the terminal I/O
+ Keith Bostic replaced the BSD <STRONG>tput</STRONG> command in 1989 with a new
+ implementation based on the AT&T System V program <STRONG>tput</STRONG>. Like the AT&T
+ program, Bostic's version accepted some parameters named for <EM>terminfo</EM>
+ capabilities (<STRONG>clear</STRONG>, <STRONG>init</STRONG>, <STRONG>longname</STRONG> and <STRONG>reset</STRONG>). However (because he
+ had only <EM>termcap</EM> available), it accepted <EM>termcap</EM> names for other
+ capabilities. Also, Bostic's BSD <STRONG>tput</STRONG> did not modify the terminal I/O
modes as the earlier BSD <STRONG>tset</STRONG> had done.
At the same time, Bostic added a shell script named "clear", which used
<STRONG>tput</STRONG> to clear the screen.
- Both of these appeared in 4.4BSD, becoming the "modern" BSD
+ Both of these appeared in 4.4BSD, becoming the "modern" BSD
implementation of <STRONG>tput</STRONG>.
- This implementation of <STRONG>tput</STRONG> began from a different source than AT&T or
- BSD: Ross Ridge's <EM>mytinfo</EM> package, published on <EM>comp.sources.unix</EM> in
- December 1992. Ridge's program made more sophisticated use of the
- terminal capabilities than the BSD program. Eric Raymond used that
- <STRONG>tput</STRONG> program (and other parts of <EM>mytinfo</EM>) in <EM>ncurses</EM> in June 1995.
- Using the portions dealing with terminal capabilities almost without
- change, Raymond made improvements to the way the command-line
+ This implementation of <STRONG>tput</STRONG> began from a different source than AT&T or
+ BSD: Ross Ridge's <EM>mytinfo</EM> package, published on <EM>comp.sources.unix</EM> in
+ December 1992. Ridge's program made more sophisticated use of the
+ terminal capabilities than the BSD program. Eric Raymond used that
+ <STRONG>tput</STRONG> program (and other parts of <EM>mytinfo</EM>) in <EM>ncurses</EM> in June 1995.
+ Using the portions dealing with terminal capabilities almost without
+ change, Raymond made improvements to the way the command-line
parameters were handled.
</PRE><H2><a name="h2-EXAMPLES">EXAMPLES</a></H2><PRE>
<STRONG>tput</STRONG> <STRONG>init</STRONG>
- Initialize the terminal according to the type of terminal in the
- environmental variable <EM>TERM</EM>. This command should be included in
- everyone's .profile after the environmental variable <EM>TERM</EM> has been
+ Initialize the terminal according to the type of terminal in the
+ environment variable <EM>TERM</EM>. This command should be included in
+ everyone's .profile after the environment variable <EM>TERM</EM> has been
exported, as illustrated on the <STRONG>profile(5)</STRONG> manual page.
<STRONG>tput</STRONG> <STRONG>-T5620</STRONG> <STRONG>reset</STRONG>
- Reset an AT&T 5620 terminal, overriding the type of terminal in
- the environmental variable <EM>TERM</EM>.
+ Reset an AT&T 5620 terminal, overriding the type of terminal in
+ the environment variable <EM>TERM</EM>.
<STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>0</STRONG> <STRONG>0</STRONG>
Send the sequence to move the cursor to row <STRONG>0</STRONG>, column <STRONG>0</STRONG> (the upper
- left corner of the screen, usually known as the "home" cursor
+ left corner of the screen, usually known as the "home" cursor
position).
<STRONG>tput</STRONG> <STRONG>clear</STRONG>
Print the number of columns for the 450 terminal.
<STRONG>bold=`tput</STRONG> <STRONG>smso`</STRONG> <STRONG>offbold=`tput</STRONG> <STRONG>rmso`</STRONG>
- Set the shell variables <STRONG>bold</STRONG>, to begin stand-out mode sequence,
- and <STRONG>offbold</STRONG>, to end standout mode sequence, for the current
+ Set the shell variables <STRONG>bold</STRONG>, to begin stand-out mode sequence,
+ and <STRONG>offbold</STRONG>, to end standout mode sequence, for the current
terminal. This might be followed by a prompt: <STRONG>echo</STRONG> <STRONG>"${bold}Please</STRONG>
<STRONG>type</STRONG> <STRONG>in</STRONG> <STRONG>your</STRONG> <STRONG>name:</STRONG> <STRONG>${offbold}\c"</STRONG>
<STRONG>tput</STRONG> <STRONG>hc</STRONG>
- Set exit code to indicate if the current terminal is a hard copy
+ Set exit status to indicate if the current terminal is a hard copy
terminal.
<STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>23</STRONG> <STRONG>4</STRONG>
Send the sequence to move the cursor to row 23, column 4.
<STRONG>tput</STRONG> <STRONG>cup</STRONG>
- Send the terminfo string for cursor-movement, with no parameters
+ Send the terminfo string for cursor-movement, with no parameters
substituted.
<STRONG>tput</STRONG> <STRONG>longname</STRONG>
- Print the long name from the <STRONG>terminfo</STRONG> database for the type of
- terminal specified in the environmental variable <EM>TERM</EM>.
+ Print the long name from the <EM>terminfo</EM> database for the type of
+ terminal specified in the environment variable <EM>TERM</EM>.
+
+ <STRONG>tput</STRONG> <STRONG>-S</STRONG>
+ The <STRONG>-S</STRONG> option can be profitably used with a shell "here document".
+
+ $ <STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG><<!</STRONG>
+ > <STRONG>clear</STRONG>
+ > <STRONG>cup</STRONG> <STRONG>10</STRONG> <STRONG>10</STRONG>
+ > <STRONG>bold</STRONG>
+ > <STRONG>!</STRONG>
+
+ We see <STRONG>tput</STRONG> processing several capabilities in one invocation. It
+ clears the screen, moves the cursor to position (10, 10) and turns
+ on bold (extra bright) mode.
- <STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG><<!</STRONG>
- <STRONG>></STRONG> <STRONG>clear</STRONG>
- <STRONG>></STRONG> <STRONG>cup</STRONG> <STRONG>10</STRONG> <STRONG>10</STRONG>
- <STRONG>></STRONG> <STRONG>bold</STRONG>
- <STRONG>></STRONG> <STRONG>!</STRONG>
+ The same sequence of commands can be combined using the OpenBSD
+ feature:
- This example shows <STRONG>tput</STRONG> processing several capabilities in one
- invocation. It clears the screen, moves the cursor to position
- 10, 10 and turns on bold (extra bright) mode. The list is
- terminated by an exclamation mark (<STRONG>!</STRONG>) on a line by itself.
+ $ <STRONG>tput</STRONG> <STRONG>clear</STRONG> <STRONG>cup</STRONG> <STRONG>10</STRONG> <STRONG>10</STRONG> <STRONG>bold</STRONG>
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
</PRE>
<div class="nav">
<ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tset.1,v 1.78 2023/12/16 20:32:22 tom Exp @
+ * @Id: tset.1,v 1.79 2023/12/23 16:20:07 tom Exp @
* https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/reset.c
* https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/cmd/\
* reset.c
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>tset 1 2023-12-16 ncurses 6.4 User commands</TITLE>
+<TITLE>tset 1 2023-12-23 ncurses 6.4 User commands</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">tset 1 2023-12-16 ncurses 6.4 User commands</H1>
+<H1 class="no-header">tset 1 2023-12-23 ncurses 6.4 User commands</H1>
<PRE>
<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> User commands <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
-</PRE><H3><a name="h3-tset---initialization">tset - initialization</a></H3><PRE>
+</PRE><H3><a name="h3-tset----initialization"><EM>tset</EM> -- initialization</a></H3><PRE>
This program initializes terminals.
First, <STRONG>tset</STRONG> retrieves the current terminal mode settings for your
1. The <STRONG>terminal</STRONG> argument specified on the command line.
- 2. The value of the <EM>TERM</EM> environmental variable.
+ 2. The value of the <EM>TERM</EM> environment variable.
3. (BSD systems only.) The terminal type associated with the standard
error output device in the <EM>/etc/ttys</EM> file. (On System V hosts and
- systems using that convention, <STRONG>getty(1)</STRONG> does this job by setting <EM>TERM</EM>
+ systems using that convention, <STRONG>getty(8)</STRONG> does this job by setting <EM>TERM</EM>
according to the type passed to it by <EM>/etc/inittab</EM>.)
4. The default terminal type, "unknown", is not suitable for curses
displayed to the standard error output.
-</PRE><H3><a name="h3-reset---reinitialization">reset - reinitialization</a></H3><PRE>
+</PRE><H3><a name="h3-reset----reinitialization"><EM>reset</EM> -- reinitialization</a></H3><PRE>
When invoked as <STRONG>reset</STRONG>, <STRONG>tset</STRONG> sets the terminal modes to "sane" values:
<STRONG>o</STRONG> sets cooked and echo modes,
When the <STRONG>-s</STRONG> option is specified, the commands to enter the information
into the shell's environment are written to the standard output. If
- the <EM>SHELL</EM> environmental variable ends in "csh", the commands are for
- <STRONG>csh</STRONG>, otherwise, they are for <STRONG>sh(1)</STRONG>. Note, the <STRONG>csh</STRONG> commands set and
- unset the shell variable <STRONG>noglob</STRONG>, leaving it unset. The following line
- in the <STRONG>.login</STRONG> or <STRONG>.profile</STRONG> files will initialize the environment
- correctly:
+ the <EM>SHELL</EM> environment variable ends in "csh", the commands are for
+ <STRONG>csh(1)</STRONG>, otherwise, they are for <STRONG>sh(1)</STRONG>. The <EM>csh</EM> commands set and unset
+ the shell variable <STRONG>noglob</STRONG>, leaving it unset. The following line in the
+ <STRONG>.login</STRONG> or <STRONG>.profile</STRONG> files will initialize the environment correctly:
eval `tset -s options ... `
</PRE><H3><a name="h3-Terminal-Type-Mapping">Terminal Type Mapping</a></H3><PRE>
- When the terminal is not hardwired into the system (or the current
- system information is incorrect) the terminal type derived from the
- <EM>/etc/ttys</EM> file or the <EM>TERM</EM> environmental variable is often something
- generic like <STRONG>network</STRONG>, <STRONG>dialup</STRONG>, or <STRONG>unknown</STRONG>. When <STRONG>tset</STRONG> is used in a
- startup script it is often desirable to provide information about the
+ When the terminal is not hardwired into the system (or the current
+ system information is incorrect) the terminal type derived from the
+ <EM>/etc/ttys</EM> file or the <EM>TERM</EM> environment variable is often something
+ generic like <STRONG>network</STRONG>, <STRONG>dialup</STRONG>, or <STRONG>unknown</STRONG>. When <STRONG>tset</STRONG> is used in a
+ startup script it is often desirable to provide information about the
type of terminal used on such ports.
- The <STRONG>-m</STRONG> options maps from some set of conditions to a terminal type,
+ The <STRONG>-m</STRONG> options maps from some set of conditions to a terminal type,
that is, to tell <STRONG>tset</STRONG> "If I'm on this port at a particular speed, guess
that I'm on that kind of terminal".
- The argument to the <STRONG>-m</STRONG> option consists of an optional port type, an
- optional operator, an optional baud rate specification, an optional
- colon (":") character and a terminal type. The port type is a string
- (delimited by either the operator or the colon character). The
- operator may be any combination of ">", "<", "@", and "!"; ">" means
- greater than, "<" means less than, "@" means equal to and "!" inverts
- the sense of the test. The baud rate is specified as a number and is
- compared with the speed of the standard error output (which should be
+ The argument to the <STRONG>-m</STRONG> option consists of an optional port type, an
+ optional operator, an optional baud rate specification, an optional
+ colon (":") character and a terminal type. The port type is a string
+ (delimited by either the operator or the colon character). The
+ operator may be any combination of ">", "<", "@", and "!"; ">" means
+ greater than, "<" means less than, "@" means equal to and "!" inverts
+ the sense of the test. The baud rate is specified as a number and is
+ compared with the speed of the standard error output (which should be
the control terminal). The terminal type is a string.
- If the terminal type is not specified on the command line, the <STRONG>-m</STRONG>
- mappings are applied to the terminal type. If the port type and baud
- rate match the mapping, the terminal type specified in the mapping
- replaces the current type. If more than one mapping is specified, the
+ If the terminal type is not specified on the command line, the <STRONG>-m</STRONG>
+ mappings are applied to the terminal type. If the port type and baud
+ rate match the mapping, the terminal type specified in the mapping
+ replaces the current type. If more than one mapping is specified, the
first applicable mapping is used.
- For example, consider the following mapping: <STRONG>dialup>9600:vt100</STRONG>. The
+ For example, consider the following mapping: <STRONG>dialup>9600:vt100</STRONG>. The
port type is dialup , the operator is >, the baud rate specification is
9600, and the terminal type is vt100. The result of this mapping is to
- specify that if the terminal type is <STRONG>dialup</STRONG>, and the baud rate is
+ specify that if the terminal type is <STRONG>dialup</STRONG>, and the baud rate is
greater than 9600 baud, a terminal type of <STRONG>vt100</STRONG> will be used.
- If no baud rate is specified, the terminal type will match any baud
- rate. If no port type is specified, the terminal type will match any
- port type. For example, <STRONG>-m</STRONG> <STRONG>dialup:vt100</STRONG> <STRONG>-m</STRONG> <STRONG>:?xterm</STRONG> will cause any
+ If no baud rate is specified, the terminal type will match any baud
+ rate. If no port type is specified, the terminal type will match any
+ port type. For example, <STRONG>-m</STRONG> <STRONG>dialup:vt100</STRONG> <STRONG>-m</STRONG> <STRONG>:?xterm</STRONG> will cause any
dialup port, regardless of baud rate, to match the terminal type vt100,
- and any non-dialup port type to match the terminal type ?xterm. Note,
- because of the leading question mark, the user will be queried on a
+ and any non-dialup port type to match the terminal type ?xterm. Note,
+ because of the leading question mark, the user will be queried on a
default port as to whether they are actually using an xterm terminal.
- No whitespace characters are permitted in the <STRONG>-m</STRONG> option argument.
- Also, to avoid problems with meta-characters, it is suggested that the
+ No whitespace characters are permitted in the <STRONG>-m</STRONG> option argument.
+ Also, to avoid problems with meta-characters, it is suggested that the
entire <STRONG>-m</STRONG> option argument be placed within single quote characters, and
- that <STRONG>csh</STRONG> users insert a backslash character ("\") before any
+ that <EM>csh</EM> users insert a backslash character ("\") before any
exclamation marks ("!").
<STRONG>-e</STRONG> <EM>ch</EM>
Set the erase character to <EM>ch</EM>.
- <STRONG>-I</STRONG> Do not send the terminal or tab initialization strings to the
+ <STRONG>-I</STRONG> Do not send the terminal or tab initialization strings to the
terminal.
<STRONG>-i</STRONG> <EM>ch</EM>
Set the line kill character to <EM>ch</EM>.
<STRONG>-m</STRONG> <EM>mapping</EM>
- Specify a mapping from a port type to a terminal; see subsection
+ Specify a mapping from a port type to a terminal; see subsection
"Terminal Type Mapping".
- <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt and line kill
- characters. Normally <STRONG>tset</STRONG> displays the values for control
+ <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt and line kill
+ characters. Normally <STRONG>tset</STRONG> displays the values for control
characters which differ from the system's default values.
- <STRONG>-q</STRONG> The terminal type is displayed to the standard output, and the
- terminal is not initialized in any way. The option "-" by itself
+ <STRONG>-q</STRONG> The terminal type is displayed to the standard output, and the
+ terminal is not initialized in any way. The option "-" by itself
is equivalent but archaic.
<STRONG>-r</STRONG> Print the terminal type to the standard error output.
<STRONG>-s</STRONG> Print the sequence of shell commands to initialize the environment
- variable <EM>TERM</EM> to the standard output; see subsection "Setting the
+ variable <EM>TERM</EM> to the standard output; see subsection "Setting the
Environment".
<STRONG>-V</STRONG> reports the version of <EM>ncurses</EM> which was used in this program, and
exits.
- <STRONG>-w</STRONG> Resize the window to match the size deduced via <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>.
- Normally this has no effect, unless <STRONG>setupterm</STRONG> is not able to
+ <STRONG>-w</STRONG> Resize the window to match the size deduced via <STRONG><A HREF="curs_terminfo.3x.html">setupterm(3x)</A></STRONG>.
+ Normally this has no effect, unless <STRONG>setupterm</STRONG> is not able to
detect the window size.
- The arguments for the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options may either be entered as
- actual characters or by using the "hat" notation, i.e., control-h may
+ The arguments for the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options may either be entered as
+ actual characters or by using the "hat" notation, i.e., control-h may
be specified as "^H" or "^h".
If neither <STRONG>-c</STRONG> or <STRONG>-w</STRONG> is given, both options are assumed.
The <STRONG>tset</STRONG> command uses these environment variables:
<EM>SHELL</EM>
- tells <STRONG>tset</STRONG> whether to initialize <EM>TERM</EM> using <STRONG>sh(1)</STRONG> or <STRONG>csh(1)</STRONG>
+ tells <STRONG>tset</STRONG> whether to initialize <EM>TERM</EM> using <STRONG>sh(1)</STRONG> or <STRONG>csh(1)</STRONG>
syntax.
- <EM>TERM</EM> Denotes your terminal type. Each terminal type is distinct,
+ <EM>TERM</EM> Denotes your terminal type. Each terminal type is distinct,
though many are similar.
<EM>TERMCAP</EM>
- may denote the location of a termcap database. If it is not an
- absolute pathname, e.g., begins with a "/", <STRONG>tset</STRONG> removes the
- variable from the environment before looking for the terminal
+ may denote the location of a termcap database. If it is not an
+ absolute pathname, e.g., begins with a "/", <STRONG>tset</STRONG> removes the
+ variable from the environment before looking for the terminal
description.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
+ Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
(POSIX.1-2008) nor X/Open Curses Issue 7 documents <STRONG>tset</STRONG> or <STRONG>reset</STRONG>.
- The AT&T <STRONG>tput</STRONG> utility (AIX, HP-UX, Solaris) incorporated the terminal-
- mode manipulation as well as termcap-based features such as resetting
- tabstops from <STRONG>tset</STRONG> in BSD (4.1c), presumably with the intention of
- making <STRONG>tset</STRONG> obsolete. However, each of those systems still provides
- <STRONG>tset</STRONG>. In fact, the commonly-used <STRONG>reset</STRONG> utility is always an alias for
+ The AT&T <STRONG>tput</STRONG> utility (AIX, HP-UX, Solaris) incorporated the terminal-
+ mode manipulation as well as termcap-based features such as resetting
+ tabstops from <STRONG>tset</STRONG> in BSD (4.1c), presumably with the intention of
+ making <STRONG>tset</STRONG> obsolete. However, each of those systems still provides
+ <STRONG>tset</STRONG>. In fact, the commonly-used <STRONG>reset</STRONG> utility is always an alias for
<STRONG>tset</STRONG>.
The <STRONG>tset</STRONG> utility provides backward compatibility with BSD environments;
- under most modern Unices, <EM>/etc/inittab</EM> and <STRONG>getty(1)</STRONG> can set <EM>TERM</EM>
- appropriately for each dial-up line, obviating what was <STRONG>tset</STRONG>'s most
- important use. This implementation behaves like 4.4BSD <STRONG>tset</STRONG>, with a
+ under most modern Unices, <EM>/etc/inittab</EM> and <STRONG>getty(8)</STRONG> can set <EM>TERM</EM>
+ appropriately for each dial-up line, obviating what was <STRONG>tset</STRONG>'s most
+ important use. This implementation behaves like 4.4BSD <STRONG>tset</STRONG>, with a
few exceptions we shall consider now.
- A few options are different because the <EM>TERMCAP</EM> variable is no longer
+ A few options are different because the <EM>TERMCAP</EM> variable is no longer
supported under terminfo-based <EM>ncurses</EM>:
- <STRONG>o</STRONG> The <STRONG>-S</STRONG> option of BSD <STRONG>tset</STRONG> no longer works; it prints an error
+ <STRONG>o</STRONG> The <STRONG>-S</STRONG> option of BSD <STRONG>tset</STRONG> no longer works; it prints an error
message to the standard error and dies.
<STRONG>o</STRONG> The <STRONG>-s</STRONG> option only sets <EM>TERM</EM>, not <EM>TERMCAP</EM>.
- There was an undocumented 4.4BSD feature that invoking <STRONG>tset</STRONG> via a link
- named "TSET" (or via any other name beginning with an upper-case
+ There was an undocumented 4.4BSD feature that invoking <STRONG>tset</STRONG> via a link
+ named "TSET" (or via any other name beginning with an upper-case
letter) set the terminal to use upper-case only. This feature has been
omitted.
The <STRONG>-A</STRONG>, <STRONG>-E</STRONG>, <STRONG>-h</STRONG>, <STRONG>-u</STRONG> and <STRONG>-v</STRONG> options were deleted from the <STRONG>tset</STRONG> utility in
- 4.4BSD. None of them were documented in 4.3BSD and all are of limited
- utility at best. The <STRONG>-a</STRONG>, <STRONG>-d</STRONG>, and <STRONG>-p</STRONG> options are similarly not
- documented or useful, but were retained as they appear to be in
- widespread use. It is strongly recommended that any usage of these
+ 4.4BSD. None of them were documented in 4.3BSD and all are of limited
+ utility at best. The <STRONG>-a</STRONG>, <STRONG>-d</STRONG>, and <STRONG>-p</STRONG> options are similarly not
+ documented or useful, but were retained as they appear to be in
+ widespread use. It is strongly recommended that any usage of these
three options be changed to use the <STRONG>-m</STRONG> option instead. The <STRONG>-a</STRONG>, <STRONG>-d</STRONG>, and
<STRONG>-p</STRONG> options are therefore omitted from the usage summary above.
- Very old systems, e.g., 3BSD, used a different terminal driver which
- was replaced in 4BSD in the early 1980s. To accommodate these older
- systems, the 4BSD <STRONG>tset</STRONG> provided a <STRONG>-n</STRONG> option to specify that the new
- terminal driver should be used. This implementation does not provide
+ Very old systems, e.g., 3BSD, used a different terminal driver which
+ was replaced in 4BSD in the early 1980s. To accommodate these older
+ systems, the 4BSD <STRONG>tset</STRONG> provided a <STRONG>-n</STRONG> option to specify that the new
+ terminal driver should be used. This implementation does not provide
that choice.
- It is still permissible to specify the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options without
+ It is still permissible to specify the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options without
arguments, although it is strongly recommended that such usage be fixed
to explicitly specify the character.
- As of 4.4BSD, executing <STRONG>tset</STRONG> as <STRONG>reset</STRONG> no longer implies the <STRONG>-Q</STRONG> option.
+ As of 4.4BSD, executing <STRONG>tset</STRONG> as <STRONG>reset</STRONG> no longer implies the <STRONG>-Q</STRONG> option.
Also, the interaction between the - option and the <EM>terminal</EM> argument in
some historic implementations of <STRONG>tset</STRONG> has been removed.
- The <STRONG>-c</STRONG> and <STRONG>-w</STRONG> options are not found in earlier implementations.
+ The <STRONG>-c</STRONG> and <STRONG>-w</STRONG> options are not found in earlier implementations.
However, a different window size-change feature was provided in 4.4BSD.
- <STRONG>o</STRONG> In 4.4BSD, <STRONG>tset</STRONG> uses the window size from the termcap description
- to set the window size if <STRONG>tset</STRONG> is not able to obtain the window
+ <STRONG>o</STRONG> In 4.4BSD, <STRONG>tset</STRONG> uses the window size from the termcap description
+ to set the window size if <STRONG>tset</STRONG> is not able to obtain the window
size from the operating system.
<STRONG>o</STRONG> In <EM>ncurses</EM>, <STRONG>tset</STRONG> obtains the window size using <STRONG>setupterm</STRONG>, which may
- be from the operating system, the <EM>LINES</EM> and <EM>COLUMNS</EM> environment
+ be from the operating system, the <EM>LINES</EM> and <EM>COLUMNS</EM> environment
variables or the terminal description.
- Obtaining the window size from the terminal description is common to
- both implementations, but considered obsolescent. Its only practical
+ Obtaining the window size from the terminal description is common to
+ both implementations, but considered obsolescent. Its only practical
use is for hardware terminals. Generally speaking, a window size would
- be unset only if there were some problem obtaining the value from the
- operating system (and <STRONG>setupterm</STRONG> would still fail). For that reason,
- the <EM>LINES</EM> and <EM>COLUMNS</EM> environment variables may be useful for working
- around window-size problems. Those have the drawback that if the
- window is resized, those variables must be recomputed and reassigned.
+ be unset only if there were some problem obtaining the value from the
+ operating system (and <STRONG>setupterm</STRONG> would still fail). For that reason,
+ the <EM>LINES</EM> and <EM>COLUMNS</EM> environment variables may be useful for working
+ around window-size problems. Those have the drawback that if the
+ window is resized, those variables must be recomputed and reassigned.
To do this more easily, use the <STRONG>resize(1)</STRONG> program.
</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- A <STRONG>reset</STRONG> command written by Kurt Shoens appeared in 1BSD (March 1978).
+ A <STRONG>reset</STRONG> command written by Kurt Shoens appeared in 1BSD (March 1978).
It set the <EM>erase</EM> and <EM>kill</EM> characters to <STRONG>^H</STRONG> (backspace) and <STRONG>@</STRONG>
- respectively. Mark Horton improved this <STRONG>reset</STRONG> in 3BSD (October 1979),
- adding <EM>intr</EM>, <EM>quit</EM>, <EM>start</EM>/<EM>stop</EM>, and <EM>eof</EM> characters as well as changing
- the program to avoid modifying any user settings. That version of
+ respectively. Mark Horton improved this <STRONG>reset</STRONG> in 3BSD (October 1979),
+ adding <EM>intr</EM>, <EM>quit</EM>, <EM>start</EM>/<EM>stop</EM>, and <EM>eof</EM> characters as well as changing
+ the program to avoid modifying any user settings. That version of
<STRONG>reset</STRONG> did not use <EM>termcap</EM>.
- Eric Allman wrote a distinct <STRONG>tset</STRONG> command for 1BSD, using a forerunner
- of <EM>termcap</EM> called <EM>ttycap</EM>. Allman's comments in the source code
- indicate that he began work in October 1977, continuing development
- over the next few years. By late 1979, it had migrated to <EM>termcap</EM> and
- handled the <EM>TERMCAP</EM> variable. Later comments indicate that <STRONG>tset</STRONG> was
- modified in September 1980 to use logic copied from the 3BSD "reset"
- program when it was invoked as <STRONG>reset</STRONG>. This version appeared in
- 4.1cBSD, late in 1982. Other developers such as Keith Bostic and Jim
+ Eric Allman wrote a distinct <STRONG>tset</STRONG> command for 1BSD, using a forerunner
+ of <EM>termcap</EM> called <EM>ttycap</EM>. Allman's comments in the source code
+ indicate that he began work in October 1977, continuing development
+ over the next few years. By late 1979, it had migrated to <EM>termcap</EM> and
+ handled the <EM>TERMCAP</EM> variable. Later comments indicate that <STRONG>tset</STRONG> was
+ modified in September 1980 to use logic copied from the 3BSD "reset"
+ program when it was invoked as <STRONG>reset</STRONG>. This version appeared in
+ 4.1cBSD, late in 1982. Other developers such as Keith Bostic and Jim
Bloom continued to modify <STRONG>tset</STRONG> until 4.4BSD was released in 1993.
- The <EM>ncurses</EM> implementation was lightly adapted from the 4.4BSD sources
+ The <EM>ncurses</EM> implementation was lightly adapted from the 4.4BSD sources
to use the <EM>terminfo</EM> API by Eric S. Raymond <esr@snark.thyrsus.com>.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG>csh(1)</STRONG>, <STRONG>sh(1)</STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG>tty(4)</STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
+ <STRONG>csh(1)</STRONG>, <STRONG>sh(1)</STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG>tty(4)</STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
<STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
-ncurses 6.4 2023-12-16 <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
-<li><a href="#h3-tset---initialization">tset - initialization</a></li>
-<li><a href="#h3-reset---reinitialization">reset - reinitialization</a></li>
+<li><a href="#h3-tset----initialization">tset -- initialization</a></li>
+<li><a href="#h3-reset----reinitialization">reset -- reinitialization</a></li>
<li><a href="#h3-Setting-the-Environment">Setting the Environment</a></li>
<li><a href="#h3-Terminal-Type-Mapping">Terminal Type Mapping</a></li>
</ul>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: user_caps.5,v 1.42 2023/12/16 20:32:22 tom Exp @
+ * @Id: user_caps.5,v 1.43 2023/12/23 16:08: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>user_caps 5 2023-12-16 ncurses 6.4 File formats</TITLE>
+<TITLE>user_caps 5 2023-12-23 ncurses 6.4 File formats</TITLE>
<link rel="author" href="mailto:bug-ncurses@gnu.org">
</HEAD>
<BODY>
-<H1 class="no-header">user_caps 5 2023-12-16 ncurses 6.4 File formats</H1>
+<H1 class="no-header">user_caps 5 2023-12-23 ncurses 6.4 File formats</H1>
<PRE>
<STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG> File formats <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
terminfo.
-</PRE><H3><a name="h3-Recognized-capabilities">Recognized capabilities</a></H3><PRE>
+</PRE><H3><a name="h3-Recognized-Capabilities">Recognized Capabilities</a></H3><PRE>
The <EM>ncurses</EM> library uses the user-definable capabilities. While the
terminfo database may have other extensions, <EM>ncurses</EM> makes explicit
checks for these:
%?%p4%tM%em%;,
-</PRE><H3><a name="h3-Extended-key-definitions">Extended key-definitions</a></H3><PRE>
+</PRE><H3><a name="h3-Extended-Key-Definitions">Extended Key Definitions</a></H3><PRE>
Several terminals provide the ability to send distinct strings for
combinations of modified special keys. There is no standard for what
those keys can send.
-ncurses 6.4 2023-12-16 <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
+ncurses 6.4 2023-12-23 <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>
</PRE>
<div class="nav">
<ul>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
<ul>
<li><a href="#h3-Background">Background</a></li>
-<li><a href="#h3-Recognized-capabilities">Recognized capabilities</a></li>
-<li><a href="#h3-Extended-key-definitions">Extended key-definitions</a></li>
+<li><a href="#h3-Recognized-Capabilities">Recognized Capabilities</a></li>
+<li><a href="#h3-Extended-Key-Definitions">Extended Key Definitions</a></li>
</ul>
</li>
<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: MKncu_config.in,v 1.20 2023/12/16 21:43:05 tom Exp $
-.TH @LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config 1 2023-12-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.\" $Id: MKncu_config.in,v 1.22 2023/12/23 23:44:26 tom Exp $
+.TH @LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config 1 2023-12-23 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
.SH NAME
\fB\%@LIB_NAME@@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config\fP \-
configuration helper for \fI\%ncurses\fP libraries
\fB\-\-libs\fP
reports the libraries needed to link with \fI\%ncurses\fP.
.TP
-\fB\-\-version\fP
-reports the release and patch date information of \fI\%ncurses\fP and
-exits successfully.
-.TP
\fB\-\-abi\-version\fP
reports the ABI version of \fI\%ncurses\fP.
.TP
reports the \fI\%TERMPATH\fP supplemental search path for the
\fItermcap\fP database,
if support for \fItermcap\fP is configured.
-.TP
+.PP
+The following options cause all others to be ignored.
+.TP 11 .\" "--version" + 2n
\fB\-\-help\fP
issues a usage message and exits successfully.
+.TP
+\fB\-\-version\fP
+issues the release and patch date information of \fI\%ncurses\fP and
+exits successfully.
.SH "SEE ALSO"
\fB\%curses\fP(3X)
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: captoinfo.1m,v 1.57 2023/12/16 21:34:23 tom Exp $
-.TH @CAPTOINFO@ 1M 2023-12-16 "ncurses 6.4" "User commands"
+.\" $Id: captoinfo.1m,v 1.58 2023/12/23 16:28:31 tom Exp $
+.TH @CAPTOINFO@ 1M 2023-12-23 "ncurses 6.4" "User commands"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.ie t .ds '' ''
.el .ds '' ""
.\}
-.
-.ds d /etc/termcap
.SH NAME
\fB\%@CAPTOINFO@\fP \-
convert a \fItermcap\fP description into a \fI\%term\%info\fP description
and extracts only the entry for the terminal named in the environment
variable \fITERM\fP from it.
If the environment variable \fI\%TERMCAP\fP is not set,
-\fB\%@CAPTOINFO@\fP reads \fI\%\*d\fP.
+\fB\%@CAPTOINFO@\fP reads
+.I \%/etc/termcap.
.PP
This utility is implemented as a link to \fB\%@TIC@\fP(1M),
with the latter's
.BR \-x .
The \fB\-V\fP option reports the version of \fI\%ncurses\fP associated
with this program and exits with a successful status.
-.SS "Translations from nonstandard capabilities"
+.SS "Translations from Nonstandard Capabilities"
\fB\%@CAPTOINFO@\fP translates some obsolete,
nonstandard capabilities into standard
(SVr4/XSI Curses)
\fB\%@CAPTOINFO@\fP discards these with a warning message.
.SH FILES
.TP
-.I \*d
+.I /etc/termcap
default \fI\%termcap\fP terminal capability database
.SH PORTABILITY
X/Open Curses,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_add_wch.3x,v 1.49 2023/12/16 21:19:37 tom Exp $
-.TH curs_add_wch 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_add_wch.3x,v 1.50 2023/12/23 16:08:25 tom Exp $
+.TH curs_add_wch 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
that only a single character is being output is taken into consideration and,
for non-control characters, a considerable performance gain might be seen
by using the *\fBecho\fP* functions instead of their equivalents.
-.SS Line Graphics
+.SS "Line Graphics"
Like \fB\%addch\fP(3X),
\fBaddch_wch\fP accepts symbols which make it simple to draw lines and other
frequently used special characters.
.SH PORTABILITY
These functions are described in the XSI Curses standard, Issue 4.
The defaults specified for line-drawing characters apply in the POSIX locale.
-.SS WACS Symbols
+.SS "WACS Symbols"
X/Open Curses makes it clear that the WACS_ symbols should be defined as
a pointer to \fBcchar_t\fP data, e.g., in the discussion of \fBborder_set\fP.
A few implementations are problematic:
\[u2327] U+2327 (x in a rectangle),
\[u256C] U+256C (forms double vertical and horizontal), and
\[u2612] U+2612 (ballot box with x).
-.SS Complex Characters
+.SS "Complex Characters"
The complex character type \fBcchar_t\fR
can store more than one wide character (\fBwchar_t\fR).
The X/Open Curses description does not mention this possibility,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addch.3x,v 1.75 2023/12/16 21:19:37 tom Exp $
-.TH curs_addch 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_addch.3x,v 1.76 2023/12/23 16:27:51 tom Exp $
+.TH curs_addch 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
\fBint wechochar(WINDOW *\fIwin\fP, const chtype \fIch\fP);
.fi
.SH DESCRIPTION
-.SS Adding characters
+.SS "Adding Characters"
The \fBaddch\fP, \fBwaddch\fP, \fBmvaddch\fP and \fBmvwaddch\fP routines put
the character \fIch\fP into the given window at its current window position,
which is then advanced.
-They are analogous to \fBputchar\fP(3) in \fBstdio\fP(3).
+They are analogous to the standard C library's \fI\%putchar\fP(3).
If the advance is at the right margin:
.bP
The cursor automatically wraps to the beginning of the next line.
using \fB\%inch\fP(3X) and \fBaddch\fP.)
See the \fB\%curs_attr\fP(3X) page for values of predefined video
attribute constants that can be usefully OR'ed into characters.
-.SS Echoing characters
+.SS "Echoing Characters"
The \fBechochar\fP and \fBwechochar\fP routines are equivalent to a call to
\fBaddch\fP followed by a call to \fB\%refresh\fP(3X), or a call to \fBwaddch\fP
followed by a call to \fBwrefresh\fP.
character is being output is used and, for non-control characters, a
considerable performance gain may be seen by using these routines instead of
their equivalents.
-.SS Line Graphics
+.SS "Line Graphics"
The following variables may be used to add line drawing characters to the
screen with routines of the \fBaddch\fP family.
The default character listed
.SH PORTABILITY
These functions are described in the XSI Curses standard, Issue 4.
The defaults specified for forms-drawing characters apply in the POSIX locale.
-.SS ACS Symbols
+.SS "ACS Symbols"
X/Open Curses states that the \fBACS_\fP definitions are \fBchar\fP constants.
For the wide-character implementation (see \fBcurs_add_wch\fP),
there are analogous \fBWACS_\fP definitions which are \fBcchar_t\fP constants.
except by using UTF-8
(see the discussion of \fB\%NCURSES_NO_UTF8_ACS\fP in
\fB\%ncurses\fP(3X)).
-.SS Character Set
+.SS "Character Set"
X/Open Curses assumes that the parameter passed to \fBwaddch\fP contains
a single character.
As discussed in \fB\%curs_attr\fP(3X), that character may have been
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_attr.3x,v 1.92 2023/12/16 21:07:24 tom Exp $
-.TH curs_attr 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_attr.3x,v 1.93 2023/12/23 16:08:25 tom Exp $
+.TH curs_attr 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
See \fBcurs_bkgd\fP(3X) for functions which modify the attributes used for
erasing and clearing.
.\" ---------------------------------------------------------------------------
-.SS Window attributes
+.SS "Window Attributes"
There are two sets of functions:
.bP
functions for manipulating the window attributes and color:
again values OR'd together in \fIattr\fP,
without affecting other attributes.
.\" ---------------------------------------------------------------------------
-.SS Legacy window attributes
+.SS "Legacy Window Attributes"
The X/Open window attribute routines which \fIset\fP or \fIget\fP,
turn \fIon\fP or \fIoff\fP
are extensions of older routines
although \fI\%ncurses\fP provides \fB\%getattrs\fP
(see \fB\%curs_legacy\fP(3X)).
.\" ---------------------------------------------------------------------------
-.SS Change character rendition
+.SS "Change Character Rendition"
The routine \fBchgat\fP changes the attributes of a given number of characters
starting at the current cursor location of \fBstdscr\fP.
It does not update
the color \fIpair\fP argument is a color pair index
(as in the first argument of \fBinit_pair\fP, see \fBcurs_color\fP(3X)).
.\" ---------------------------------------------------------------------------
-.SS Change window color
+.SS "Change Window Color"
The routine \fBcolor_set\fP sets the current color of the given window to the
foreground/background combination described by the color \fIpair\fP parameter.
.\" ---------------------------------------------------------------------------
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_bkgd.3x,v 1.54 2023/12/17 23:31:28 tom Exp $
-.TH curs_bkgd 3X 2023-12-17 "ncurses 6.4" "Library calls"
+.\" $Id: curs_bkgd.3x,v 1.55 2023/12/23 16:35:10 tom Exp $
+.TH curs_bkgd 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
\fB\%getbkgd\fP behaves as one would expect \fB\%wgetbkgd\fP to,
accepting a \fI\%WINDOW\fP pointer argument.
.PP
-\fB\%bkgd\fP and \fB\%bkgdset\fP may be available as macros.
+\fB\%bkgd\fP and
+\fB\%bkgdset\fP
+may be implemented as macros.
.PP
X/Open Curses mentions that the character part of the background must
be a single-byte value.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_bkgrnd.3x,v 1.35 2023/12/16 23:00:21 tom Exp $
-.TH curs_bkgrnd 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_bkgrnd.3x,v 1.36 2023/12/23 16:35:10 tom Exp $
+.TH curs_bkgrnd 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
\fB\%bkgrnd\fP,
\fB\%bkgrndset\fP, and
\fB\%getbkgrnd\fP
-may be available as macros.
+may be implemented as macros.
.PP
Unlike their counterparts in the non-\*(``wide\*('' configuration of
.I \%ncurses,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_color.3x,v 1.93 2023/12/16 21:07:24 tom Exp $
-.TH curs_color 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_color.3x,v 1.95 2023/12/23 20:18:13 tom Exp $
+.TH curs_color 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.nf
\fB#include <curses.h>
.PP
+\fI/* variables */
+\fBint COLOR_PAIRS;
+\fBint COLORS;
+.PP
\fBint start_color(void);
.PP
\fBbool has_colors(void);
.fi
.SH DESCRIPTION
.SS Overview
-\fIcurses\fP supports color attributes on terminals with that capability.
-To use these routines \fB\%start_color\fP must be called, usually right after
-\fB\%initscr\fP.
-Colors are always used in pairs (referred to as color pairs).
-A color pair consists of a foreground color (for characters) and a background
-color (for the blank field on which the characters are displayed).
-A programmer initializes a color pair with the routine \fB\%init_pair\fP.
-After it has been initialized, \fB\%COLOR_PAIR\fP(\fIn\fP)
-can be used to convert the pair to a video attribute.
-.PP
-If a terminal is capable of redefining colors, the programmer can use the
-routine \fB\%init_color\fP to change the definition of a color.
-The routines \fB\%has_colors\fP and \fB\%can_change_color\fP
+\fIcurses\fP supports color attributes on terminals with that
+capability.
+Call \fB\%start_color\fP
+(typically right after \fB\%initscr\fP(3X))
+to enable this feature.
+Colors are always used in pairs.
+A
+.I "color pair"
+couples a foreground color for characters with a background color for
+the blank field on which characters are rendered.
+\fB\%init_pair\fP initializes a color pair.
+The macro \fB\%COLOR_PAIR\fP(\fIn\fP) can then convert the pair to a
+video attribute.
+.PP
+If a terminal has the relevant capability,
+\fB\%init_color\fP permits (re)definition of a color.
+\fB\%has_colors\fP and \fB\%can_change_color\fP
return \fBTRUE\fP or \fBFALSE\fP,
-depending on whether the terminal has color capabilities and whether the
+depending on whether the terminal has color capability and whether the
programmer can change the colors.
-The routine \fB\%color_content\fP allows a
-programmer to extract the amounts of red, green, and blue components in an
-initialized color.
-The routine \fB\%pair_content\fP allows a programmer to find
-out how a given color pair is currently defined.
-.SS Color Rendering
-The \fIcurses\fP library combines these inputs to produce the
-actual foreground and background colors shown on the screen:
+\fB\%color_content\fP permits extraction of the
+red,
+green,
+and blue components of an initialized color.
+\fB\%pair_content\fP permits discovery of a color pair's current
+definition.
+.SS Rendering
+.I curses
+combines the following data to render a character cell.
+Any of them can include color information.
.bP
-per-character video attributes (e.g., via \fB\%waddch\fP),
+.I curses
+character attributes,
+as from \fB\%waddch\fP(3X) or \fB\%wadd_wch\fP(3X)
.bP
-the window attribute (e.g., by \fB\%wattrset\fP), and
+window attributes,
+as from \fB\%wattrset\fP(3X) or \fB\%wattr_set\fP(3X)
.bP
-the background character (e.g., \fB\%wbkgdset\fP).
+window background character atttributes,
+as from \fB\%wbkgdset\fP(3X) or \fB\%wbkgrndset\fP(3X)
.PP
-Per-character and window attributes are usually set by a parameter containing
-video attributes including a color pair value.
-Some functions such as \fB\%wattr_set\fP use a separate parameter which
-is the color pair number.
+Per-character and window attributes are usually set through a function
+parameter containing attributes including a color pair value.
+Some functions,
+such as \fB\%wattr_set\fP,
+use a separate color pair number parameter.
.PP
-The background character is a special case: it includes a character value,
+The background character is a special case:
+it includes a character code,
just as if it were passed to \fB\%waddch\fP.
.PP
The \fIcurses\fP library does the actual work of combining these color
is initialized by \fB\%start_color\fP to the maximum number of colors
the terminal can support.
.SS COLOR_PAIRS
-is initialized by \fB\%start_color\fP to the maximum number of color pairs
-the terminal can support.
+is initialized by \fB\%start_color\fP to the maximum number of color
+pairs the terminal can support.
+Often,
+its value is the product \fB\%COLORS\fP \(mu \fB\%COLORS\fP,
+but this is not always true.
+.bP
+A few terminals use the HLS color space
+(see \fB\%start_color\fP below),
+ignoring this rule;
+and
+.bP
+terminals supporting a large number of colors are limited to the number
+of color pairs that a
+.I "signed short"
+value can represent.
.SH FUNCTIONS
.SS start_color
The \fB\%start_color\fP routine requires no arguments.
.SH EXTENSIONS
The functions marked as extensions were designed for
\fB\%ncurses\fP(3X),
-and are not found in SVr4 curses, 4.4BSD curses,
-or any other previous version of curses.
+and are not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous curses implementation.
.SH PORTABILITY
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
+.PP
This implementation satisfies XSI Curses's minimum maximums
for \fB\%COLORS\fP and \fB\%COLOR_PAIRS\fP.
.PP
.PP
SVr4 made internal changes,
e.g., moving the storage for the color state
-from \fBSP\fP (the \fBSCREEN\fP structure)
-to \fB\%cur_term\fP (the \fB\%TERMINAL\fP structure),
+from \fBSP\fP (the \fISCREEN\fP structure)
+to \fB\%cur_term\fP (the \fI\%TERMINAL\fP structure),
but provided the same set of library functions.
.PP
SVr4 curses limits the number of color pairs to 64,
.\"
.\" Author: Thomas E. Dickey 1999-on
.\"
-.\" $Id: curs_extend.3x,v 1.43 2023/12/16 20:32:22 tom Exp $
-.TH curs_extend 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_extend.3x,v 1.44 2023/12/23 16:36:18 tom Exp $
+.TH curs_extend 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.PP
\fBuse_extended_names\fP returns the previous state, allowing you to
save this and restore it.
+.SH EXTENSIONS
+These functions are \fB\%ncurses\fP(3X) extensions,
+and are not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous curses implementation.
.SH PORTABILITY
-These routines are specific to \fI\%ncurses\fP.
-They were not supported on
-Version 7, BSD or System V implementations.
-It is recommended that
-any code depending on them be conditioned using NCURSES_VERSION.
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
.SH AUTHORS
Thomas Dickey.
.SH SEE ALSO
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_get_wch.3x,v 1.30 2023/11/25 13:58:47 tom Exp $
-.TH curs_get_wch 3X 2023-11-25 "ncurses 6.4" "Library calls"
+.\" $Id: curs_get_wch.3x,v 1.31 2023/12/23 16:35:10 tom Exp $
+.TH curs_get_wch 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
Depending on the state of the tty driver when each character
is typed, the program may produce undesirable results.
.PP
-All of these symbols except
+All of these functions except
\fB\%wget_wch\fP and
\fB\%unget_wch\fP
-may be available as macros.
+may be implemented as macros.
.SH PORTABILITY
These functions are described in the XSI Curses standard, Issue 4.
.SH SEE ALSO
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getch.3x,v 1.76 2023/12/16 21:01:28 tom Exp $
-.TH curs_getch 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_getch.3x,v 1.77 2023/12/23 16:36:18 tom Exp $
+.TH curs_getch 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.B int has_key(int \fIch\fP);
.fi
.SH DESCRIPTION
-.SS Reading characters
+.SS "Reading Characters"
The \fBgetch\fP, \fBwgetch\fP, \fBmvgetch\fP and \fBmvwgetch\fP, routines read
a character from the window.
In no-delay mode, if no input is waiting, the value \fBERR\fP is returned.
If the window is not a pad, and it has been moved or modified since the last
call to \fBwrefresh\fP, \fBwrefresh\fP will be called before another character
is read.
-.SS Keypad mode
+.SS "Keypad Mode"
If \fBkeypad\fP is \fBTRUE\fP, and a function key is pressed, the token for
that function key is returned instead of the raw characters:
.bP
Because function keys usually begin with an escape character,
the terminal may appear to hang in notimeout mode after pressing the escape key
until another key is pressed.
-.SS Ungetting characters
+.SS "Ungetting Characters"
The \fBungetch\fP routine places \fIch\fP back onto the input queue to be
returned by the next call to \fBwgetch\fP.
There is just one input queue for all windows.
-.SS Predefined key-codes
+.SS "Predefined Key Codes"
The following special keys are defined in \fB<curses.h>\fP.
.bP
Except for the special case \fBKEY_RESIZE\fP,
with \fBxterm\fP(1) mouse prototocol)
\fI\%ncurses\fP must read escape sequences,
just like a function key.
-.SS Testing key-codes
+.SS "Testing Key Codes"
The \fBhas_key\fP routine takes a key-code value from the above list, and
returns \fBTRUE\fP or \fBFALSE\fP according to whether
the current terminal type recognizes a key with that value.
\fBKEY_NPAGE\fP, \fBKEY_PPAGE\fP, and function keys 1 through 12.
The Ins key
is usually mapped to \fBKEY_IC\fP.
+.SH EXTENSIONS
+\fB\%has_key\fP was designed for \fB\%ncurses\fP(3X),
+and is not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous curses implementation.
.SH PORTABILITY
-The *get* functions are described in the XSI Curses standard, Issue 4.
-They
-read single-byte characters only.
-The standard specifies that they return
-\fBERR\fP on failure, but specifies no error conditions.
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
.PP
-The echo behavior of these functions on input of \fBKEY_\fP or backspace
-characters was not specified in the SVr4 documentation.
-This description is
-adopted from the XSI Curses standard.
+X/Open Curses, Issue 4, Version 2, describes
+\fB\%getch\fP,
+\fB\%wgetch\fP,
+\fB\%mvgetch\fP,
+\fB\%mvwgetch\fP,
+and
+\fB\%ungetch\fP.
+They read single-byte characters only.
+The standard specifies that they return \fBERR\fP on failure,
+but describes no failure conditions.
.PP
-The behavior of \fBgetch\fP and friends in the presence of handled signals is
-unspecified in the SVr4 and XSI Curses documentation.
-Under historical curses
-implementations, it varied depending on whether the operating system's
-implementation of handled signal receipt interrupts a \fBread\fP(2) call in
-progress or not, and also (in some implementations) depending on whether an
-input timeout or non-blocking mode has been set.
+The echo behavior of these functions on input of
+.B KEY_
+or backspace characters was not specified in the SVr4 documentation.
+This description is adapted from X/Open Curses.
.PP
-\fBKEY_MOUSE\fP is mentioned in XSI Curses, along with a few related
-terminfo capabilities, but no higher-level functions use the feature.
-The implementation in \fI\%ncurses\fP is an extension.
+The behavior of \fBgetch\fP and friends in the presence of signal
+handlers is unspecified in the SVr4 documentation and X/Open Curses.
+Under historical curses implementations,
+it varied depending on whether the operating system's dispatch of a
+signal to a handler interrupts a \fBread\fP(2) call in progress or not,
+and also
+(in some implementations)
+whether an input timeout or non-blocking mode has been set.
.PP
-\fBKEY_RESIZE\fP is an extension first implemented for \fI\%ncurses\fP.
-NetBSD curses later added this extension.
+.B KEY_MOUSE
+is mentioned in X/Open Curses,
+along with a few related
+.I \%term\%info
+capabilities,
+but no higher-level functions use the feature.
+The implementation in
+.I \%ncurses
+is an extension.
+.PP
+.B KEY_RESIZE
+is an extension first implemented for
+.I \%ncurses.
+NetBSD
+.I curses
+later added this extension.
.PP
Programmers concerned about portability should be prepared for either of two
cases: (a) signal receipt does not interrupt \fBgetch\fP; (b) signal receipt
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_initscr.3x,v 1.59 2023/12/17 23:56:04 tom Exp $
-.TH curs_initscr 3X 2023-12-17 "ncurses 6.4" "Library calls"
+.\" $Id: curs_initscr.3x,v 1.60 2023/12/23 16:27:25 tom Exp $
+.TH curs_initscr 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
\fBnewterm\fP.
.PP
The routine \fBnewterm\fP should be called once for each terminal.
-It returns a variable of type \fBSCREEN *\fP which should be saved
+It returns a variable of type \fISCREEN *\fP which should be saved
as a reference to that terminal.
\fBnewterm\fP's arguments are
.bP
If the \fItype\fP parameter is \fBNULL\fP, \fB$TERM\fP will be used.
.PP
The file descriptor of the output stream is passed to \fBsetupterm\fP(3X),
-which returns a pointer to a \fBTERMINAL\fP structure.
-\fBnewterm\fP's return value holds a pointer to the \fBTERMINAL\fP structure.
+which returns a pointer to a \fI\%TERMINAL\fP structure.
+\fBnewterm\fP's return value holds a pointer to the \fI\%TERMINAL\fP structure.
.SS endwin
The program must also call
\fBendwin\fP for each terminal being used before exiting from \fBcurses\fP.
The \fBset_term\fP routine is used to switch between different terminals.
The screen reference \fInew\fP becomes the new current terminal.
The previous terminal is returned by the routine.
-This is the only routine which manipulates \fBSCREEN\fP pointers;
+This is the only routine which manipulates \fISCREEN\fP pointers;
all other routines affect only the current terminal.
.SS delscreen
The \fBdelscreen\fP routine frees storage associated with the
-\fBSCREEN\fP data structure.
+\fISCREEN\fP data structure.
The \fBendwin\fP routine does not do
this, so \fBdelscreen\fP should be called after \fBendwin\fP if a
-particular \fBSCREEN\fP is no longer needed.
+particular \fISCREEN\fP is no longer needed.
.SH RETURN VALUE
\fBendwin\fP returns the integer \fBERR\fP upon failure and \fBOK\fP
upon successful completion.
.PP
Calling \fBendwin\fP does not dispose of the memory allocated in \fBinitscr\fP
or \fBnewterm\fP.
-Deleting a \fBSCREEN\fP provides a way to do this:
+Deleting a \fISCREEN\fP provides a way to do this:
.bP
-X/Open Curses does not say what happens to \fBWINDOW\fPs when \fBdelscreen\fP
-\*(``frees storage associated with the \fBSCREEN\fP\*(''
+X/Open Curses does not say what happens to \fI\%WINDOW\fPs when \fBdelscreen\fP
+\*(``frees storage associated with the \fISCREEN\fP\*(''
nor does the SVr4 documentation help,
-adding that it should be called after \fBendwin\fP if a \fBSCREEN\fP
+adding that it should be called after \fBendwin\fP if a \fISCREEN\fP
is no longer needed.
.bP
-However, \fBWINDOW\fPs are implicitly associated with a \fBSCREEN\fP.
+However, \fI\%WINDOW\fPs are implicitly associated with a \fISCREEN\fP.
so that it is reasonable to expect \fBdelscreen\fP to deal with these.
.bP
-SVr4 curses deletes the standard \fBWINDOW\fP structures
+SVr4 curses deletes the standard \fI\%WINDOW\fP structures
\fBstdscr\fP and \fBcurscr\fP as well as a work area \fBnewscr\fP.
SVr4 curses ignores other windows.
.bP
.bP
NetBSD copied this feature of \fI\%ncurses\fP in 2001.
PDCurses follows the SVr4 model,
-deleting only the standard \fBWINDOW\fP structures.
+deleting only the standard \fI\%WINDOW\fP structures.
.SS "High-level versus Low-level"
Different implementations may disagree regarding the level of some functions.
-For example, \fBSCREEN\fP (returned by \fBnewterm\fP) and
-\fBTERMINAL\fP (returned by \fBsetupterm\fP(3X)) hold file descriptors for
+For example, \fISCREEN\fP (returned by \fBnewterm\fP) and
+\fI\%TERMINAL\fP (returned by \fBsetupterm\fP(3X)) hold file descriptors for
the output stream.
If an application switches screens using \fBset_term\fR,
or switches terminals using \fBset_curterm\fP(3X),
.PP
For example
.bP
-NetBSD's \fBbaudrate\fP(3X) function uses the descriptor in \fBTERMINAL\fP.
-\fI\%ncurses\fP and SVr4 use the descriptor in \fBSCREEN\fP.
+NetBSD's \fBbaudrate\fP(3X) function uses the descriptor in \fI\%TERMINAL\fP.
+\fI\%ncurses\fP and SVr4 use the descriptor in \fISCREEN\fP.
.bP
NetBSD and \fI\%ncurses\fP use the descriptor
-in \fBTERMINAL\fP
+in \fI\%TERMINAL\fP
for terminal I/O modes,
e.g.,
\fBdef_shell_mode\fP(3X),
\fBdef_prog_mode\fP(3X).
-SVr4 curses uses the descriptor in \fBSCREEN\fP.
+SVr4 curses uses the descriptor in \fISCREEN\fP.
.SS "Unset \fITERM\fP Variable"
If the \fITERM\fP variable is missing or empty, \fBinitscr\fP uses the
value \*(``unknown\*('',
Although it \fIusually\fP works as expected, there are limitations:
.RS 5
.bP
-Walking the \fBSCREEN\fP list is unsafe, since all list management
+Walking the \fISCREEN\fP list is unsafe, since all list management
is done without any signal blocking.
.bP
On systems which have \fBREENTRANT\fP turned on, \fBset_term\fP uses
functions which could deadlock or misbehave in other ways.
.bP
-\fBendwin\fP calls other functions, many of which use stdio or
-other library functions which are clearly unsafe.
+\fBendwin\fP calls other functions,
+many of which use \fI\%stdio\fP(3) or other library functions which are
+clearly unsafe.
.RE
.TP 5
.B SIGTERM
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inopts.3x,v 1.59 2023/12/16 20:32:22 tom Exp $
-.TH curs_inopts 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_inopts.3x,v 1.60 2023/12/23 16:36:18 tom Exp $
+.TH curs_inopts 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
\fBint is_raw(void);
.fi
.SH DESCRIPTION
-The \fI\%ncurses\fP library provides several functions which let an
-application change the way input from the terminal is handled.
-Some are global, applying to all windows.
+.I \%ncurses
+provides several functions that let an application change the way input
+from the terminal is handled.
+Some are global,
+applying to all windows.
Others apply only to a specific window.
Window-specific settings are not automatically applied to new or derived
windows.
-An application must apply these to each window, if the same behavior
-is needed.
+An application must apply these to each window if the same behavior is
+desired.
.\"
-.SS cbreak/nocbreak
-Normally, the tty driver buffers typed characters until a newline or carriage
+.SS "cbreak, nocbreak"
+Normally,
+the terminal driver buffers typed characters until a newline or carriage
return is typed.
The \fB\%cbreak\fP routine disables line buffering and
-erase/kill character-processing (interrupt and flow control characters are
-unaffected), making characters typed by the user immediately available to the
+erase/kill character-processing
+(interrupt and flow control characters are unaffected),
+making characters typed by the user immediately available to the
program.
The \fB\%nocbreak\fP routine returns the terminal to normal (cooked)
mode.
.PP
-Initially the terminal may or may not be in \fB\%cbreak\fP mode, as the mode is
-inherited; therefore, a program should call \fB\%cbreak\fP or \fB\%nocbreak\fP
-explicitly.
-Most interactive programs using \fIcurses\fP set the \fB\%cbreak\fP
-mode.
+Initially the terminal may or may not be in \fB\%cbreak\fP mode,
+as the mode is inherited;
+therefore,
+a program should call \fB\%cbreak\fP or \fB\%nocbreak\fP explicitly.
+Most interactive programs using
+.I curses
+set the \fB\%cbreak\fP mode.
Note that \fB\%cbreak\fP overrides \fBraw\fP.
-[See \fB\%curs_getch\fP(3X) for a
-discussion of how these routines interact with \fBecho\fP and \fB\%noecho\fP.]
+[See \fB\%curs_getch\fP(3X) for a discussion of how these routines
+interact with \fBecho\fP and \fB\%noecho\fP.]
.\"
-.SS echo/noecho
-The \fBecho\fP and \fB\%noecho\fP routines control whether characters typed by
-the user are echoed by \fB\%getch\fP(3X) as they are typed.
-Echoing by the tty
-driver is always disabled, but initially \fB\%getch\fP is in echo mode, so
-characters typed are echoed.
+.SS "echo, noecho"
+The \fBecho\fP and \fB\%noecho\fP routines control whether characters
+typed by the user are echoed by \fB\%getch\fP(3X) as they are typed.
+Echoing by the terminal driver is always disabled,
+but initially \fB\%getch\fP is in echo mode,
+so characters typed are echoed.
Authors of most interactive programs prefer to do
-their own echoing in a controlled area of the screen, or not to echo at all, so
-they disable echoing by calling \fB\%noecho\fP.
+their own echoing in a controlled area of the screen,
+or not to echo at all,
+so they disable echoing by calling \fB\%noecho\fP.
[See \fB\%curs_getch\fP(3X) for a
discussion of how these routines interact with \fB\%cbreak\fP and
\fB\%nocbreak\fP.]
.\"
.SS halfdelay
-The \fB\%halfdelay\fP routine is used for half-delay mode, which is similar to
-\fB\%cbreak\fP mode in that characters typed by the user are immediately
-available to the program.
-However, after blocking for \fItenths\fP tenths of
-seconds, \fBERR\fP is returned if nothing has been typed.
-The value of \fItenths\fP
-must be a number between 1 and 255.
-Use \fB\%nocbreak\fP to leave half-delay
-mode.
+The \fB\%halfdelay\fP routine is used for half-delay mode,
+which is similar to \fB\%cbreak\fP mode in that characters typed by the
+user are immediately available to the program.
+However,
+after blocking for \fItenths\fP tenths of seconds,
+\fBERR\fP is returned if nothing has been typed.
+The value of \fItenths\fP must be a number between 1 and 255.
+Use \fB\%nocbreak\fP to leave half-delay mode.
.\"
.SS intrflush
-If the \fB\%intrflush\fP option is enabled (\fIbf\fP is \fBTRUE\fP), and an
-interrupt key is pressed on the keyboard (interrupt, break, quit), all output in
-the tty driver queue will be flushed, giving the effect of faster response to
-the interrupt, but causing \fIcurses\fP to have the wrong idea of what is on
-the screen.
-Disabling the option (\fIbf\fP is \fBFALSE\fP) prevents the
-flush.
-The default for the option is inherited from the tty driver settings.
-The window argument is ignored.
+If the \fB\%intrflush\fP option is enabled
+.RI ( bf
+is
+.BR TRUE ),
+and an interrupt key is pressed on the keyboard
+(interrupt,
+break,
+quit),
+all output in the terminal driver queue is flushed,
+giving the effect of faster response to the interrupt,
+but causing
+.I curses
+to have the wrong idea of what is on the screen.
+Disabling the option
+.RI ( bf
+is
+.BR FALSE ),
+prevents the flush.
+The default for the option is inherited from the terminal driver
+settings.
+The
+.I win
+argument is ignored.
.\"
.SS keypad
The \fB\%keypad\fP option enables the keypad of the user's terminal.
If
-enabled (\fIbf\fP is \fBTRUE\fP), the user can press a function key
-(such as an arrow key) and \fB\%wgetch\fP(3X) returns a single value
-representing the function key, as in \fB\%KEY_LEFT\fP.
+enabled
+.RI ( bf
+is
+.BR TRUE ),
+the user can press a function key
+(such as an arrow key)
+and \fB\%wgetch\fP(3X) returns a single value representing the function
+key,
+as in \fB\%KEY_LEFT\fP.
If disabled
-(\fIbf\fP is \fBFALSE\fP), \fIcurses\fP does not treat function keys
-specially and the program has to interpret the escape sequences
-itself.
-If the keypad in the terminal can be turned on (made to
-transmit) and off (made to work locally), turning on this option
-causes the terminal keypad to be turned on when \fB\%wgetch\fP(3X) is
-called.
+(\fIbf\fP is \fBFALSE\fP),
+.I curses
+does not treat function keys specially and the program has to interpret
+the escape sequences itself.
+If the keypad in the terminal can be turned on
+(made to transmit)
+and off
+(made to work locally),
+turning on this option causes the terminal keypad to be turned on when
+\fB\%wgetch\fP(3X) is called.
The default value for keypad is \fBFALSE\fP.
.\"
.SS meta
-Initially, whether the terminal returns 7 or 8 significant bits on
-input depends on the control mode of the tty driver [see \fB\%termios\fP(3)].
-To force 8 bits to be returned, invoke \fBmeta\fP(\fIwin\fP,
-\fBTRUE\fP); this is equivalent, under POSIX, to setting the CS8 flag
-on the terminal.
-To force 7 bits to be returned, invoke
-\fBmeta\fP(\fIwin\fP, \fBFALSE\fP); this is equivalent, under POSIX,
+Initially,
+whether the terminal returns 7 or 8 significant bits on input depends on
+the control mode of the terminal driver [see \fI\%termios\fP(3)].
+To force 8 bits to be returned,
+invoke
+\fBmeta\fP(\fIwin\fP, \fBTRUE\fP);
+this is equivalent,
+under POSIX,
+to setting the CS8 flag on the terminal.
+To force 7 bits to be returned,
+invoke
+\fBmeta\fP(\fIwin\fP, \fBFALSE\fP);
+this is equivalent,
+under POSIX,
to setting the CS7 flag on the terminal.
The window argument,
-\fIwin\fP, is always ignored.
-If the terminfo capabilities \fBsmm\fP
-(meta_on) and \fBrmm\fP (meta_off) are defined for the terminal,
-\fBsmm\fP is sent to the terminal when \fBmeta\fP(\fIwin\fP,
-\fBTRUE\fP) is called and \fBrmm\fP is sent when \fBmeta\fP(\fIwin\fP,
-\fBFALSE\fP) is called.
+.I win,
+is always ignored.
+If the terminfo capabilities
+\fBsmm\fP (meta_on) and
+\fBrmm\fP (meta_off) are defined for the terminal,
+\fBsmm\fP is sent to the terminal when
+\fBmeta\fP(\fIwin\fP, \fBTRUE\fP)
+is called and \fBrmm\fP is sent when
+\fBmeta\fP(\fIwin\fP, \fBFALSE\fP) is called.
.\"
-.SS nl/nonl
-The \fBnl\fP and \fBnonl\fP routines control whether the underlying display
-device translates the return key into newline on input.
+.SS "nl, nonl"
+The \fBnl\fP and \fBnonl\fP routines control whether the underlying
+display device translates the return key into newline on input.
.\"
.SS nodelay
-The \fB\%nodelay\fP option causes \fB\%getch\fP to be a non-blocking call.
-If no input is ready, \fB\%getch\fP returns \fBERR\fP.
+The \fB\%nodelay\fP option causes \fB\%getch\fP to be a non-blocking
+call.
+If no input is ready,
+\fB\%getch\fP returns \fBERR\fP.
If disabled
-(\fIbf\fP is \fBFALSE\fP), \fB\%getch\fP waits until a key is pressed.
+.RI ( bf
+is
+.BR FALSE ),
+\fB\%getch\fP waits until a key is pressed.
.SS notimeout
-When interpreting an escape sequence, \fB\%wgetch\fP(3X) sets a timer
+When interpreting an escape sequence,
+\fB\%wgetch\fP(3X) sets a timer
while waiting for the next character.
-If \fB\%notimeout(\fIwin\fR,
-\fBTRUE\fP) is called, then \fB\%wgetch\fP does not set a timer.
-The
-purpose of the timeout is to differentiate between sequences received
-from a function key and those typed by a user.
+If
+\fB\%notimeout(\fIwin\fR, \fBTRUE\fP)
+is called,
+then \fB\%wgetch\fP does not set a timer.
+The purpose of the timeout is to distinguish sequences produced by a
+function key from those typed by a user.
.\"
-.SS raw/noraw
-The \fBraw\fP and \fB\%noraw\fP routines place the terminal into or out of raw
-mode.
-Raw mode is similar to \fB\%cbreak\fP mode, in that characters typed are
-immediately passed through to the user program.
-The differences are that in
-raw mode, the interrupt, quit, suspend, and flow control characters are all
-passed through uninterpreted, instead of generating a signal.
-The behavior of
-the BREAK key depends on other bits in the tty driver that are not set by
-\fIcurses\fP.
+.SS "raw, noraw"
+The \fBraw\fP and \fB\%noraw\fP routines place the terminal into or out
+of raw mode.
+Raw mode is similar to \fB\%cbreak\fP mode,
+in that characters typed are immediately passed through to the user
+program.
+The differences are that in raw mode,
+the interrupt,
+quit,
+suspend,
+and flow control characters are all
+passed through uninterpreted,
+instead of generating a signal.
+The behavior of the BREAK key depends on other bits in the terminal
+driver that are not set by
+.I curses.
.\"
-.SS qiflush/noqiflush
-When the \fB\%noqiflush\fP routine is used, normal flush of input and
-output queues associated with the \fBINTR\fP, \fBQUIT\fP and
-\fBSUSP\fP characters will not be done [see \fB\%termios\fP(3)].
+.SS "qiflush, nqiflush"
+When the \fB\%noqiflush\fP routine is used,
+normal flush of input and output queues associated with the \fBINTR\fP,
+\fBQUIT\fP and \fBSUSP\fP characters will not be done
+[see \fB\%termios\fP(3)].
When
-\fB\%qiflush\fP is called, the queues will be flushed when these control
-characters are read.
-You may want to call \fB\%noqiflush\fP in a signal
-handler if you want output to continue as though the interrupt
-had not occurred, after the handler exits.
+\fB\%qiflush\fP is called,
+the queues will be flushed when these control characters are read.
+You may want to call \fB\%noqiflush\fP in a signal handler if you want
+output to continue as though the interrupt had not occurred,
+after the handler exits.
.\"
-.SS timeout/wtimeout
+.SS "timeout, wtimeout"
The \fB\%timeout\fP and \fB\%wtimeout\fP routines set blocking or
non-blocking read for a given window.
If \fIdelay\fP is negative,
-blocking read is used (i.e., waits indefinitely for
-input).
-If \fIdelay\fP is zero, then non-blocking read is used
-(i.e., read returns \fBERR\fP if no input is waiting).
+a blocking read is used
+(i.e.,
+waits indefinitely for input).
+If \fIdelay\fP is zero,
+then a non-blocking read is used
+(i.e.,
+.I read
+returns \fBERR\fP if no input is waiting).
If
-\fIdelay\fP is positive, then read blocks for \fIdelay\fP
-milliseconds, and returns \fBERR\fP if there is still no input.
-Hence, these routines provide the same functionality as \fB\%nodelay\fP,
+\fIdelay\fP is positive,
+then
+.I read
+blocks for \fIdelay\fP milliseconds,
+and returns \fBERR\fP if there is still no input.
+Hence,
+these routines provide the same functionality as \fB\%nodelay\fP,
plus the additional capability of being able to block for only
-\fIdelay\fP milliseconds (where \fIdelay\fP is positive).
+\fIdelay\fP milliseconds
+(where \fIdelay\fP is positive).
.\"
.SS typeahead
-The \fIcurses\fP library does \*(``line-breakout optimization\*(''
-by looking for typeahead periodically while updating the screen.
-If input is found, and it is coming from a tty,
+.I curses
+does \*(``line-breakout optimization\*('' by looking for typeahead
+periodically while updating the screen.
+If input is found,
+and it is coming from a terminal,
the current update is postponed until
\fB\%refresh\fP(3X) or \fB\%doupdate\fP is called again.
This allows faster response to commands typed in advance.
-Normally, the input FILE
-pointer passed to \fB\%newterm\fP, or \fBstdin\fP in the case that
-\fB\%initscr\fP was used, will be used to do this typeahead checking.
+Normally,
+the input
+.I FILE
+pointer passed to \fB\%newterm\fP,
+or \fBstdin\fP in the case that \fB\%initscr\fP was used,
+will be used to do this typeahead checking.
The \fB\%typeahead\fP routine specifies that the file descriptor
\fIfd\fP is to be used to check for typeahead instead.
If \fIfd\fP is
-\-1, then no typeahead checking is done.
+\-1,
+then no typeahead checking is done.
.\"
.SH RETURN VALUE
-All routines that return an integer return \fBERR\fP upon failure and \fBOK\fP
+All routines that return an integer return \fBERR\fP upon failure and
+\fBOK\fP
(SVr4 specifies only \*(``an integer value other than \fBERR\fP\*('')
upon successful completion,
unless otherwise noted in the preceding routine descriptions.
X/Open does not define any error conditions.
In this implementation,
functions with a window parameter will return an error if it is null.
-Any function will also return an error if the terminal was not initialized.
+Any function will also return an error if the terminal was not
+initialized.
Also,
.RS 3
.TP 5
if its parameter is outside the range 1..255.
.RE
.SH NOTES
-Note that
\fBecho\fP,
\fB\%noecho\fP,
\fB\%halfdelay\fP,
\fB\%notimeout\fP,
\fB\%noqiflush\fP,
\fB\%qiflush\fP,
-\fB\%timeout\fP, and
-\fB\%wtimeout\fP may be macros.
+\fB\%timeout\fP,
+and
+\fB\%wtimeout\fP
+may be implemented as macros.
.PP
-The \fB\%noraw\fP and \fB\%nocbreak\fP calls follow historical practice in that
-they attempt to restore to normal (\*(``cooked\*('') mode
+\fB\%noraw\fP and \fB\%nocbreak\fP follow historical practice in that
+they attempt to restore normal (\*(``cooked\*('') mode
from raw and cbreak modes respectively.
-Mixing raw/noraw and cbreak/nocbreak calls leads to tty driver
-control states that are hard to predict or understand; it is not recommended.
+Mixing \fBraw\fP/\fB\%noraw\fP and \fB\%cbreak\fP/\fB\%nocbreak\fP calls
+leads to terminal driver control states that are hard to predict or
+understand;
+doing so is not recommended.
.SH EXTENSIONS
-This implementation provides four functions which may be used to detect
-if the corresponding flags were set or reset:
+.I \%ncurses
+provides four \*(``is_\*('' functions that may be used to detect if the
+corresponding flags were set or reset.
.PP
.TS
-l l l.
-\fBQuery\fP \fBSet\fP \fBReset\fP
+center;
+Lb Lb Lb
+L L L .
+Query Set Reset
_
is_cbreak cbreak nocbreak
is_echo echo noecho
is_raw raw noraw
.TE
.PP
-In each case, the function returns
-.TP 5
+In each case,
+the function returns
+.TP 4 \" "-1" + 2n
1
if the flag is set,
-.TP 5
+.TP
0
-if the flag is reset, or
-.TP 5
+if the flag is reset,
+or
+.TP
\-1
-if the \fIcurses\fP library was not initialized.
+if the library is not initialized.
.PP
-These routines are specific to \fI\%ncurses\fP.
-They were not supported on Version 7, BSD or System V implementations.
-It is recommended that any code depending on \fI\%ncurses\fP extensions
-be conditioned using NCURSES_VERSION.
+They were designed for
+\fB\%ncurses\fP(3X),
+and are not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous
+.I curses
+implementation.
.SH PORTABILITY
-Except as noted in the section on extensions,
-these functions are described in the XSI Curses standard, Issue 4.
+Applications employing
+.I \%ncurses
+extensions should condition their use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
+.PP
+Except as noted in section \*(``EXTENSIONS\*('' above,
+X/Open Curses, Issue 4, Version 2 describes these functions.
.PP
-The \fI\%ncurses\fP library obeys the XPG4 standard
-and the historical practice of the
-AT&T \fIcurses\fP implementations,
-in that the echo bit is cleared when \fIcurses\fP
+.I \%ncurses
+follows X/Open Curses
+and the historical practice of AT&T
+.I curses
+implementations,
+in that the echo bit is cleared when
+.I curses
initializes the terminal state.
-BSD \fIcurses\fP differed from this slightly; it
-left the echo bit on at initialization, but the BSD \fBraw\fP call turned it
-off as a side-effect.
-For best portability, set \fBecho \fPor \fB\%noecho\fP explicitly
-just after initialization, even if your program remains in cooked mode.
+BSD
+.I curses
+differed from this slightly;
+it left the echo bit on at initialization,
+but the BSD \fBraw\fP call turned it off as a side effect.
+For best portability,
+set \fBecho\fP or \fB\%noecho\fP explicitly just after initialization,
+even if your program remains in cooked mode.
.PP
-The XSI Curses standard is ambiguous on the question of whether \fBraw\fP
-should disable the CRLF translations controlled by \fBnl\fP and \fBnonl\fP.
-BSD \fIcurses\fP did turn off these translations;
-AT&T \fIcurses\fP (at least as late as SVr1) did not.
-We chose to do so, on the theory that a programmer requesting
-raw input wants a clean (ideally 8-bit clean) connection that the operating
-system will not alter.
+X/Open Curses is ambiguous regarding whether \fBraw\fP should disable
+the CR/LF translations controlled by \fBnl\fP and \fBnonl\fP.
+BSD
+.I curses
+did turn off these translations;
+AT&T
+.I curses
+(at least as late as SVr1)
+did not.
+.I \%ncurses
+does so,
+on the assumption that a programmer requesting raw input wants a clean
+(ideally,
+8-bit clean)
+connection that the operating system will not alter.
.PP
When \fB\%keypad\fP is first enabled,
-\fI\%ncurses\fP loads the key-definitions for the current terminal
-description.
+.I \%ncurses
+loads the key definitions for the current terminal description.
If the terminal description includes extended string capabilities,
-e.g., from using the \fB\-x\fP option of \fB@TIC@\fP,
-then \fI\%ncurses\fP also defines keys for the capabilities whose names
-begin with \*(``k\*(''.
-The corresponding keycodes are generated and (depending on previous
-loads of terminal descriptions) may differ from one execution of a
-program to the next.
-The generated keycodes are recognized by the \fB\%keyname\fP function
+e.g.,
+from using the
+.B \-x
+option of \fB\%@TIC@\fP,
+then
+.I \%ncurses
+also defines keys for the capabilities whose names begin with
+\*(``k\*(''.
+The corresponding keycodes are generated and
+(depending on previous loads of terminal descriptions)
+may differ from one execution of a program to the next.
+The generated keycodes are recognized by the \fB\%keyname\fP(3X)
+function
(which will then return a name beginning with \*(``k\*('' denoting the
terminfo capability name rather than \*(``K\*('',
-used for \fIcurses\fP key-names).
-On the other hand, an application can use \fB\%define_key\fP to establish
+used for
+.I curses
+key names).
+On the other hand,
+an application can use \fB\%define_key\fP(3X) to establish
a specific keycode for a given string.
This makes it possible for an application to check for an extended
capability's presence with \fB\%tigetstr\fP,
.PP
Low-level applications can use \fB\%tigetstr\fP to obtain the definition
of any particular string capability.
-Higher-level applications which use the \fIcurses\fP \fB\%wgetch\fP
-and similar functions to return keycodes rely upon the order in which
-the strings are loaded.
+Higher-level applications which use the
+.I curses
+\fB\%wgetch\fP and similar functions to return keycodes rely upon the
+order in which the strings are loaded.
If more than one key definition has the same string value,
then \fB\%wgetch\fP can return only one keycode.
-Most \fIcurses\fP implementations (including \fI\%ncurses\fP)
+Most
+.I curses
+implementations
+(including
+.IR \%ncurses )
load key definitions in the order
defined by the array of string capability names.
The last key to be loaded determines the keycode which will be returned.
-In \fI\%ncurses\fP,
+In
+.I \%ncurses,
you may also have extended capabilities interpreted as key definitions.
These are loaded after the predefined keys,
and if a capability's value is the same as a previously-loaded
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_ins_wch.3x,v 1.24 2023/11/25 11:32:28 tom Exp $
-.TH curs_ins_wch 3X 2023-11-25 "ncurses 6.4" "Library calls"
+.\" $Id: curs_ins_wch.3x,v 1.26 2023/12/23 16:03:24 tom Exp $
+.TH curs_ins_wch 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
\fB\%mvins_wch\fP,
\fB\%mvwins_wch\fP,
\fB\%wins_wch\fP \-
-insert a \fIcurses\fR complex character string in a window
+insert a \fIcurses\fR complex character in a window
.SH SYNOPSIS
.nf
-#include <curses.h>
+\fB#include <curses.h>\fP
.PP
\fBint ins_wch(const cchar_t *\fIwch\fP);
\fBint wins_wch(WINDOW *\fIwin\fP, const cchar_t *\fIwch\fP);
-.PP
\fBint mvins_wch(int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fP);
\fBint mvwins_wch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fP);
.fi
.SH DESCRIPTION
-These routines, insert the complex character \fIwch\fP with rendition
-before the character under the cursor.
-All characters to the right of the cursor are moved one space to the right,
-with the possibility of the rightmost character on the line being lost.
-The insertion operation does not change the cursor position.
-.SH RETURN VALUE
-If successful, these functions return \fBOK\fP.
-If not, they return \fBERR\fP.
+These functions insert the
+.I curses
+complex character
+.I wch
+at the cursor in the specified window
+.I win
+(or
+.BR \%stdscr ).
+The character previously at the cursor and any to its right move one
+cell to the right;
+the rightmost character on the line is discarded.
+The cursor does not advance.
+.SH "RETURN VALUE"
+These functions return \fBOK\fP on success and \fBERR\fP on failure.
+.PP
+Functions taking a
+.I \%WINDOW
+pointer argument fail if the pointer is
+.BR NULL .
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement using
+\fB\%wmove\fP and fail if the position
+.RI ( y ,
+.IR x )
+is outside the window.
+.SH NOTES
+A terminal's
+.B \%insert_character
+.RB ( ich1 )
+capability
+is not necessarily employed.
+.PP
+\fB\%ins_wch\fP,
+\fB\%mvins_wch\fP,
+and
+\fB\%mvwins_wch\fP
+may be implemented as macros.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-.SH SEE ALSO
+X/Open Curses, Issue 4, describes these functions.
+.PP
+SVr4 describes successful return values only as
+\*(``an integer value other than \fBERR\fP\*(''.
+.SH HISTORY
+SVr4 (1989) implemented these functions under the names
+.BR inswch ,
+.BR winswch ,
+.BR mvinswch ,
+and
+.BR mvwinswch .
+.SH "SEE ALSO"
+\fB\%curs_insch\fP(3X) describes comparable functions in the
+non-wide-character
+.I curses
+configuration.
+.PP
\fB\%curses\fP(3X),
-\fB\%curs_insch\fP(3X)
+\fB\%terminfo\fP(5)
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_insch.3x,v 1.34 2023/12/16 21:09:11 tom Exp $
-.TH curs_insch 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_insch.3x,v 1.36 2023/12/23 16:03:24 tom Exp $
+.TH curs_insch 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
insert a \fIcurses\fR character in a window
.SH SYNOPSIS
.nf
-\fB#include <curses.h>
+\fB#include <curses.h>\fP
.PP
\fBint insch(chtype \fIch\fP);
\fBint winsch(WINDOW *\fIwin\fP, chtype \fIch\fP);
-.PP
\fBint mvinsch(int \fIy\fP, int \fIx\fP, chtype \fIch\fP);
\fBint mvwinsch(WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, chtype \fIch\fP);
.fi
.SH DESCRIPTION
-These routines insert the character \fIch\fP before the character under the
-cursor.
-All characters to the right of the cursor are moved one space to the
-right, with the possibility of the rightmost character on the line being lost.
-The insertion operation does not change the cursor position.
-.SH RETURN VALUE
-These routines return the integer \fBERR\fP upon failure and an \fBOK\fP
-(SVr4 specifies only
-\*(``an integer value other than \fBERR\fP\*('')
-upon successful completion.
+These functions insert the
+.I curses
+character
+.I ch
+at the cursor in the specified window
+.I win
+(or
+.BR \%stdscr ).
+The character previously at the cursor and any to its right move one
+cell to the right;
+the rightmost character on the line is discarded.
+The cursor does not advance.
+.SH "RETURN VALUE"
+These functions return \fBOK\fP on success and \fBERR\fP on failure.
+.PP
+Functions taking a
+.I \%WINDOW
+pointer argument fail if the pointer is
+.BR NULL .
.PP
-Functions with a \*(``mv\*('' prefix first perform a cursor movement using
-\fBwmove\fP, and return an error if the position is outside the window,
-or if the window pointer is null.
+Functions prefixed with \*(``mv\*('' first perform cursor movement using
+\fB\%wmove\fP and fail if the position
+.RI ( y ,
+.IR x )
+is outside the window.
.SH NOTES
-These routines do not necessarily imply use of a hardware insert character
-feature.
+A terminal's
+.B \%insert_character
+.RB ( ich1 )
+capability
+is not necessarily employed.
.PP
-Note that \fBinsch\fP, \fBmvinsch\fP, and \fBmvwinsch\fP may be macros.
+\fB\%insch\fP,
+\fB\%mvinsch\fP,
+and
+\fB\%mvwinsch\fP
+may be implemented as macros.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4.
-.SH SEE ALSO
-\fB\%curses\fP(3X)
+X/Open Curses, Issue 4, describes these functions.
+.PP
+SVr4 describes successful return values only as
+\*(``an integer value other than \fBERR\fP\*(''.
+.SH "SEE ALSO"
+\fB\%curs_ins_wch\fP(3X) describes comparable functions in the
+wide-character
+.I curses
+configuration.
.PP
-Comparable functions in the wide-character (ncursesw) library are
-described in
-\fB\%curs_ins_wch\fP(3X).
+\fB\%curses\fP(3X),
+\fB\%terminfo\fP(5)
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_legacy.3x,v 1.29 2023/10/21 10:28:36 tom Exp $
-.TH curs_legacy 3X 2023-10-21 "ncurses 6.4" "Library calls"
+.\" $Id: curs_legacy.3x,v 1.30 2023/12/23 16:40:10 tom Exp $
+.TH curs_legacy 3X 2023-12-23 "ncurses 6.4" "Library calls"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.\}
+.el \{\
+.ie t .ds `` ``
+.el .ds `` ""
+.ie t .ds '' ''
+.el .ds '' ""
+.\}
+.
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
these functions return an integer,
or \fBERR\fP if the window parameter is null.
.SH NOTES
-All of these interfaces are provided as macros and functions.
-The macros are suppressed (and only the functions provided)
-when \fB\%NCURSES_OPAQUE\fP is defined.
-The standard forms such as \fB\%getyx\fP must be implemented as macros,
-and (in this implementation) are defined in terms of the functions
-described here,
-to avoid reliance on internal details of the \fB\%WINDOW\fP structure.
+All of these interfaces are implemented as macros and functions.
+The macros are suppressed
+(and only the functions provided)
+in an \*(``opaque\*(''
+.I \%ncurses
+build,
+which defines the preprocessor symbol
+.BR \%NCURSES_OPAQUE .
+See section \*(``ALTERNATE CONFIGURATIONS\*('' in \fB\%ncurses\fP(3X).
+.PP
+The standard forms such as \fB\%getyx\fP
+.I must
+be implemented as macros,
+and
+(in this implementation)
+are defined in terms of the functions described here,
+to avoid reliance on internal details of the \fI\%WINDOW\fP structure.
.SH PORTABILITY
These functions were supported on Version 7, BSD or System V implementations.
None of those implementations checked the window parameter.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_memleaks.3x,v 1.32 2023/12/16 20:32:22 tom Exp $
-.TH curs_memleaks 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_memleaks.3x,v 1.33 2023/12/23 16:22:08 tom Exp $
+.TH curs_memleaks 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
of the memory allocated by curses:
.bP
The portable part of \fB\%exit_curses\fP can be freed using \fB\%delscreen\fP,
-passing the \fBSCREEN*\fP pointer returned by \fB\%newterm\fP.
+passing the \fISCREEN\fP pointer returned by \fB\%newterm\fP.
.IP
In some implementations, there is a global variable \fBsp\fP
which could be used, e.g., if the screen were only initialized
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_mouse.3x,v 1.82 2023/12/16 21:08:16 tom Exp $
-.TH curs_mouse 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_mouse.3x,v 1.83 2023/12/23 20:37:56 tom Exp $
+.TH curs_mouse 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
As a side effect, setting a zero mousemask may turn off the mouse pointer;
setting a nonzero mask may turn it on.
Whether this happens is device-dependent.
-.SS Mouse events
+.SS "Mouse Events"
Here are the mouse event type masks which may be defined:
.PP
.TS
the terminal was not initialized.
In that case, it returns the maximum interval value (166).
.SH NOTES
-The feature macro \fB\%NCURSES_MOUSE_VERSION\fP is provided so the preprocessor
-can be used to test whether these features are present.
-If the interface is changed, the value of \fB\%NCURSES_MOUSE_VERSION\fP will be
-incremented.
-These values for \fB\%NCURSES_MOUSE_VERSION\fP may be
-specified when configuring \fI\%ncurses\fP:
-.RS 3
-.TP 3
-1
-has definitions for reserved events.
-The mask uses 28 bits.
-.TP 3
-2
-adds definitions for button 5,
-removes the definitions for reserved events.
-The mask uses 29 bits.
-.RE
-.PP
The order of the \fB\%MEVENT\fP structure members is not guaranteed.
Additional fields may be added to the structure in the future.
.PP
-Under \fI\%ncurses\fP, these calls are implemented using either
-xterm's built-in mouse-tracking API or
+Under
+.I \%ncurses,
+these calls are implemented using either
+.IR \%xterm 's
+built-in mouse-tracking API or
platform-specific drivers including
.RS 3
.bP
\fI\%ncurses\fP (and the \fB\%mousemask\fP function will always
return \fB0\fP).
.PP
-If the terminfo entry contains a \fBXM\fP string,
-this is used in the xterm mouse driver to control the
+If the
+.I \%term\%info
+entry contains a \fBXM\fP string,
+this is used in the
+.I \%xterm
+mouse driver to control the
way the terminal is initialized for mouse operation.
The default, if \fBXM\fP is not found,
-corresponds to private mode 1000 of xterm:
+corresponds to private mode 1000 of
+.I \%xterm:
.PP
.RS 3
\eE[?1000%?%p1%{1}%=%th%el%;
.RE
.PP
-The mouse driver also recognizes a newer xterm private mode 1006, e.g.,
+The mouse driver also recognizes a newer
+.I \%xterm
+private mode 1006,
+e.g.,
.PP
.RS 3
\eE[?1006;1000%?%p1%{1}%=%th%el%;
The \fB\%ALL_MOUSE_EVENTS\fP class does not
include \fB\%REPORT_MOUSE_POSITION\fP.
They are distinct.
-For example, in xterm,
+For example,
+in
+.I \%xterm,
wheel/scrolling mice send position reports as a sequence of
presses of buttons 4 or 5 without matching button-releases.
+.SH EXTENSIONS
+These functions were designed for
+\fB\%ncurses\fP(3X),
+and are not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous curses implementation.
+(SVr4
+.I curses
+did have a
+.I \%getmouse
+function,
+which took no argument and returned a different type.)
.SH PORTABILITY
-These calls were designed for \fI\%ncurses\fP,
-and are not found in SVr4 \fIcurses\fP,
-4.4BSD \fIcurses\fP, or any other previous version of \fIcurses\fP.
+Applications employing the
+.I \%ncurses
+mouse extension should condition its use on the visibility of the
+.B \%NCURSES_MOUSE_VERSION
+preprocessor macro.
+When the interface changes,
+the macro's value increments.
+Multiple versions are available when
+.I \%ncurses
+is configured;
+see section \*(``ALTERNATE CONFIGURATIONS\*('' of \fB\%ncurses\fP(3X).
+The following values may be specified.
+.RS 3
+.TP 3
+1
+has definitions for reserved events.
+The mask uses 28 bits.
+.TP 3
+2
+adds definitions for button 5,
+removes the definitions for reserved events.
+The mask uses 29 bits.
+.RE
.PP
-SVr4 \fIcurses\fP had support for the mouse in a variant of \fBxterm\fP(1).
-It is mentioned in a few places, but with no supporting documentation:
+SVr4
+.I curses
+had support for the mouse in a variant of \fI\%xterm\fP(1).
+It is mentioned in a few places,
+with little supporting documentation.
.bP
-the \*(``libcurses\*('' manual page lists functions for this feature
-which are prototyped in \fBcurses.h\fP:
+Its \*(``libcurses\*('' manual page lists functions for this feature
+prototyped in \fI\%curses.h\fP.
.PP
.RS 8
.EX
.EE
.RE
.bP
-the \*(``terminfo\*('' manual page lists capabilities for the feature
+Its \*(``terminfo\*('' manual page lists capabilities for the feature.
.PP
.RS 8
.EX
.EE
.RE
.bP
-the interface made assumptions (as does \fI\%ncurses\fP)
-about the escape sequences
-sent to and received from the terminal.
+The interface made assumptions
+(as does
+.IR \%ncurses )
+about the escape sequences sent to and received from the terminal.
.IP
-For instance
-the SVr4 \fIcurses\fP library used the \fB\%get_mouse\fP capability to tell the
-terminal which mouse button events it should send,
+For instance,
+the SVr4
+.I curses
+library used the \fB\%get_mouse\fP 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 \fB\%req_mouse_pos\fP capability.
.IP
-Those features required a terminal which had been modified
-to work with \fIcurses\fP.
-They were not part of the X Consortium's xterm.
+Those features required a terminal program that had been modified
+to work with SVr4
+.I curses.
+They were not part of the X Consortium's
+.I \%xterm.
.PP
-When developing the xterm mouse support for \fI\%ncurses\fP in September
-1995,
+When developing the
+.I \%xterm
+mouse support for
+.I \%ncurses
+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
-PDCurses 2.3 using the SVr4 interface.
-PDCurses, however, does not use video terminals,
+.I \%PDCurses
+2.3 using the SVr4 interface.
+.I \%PDCurses,
+however,
+does not use video terminals,
making it unnecessary to be concerned about compatibility with the
escape sequences.
.SH BUGS
-Mouse events from \fI\%xterm\fP are \fInot\fP ignored in cooked mode if
-they have been enabled by \fB\%mousemask\fP.
+Mouse events from
+.I \%xterm
+are
+.I not
+ignored in cooked mode if they have been enabled by \fB\%mousemask\fP.
Instead,
-the \fI\%xterm\fP mouse report sequence appears in the string read.
+the
+.I \%xterm
+mouse report sequence appears in the string read.
.PP
-Mouse event reports from \fI\%xterm\fP are not detected correctly in
-a window with keypad application mode disabled,
+Mouse event reports from
+.I \%xterm
+are not detected correctly in a window with keypad application mode
+disabled,
since they are interpreted as a variety of function key.
-Set the the terminal's \fI\%terminfo\fP capability \fB\%kmous\fP to
-\*(``\eE[M\*(''
-(the beginning of the response from \fI\%xterm\fP for mouse clicks).
+Set the terminal's
+.I \%term\%info
+capability \fB\%kmous\fP to \*(``\eE[M\*(''
+(the beginning of the response from
+.I \%xterm
+for mouse clicks).
Other values of \fB\%kmous\fP are permitted under the same assumption,
that is,
the report begins with that sequence.
.PP
Because there are no standard response sequences that serve to identify
-terminals supporting the \fI\%xterm\fP mouse protocol,
-\fI\%ncurses\fP assumes that if \fB\%kmous\fP is defined in the terminal
-description,
+terminals supporting the
+.I \%xterm
+mouse protocol,
+.I \%ncurses
+assumes that if \fB\%kmous\fP 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.
The \fB\%kmous\fP capability is checked first,
-allowing use of newer \fI\%xterm\fP mouse protocols such as its private
-mode 1006.
+allowing use of newer
+.I \%xterm
+mouse protocols,
+such as its private mode 1006.
.SH SEE ALSO
\fB\%curses\fP(3X),
\fB\%curs_inopts\fP(3X),
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_print.3x,v 1.35 2023/12/16 20:32:22 tom Exp $
-.TH curs_print 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_print.3x,v 1.36 2023/12/23 16:36:18 tom Exp $
+.TH curs_print 3X 2023-12-23 "ncurses 6.4" "Library calls"
.SH NAME
\fB\%mcprint\fP \-
write binary data to printer using \fIterminfo\fR capabilities
.PP
When \fB\%mcprint\fP succeeds, it returns the number of characters actually
sent to the printer.
+.SH EXTENSIONS
+\fB\%mcprint\fP was designed for
+\fB\%ncurses\fP(3X),
+and was not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous curses implementation.
.SH PORTABILITY
-The \fB\%mcprint\fP call was designed for \fI\%ncurses\fP,
-and is not found in SVr4 \fIcurses\fP,
-4.4BSD \fIcurses\fP,
-or any other previous version of \fIcurses\fP.
-It is recommended that any code depending on \fI\%ncurses\fP extensions
-be conditioned using \fB\%NCURSES_VERSION\fP.
+Applications employing this
+.I \%ncurses
+extension should condition its use on the visibility of the
+.B \%NCURSES_VERSION
+preprocessor macro.
.SH BUGS
Padding in the
\fBmc5p\fP,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_printw.3x,v 1.45 2023/12/18 00:03:28 tom Exp $
-.TH curs_printw 3X 2023-12-17 "ncurses 6.4" "Library calls"
+.\" $Id: curs_printw.3x,v 1.47 2023/12/23 14:41:07 tom Exp $
+.TH curs_printw 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.bP
X/Open Curses, Issue 5, Draft 2
(December 2007) marked \fBvwprintw\fP (along with
-\fBvwscanw\fP and the termcap interface) as withdrawn.
+\fBvwscanw\fP and the \fItermcap\fP interface) as withdrawn.
After incorporating review comments,
this became
X/Open Curses, Issue 7 (2009).
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_scanw.3x,v 1.44 2023/12/17 22:50:40 tom Exp $
-.TH curs_scanw 3X 2023-12-17 "ncurses 6.4" "Library calls"
+.\" $Id: curs_scanw.3x,v 1.47 2023/12/23 14:41:50 tom Exp $
+.TH curs_scanw 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.bP
X/Open Curses, Issue 5, Draft 2
(December 2007) marked \fB\%vwscanw\fP (along with
-\fB\%vwscanw\fP and the termcap interface) as withdrawn.
+\fB\%vwscanw\fP and the \fItermcap\fP interface) as withdrawn.
After incorporating review comments,
this became
X/Open Curses, Issue 7 (2009).
\fB\%mvwscanw\fP, stating
.RS
.PP
-These 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.
+and the resulting line is used as input for the scan.\*(''
.RE
.PP
SVr3 also implemented \fB\%vwscanw\fP,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_sp_funcs.3x,v 1.45 2023/12/16 20:32:22 tom Exp $
-.TH curs_sp_funcs 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_sp_funcs.3x,v 1.46 2023/12/23 16:26:05 tom Exp $
+.TH curs_sp_funcs 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
improve the ability to manage multiple screens.
This feature can be added to any of the configurations supported by
\fI\%ncurses\fP;
-it adds new entrypoints
+it adds new symbols
without changing the meaning of any of the existing ones.
.\" ***************************************************************************
-.SS IMPROVED FUNCTIONS
+.SS "Improved Functions"
Most of the functions are new versions of existing functions.
A parameter is added at the front of the parameter list.
-It is a SCREEN pointer.
+It is a \fISCREEN\fP pointer.
.PP
The existing functions all use the current screen,
which is a static variable.
thereby reducing the number of variables which must be modified
to update multiple screens.
.\" ***************************************************************************
-.SS NEW FUNCTIONS
+.SS "New Functions"
Here are the new functions:
.TP 5
ceiling_panel
there are situations where it must create a current screen before
the unextended library does.
The \fBnew_prescr\fP function is used internally to handle these cases.
-It is also provided as an entrypoint to allow applications to customize
-the library initialization.
+It is also provided to allow applications to customize library
+initialization.
.\" ***************************************************************************
.SH NOTES
This extension introduces some new names:
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_termcap.3x,v 1.76 2023/12/18 00:22:30 tom Exp $
-.TH curs_termcap 3X 2023-12-17 "ncurses 6.4" "Library calls"
+.\" $Id: curs_termcap.3x,v 1.80 2023/12/23 20:19:05 tom Exp $
+.TH curs_termcap 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
\fB\%tgetent\fP loads the terminal database entry for \fIname\fP;
see \fBterm\fP(7).
This must be done before calling any of the other functions.
-It returns:
+It returns
.RS 3
-.TP 4
+.TP 5 \" "-1" + 2n + adjust for PDF
1
on success,
-.TP 4
+.TP
0
if there is no such entry
(or if the matching entry describes a generic terminal,
.I curses
applications to run),
and
-.TP 4
+.TP
\-1
if the \fI\%term\%info\fP database could not be found.
.RE
.bP
The meanings of the return values differ.
The BSD \fItermcap\fP library does not check whether the terminal type
-description is marked with the
-.B gn
-.RB ( \%generic )
+description includes the
+.B \%generic
+.RB ( gn )
capability,
nor whether the terminal type description supports an addressable
cursor,
most hardware terminals use cursor addressing with \fIrow\fP first,
but the original developers of the \fItermcap\fP interface chose to
put the \fIcol\fP (column) parameter first.
-The \fB\%tgoto\fP function swaps the order of parameters.
+The \fB\%tgoto\fP function swaps the order of its parameters.
It does this even for calls requiring only a single parameter.
In that case,
the first parameter is merely a placeholder.
.bP
Normally the \fI\%ncurses\fP library is compiled without
-full \fI\%term\%cap\fP support.
+full \fI\%termcap\fP support.
In that case,
\fB\%tgoto\fP uses an internal version of \fB\%tparm\fP(3X)
(a more capable function).
.PP
\fB\%tputs\fP is described in \fB\%curs_terminfo\fP(3X).
It can retrieve capabilities by either \fItermcap\fP or
-\fI\%term\%info\fP name.
+\fI\%term\%info\fP code.
.SS "Global Variables"
The variables
\fBPC\fP,
to free this memory,
but there is an additional complication with \fI\%ncurses\fP.
It uses a fixed-size pool of storage locations,
-one per value of the \fITERM\fP environment variable when
-\fB\%tgetent\fP is called.
-The \fBscreen\fP(1) program relies upon this arrangement to improve its
+one per value of the terminal name parameter given to \fB\%tgetent\fP.
+The \fIscreen\fP(1) program relies upon this arrangement to improve its
performance.
.PP
An application that uses only the \fItermcap\fP functions,
.SS Standards
.bP
X/Open Curses, Issue 4, Version 2 (1996),
-describes these functions.
-However,
-they are marked
+describes these functions,
+marking them as
\*(``TO BE WITHDRAWN\*(''.
.bP
-X/Open Curses, Issue 7 (2009) marked the \fItermcap\fP interface
+X/Open Curses, Issue 7 (2009) marks the \fItermcap\fP interface
(along with \fB\%vwprintw\fP and \fB\%vwscanw\fP) as withdrawn.
.PP
Neither X/Open Curses nor the SVr4 man pages documented the return
values of \fB\%tgetent\fP correctly,
-though all three were in fact returned ever since SVr1.
+though all three shown here were in fact returned ever since SVr1.
In particular,
an omission in the X/Open Curses specification has been misinterpreted
to mean that \fB\%tgetent\fP returns \fBOK\fP or \fBERR\fP.
(June 1986).
4.4BSD-Lite
(June 1994)
-refactored it
+refactored it,
.\" Observe the `tncktc()`, `tnamatch()`, `tskip()`, and `tdecode()`
.\" entry points disappearing from termcap.c.
-but left the API unchanged.
+leaving the API unchanged.
.PP
-Function prototypes were a feature of the forthcoming ANSI C (1989).
-Thus the library provided no header file declaring them.
+Function prototypes were a feature of ANSI C (1989).
+Thus the library itself provided no header file declaring them.
Nevertheless,
the BSD sources included two different \fI\%termcap.h\fP header files
over time.
.bP
One was used internally by \fBjove\fP(1) from 4.3BSD onward.
.\" 2BSD became a branch retaining support for non-virtual memory
-.\" systems (like the PDP-11) whereas most BSD development focused on
+.\" systems (such as the PDP-11) whereas most BSD development focused on
.\" the VAX and other VM-enabled systems starting with 3BSD.
.\"
.\" This man page previously located a termcap.h in 2BSD, but that may
but in that instance,
it was \fIlibedit\fP that differed from BSD \fItermcap\fP.
.PP
-GNU \fItermcap\fP 1.3 was bundled with \fIbash\fP in mid-1993 to support
-the \fBreadline\fP(3) library.
+GNU \fItermcap\fP 1.3 was bundled with \fIbash\fP(1) in mid-1993 to
+support the \fI\%readline\fP(3) library.
.PP
\fI\%ncurses\fP 1.8.1
(November 1993)
and programs that intend to work with all \fItermcap\fP library
interfaces must account for that fact.
.SH BUGS
-If you call \fB\%tgetstr\fP to fetch \fB\%ca\fP or any other
-parameterized string capability,
+If you call \fB\%tgetstr\fP to fetch
+.B \%column_address
+.RB ( ch )
+or any other parameterized string capability,
be aware that it is returned in \fI\%term\%info\fP notation,
not the older and not-quite-compatible \fItermcap\fP notation.
This does not cause problems if all you do with it is call \fB\%tgoto\fP
\fB\%tputs("50")\fP in a \fItermcap\fP system may busy-wait for 50
milliseconds rather than transmitting \*(``50\*(''.
.PP
-\fItermcap\fP has nothing analogous to \fI\%term\%info\fP's \fBsgr\fP
-string.
+\fItermcap\fP has nothing analogous to \fI\%term\%info\fP's
+.B \%set_attributes
+.RB ( sgr )
+capability.
One consequence is that \fItermcap\fP applications assume that
.RB \*(`` me \*(''
-(equivalent to \fI\%term\%info\fP's \fBsgr0\fP capability)
+(equivalent to \fI\%term\%info\fP's
+.B \%exit_attribute_mode
+.RB ( sgr0 )
+capability)
does not reset the alternate character set.
\fI\%ncurses\fP checks for,
and modifies the data shared with,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_terminfo.3x,v 1.123 2023/12/16 21:11:53 tom Exp $
-.TH curs_terminfo 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_terminfo.3x,v 1.124 2023/12/23 17:34:39 tom Exp $
+.TH curs_terminfo 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
\fI/* extensions */
\fBchar *tiparm_s(int \fIexpected\fP, int \fImask\fP, const char *\fIstr\fP, ...);
\fBint tiscan_s(int *\fIexpected\fP, int *\fImask\fP, const char *\fIstr\fP);
+.PP
+\fI/* deprecated */
+\fBint setterm(const char *\fIterm\fP);
.fi
.SH DESCRIPTION
These low-level routines must be called by programs that have to deal
.\" ***************************************************************************
.SS "The Terminal State"
The \fBsetupterm\fP routine stores its information about the terminal
-in a \fBTERMINAL\fP structure pointed to by the global variable \fBcur_term\fP.
+in a \fI\%TERMINAL\fP structure pointed to by the global variable \fBcur_term\fP.
If it detects an error,
or decides that the terminal is unsuitable (hardcopy or generic),
it discards this information,
\fIaffcnt\fP is the number of lines affected, or 1 if
not applicable.
.bP
-\fIputc\fP is a \fBputchar\fP-like routine to which
+\fIputc\fP is a \fI\%putchar\fP-like function to which
the characters are passed, one at a time.
.IP
If \fBtputs\fP processes a time-delay,
it uses the \fBdelay_output\fP(3X) function,
routing any resulting padding characters through this function.
.PP
-The \fBputp\fR routine calls \fBtputs(\fIstr\fB, 1, putchar)\fR.
+The \fBputp\fR routine calls \fBtputs(\fIstr\fB, 1, \%putchar)\fR.
The output of \fBputp\fP always goes to \fBstdout\fP, rather than
the \fIfiledes\fP specified in \fBsetupterm\fP.
.PP
video attribute mode \fIattrs\fP, which is any combination of the
attributes listed in \fBcurses\fP(3X).
The characters are passed to
-the \fBputchar\fP-like routine \fIputc\fP.
+the \fI\%putchar\fP-like function \fIputc\fP.
.PP
The \fBvidattr\fP routine is like the \fBvidputs\fP routine, except
-that it outputs through \fBputchar\fP.
+that it outputs through \fI\%putchar\fP.
.PP
The \fBvid_attr\fP and \fBvid_puts\fP routines correspond
to vidattr and vidputs, respectively.
to improve performance,
\fI\%ncurses\fP 6.3 caches the result of analyzing terminfo
strings for their parameter types.
-That is stored as a binary tree referenced from the \fBTERMINAL\fP structure.
+That is stored as a binary tree referenced from the \fI\%TERMINAL\fP structure.
.PP
The higher-level \fBinitscr\fP and \fBnewterm\fP functions use \fBsetupterm\fP.
Normally they do not free this memory, but it is possible to do that using
.RE
.\" ***************************************************************************
.SH NOTES
-X/Open notes that \fBvidattr\fP and \fBvidputs\fP may be macros.
+.\" See X/Open Curses Issue 4, Version 2, pp. 227-234.
+.\" See X/Open Curses Issue 7, pp. 311-318.
+According to X/Open Curses,
+any of the \fIenhanced curses\fP functions may be implemented as macros.
+The term \*(``enhanced\*('' refers to features not found in SVr4 curses.
+.PP
+\fB\%ncurses\fP uses macros
+.bP
+for functions which return values via their parameters,
+.bP
+to support obsolete features,
+.bP
+to reuse functions,
+e.g., those that move the cursor before another operation, and
+.bP
+a few special cases.
+.PP
+The \fB\%vid_puts\fP function in \fB\%ncurses\fP is a special case.
+It was originally implemented based on a draft of X/Open Curses,
+as a macro,
+before other parts of the \fB\%ncurses\fP wide-character API were developed.
.\" ***************************************************************************
.SH EXTENSIONS
The functions marked as extensions were designed for
\fB\%ncurses\fP(3X),
-and are not found in SVr4 curses, 4.4BSD curses,
-or any other previous version of curses.
+and are not found in SVr4
+.IR curses ,
+4.4BSD
+.IR curses ,
+or any other previous curses implementation.
.\" ***************************************************************************
.SH PORTABILITY
-The function \fBsetterm\fP is not described by X/Open and must
-be considered non-portable.
+\fBsetterm\fP is not described by X/Open and must be considered
+non-portable.
All other functions are as described by X/Open.
.SS "Compatibility Macros"
This implementation provides a few macros for compatibility with systems
-before SVr4 (see \fIHISTORY\fP).
-Those include
-\fBcrmode\fP,
-\fBfixterm\fP,
-\fBgettmode\fP,
-\fBnocrmode\fP,
-\fBresetterm\fP,
-\fBsaveterm\fP, and
-\fBsetterm\fP.
-.PP
-In SVr4, those are found in \fB<curses.h>\fP,
-but except for \fBsetterm\fP, are likewise macros.
-The one function, \fBsetterm\fP, is mentioned in the manual page.
-The manual page notes that the \fBsetterm\fP routine
-was replaced by \fB\%setupterm\fP, stating that the call
-.IP
-\fBsetupterm(\fIterm\fB, 1, (int *)0)\fR
-.PP
+before SVr4
+(see section \*(``HISTORY\*('' below).
+They include
+\fB\%Bcrmode\fP,
+\fB\%Bfixterm\fP,
+\fB\%Bgettmode\fP,
+\fB\%Bnocrmode\fP,
+\fB\%Bresetterm\fP,
+\fB\%Bsaveterm\fP, and
+\fB\%Bsetterm\fP.
+.PP
+In SVr4,
+these are found in
+.IR \%curses.h ,
+but except for \fB\%setterm\fP,
+are likewise macros.
+The one function,
+\fB\%setterm\fP,
+is mentioned in the manual page.
+It further notes that \fB\%setterm\fP was replaced by \fB\%setupterm\fP,
+stating that the call
+.RS
+.EX
+setupterm(\fIterm\fB, 1, (int *)0)\fP
+.EE
+.RE
provides the same functionality as \fBsetterm(\fIterm\fB)\fR,
-and is not recommended for new programs.
-This implementation provides each of those symbols
-as macros for BSD compatibility.
+discouraging the latter for new programs.
+.I \%ncurses
+implements each of these symbols as macros for BSD
+.I curses
+compatibility.
.SS "Legacy Data"
\fBsetupterm\fP copies the terminal name to the array \fBttytype\fP.
This is not part of X/Open Curses, but is assumed by some applications.
actual terminal state, and that an application should touch and refresh
the window before resuming normal curses calls.
Both \fI\%ncurses\fP and System V Release 4 curses implement \fBmvcur\fP
-using the SCREEN data allocated in either \fBinitscr\fP or
+using the \fISCREEN\fP data allocated in either \fBinitscr\fP or
\fBnewterm\fP.
So though it is documented as a terminfo function,
\fBmvcur\fP is really a curses function which is not well specified.
gettmode establish current tty modes
mvcur low level cursor motion
putp T{
-utility function that uses \fBtputs\fP to send characters via \fBputchar\fP.
+utility function that uses \fBtputs\fP to send characters via
+\fI\%putchar\fP.
T}
resetterm set tty modes to \*(``out of curses\*('' state
resetty reset tty flags to stored value
setupterm establish terminal with given type
tparm instantiate a string expression with parameters
tputs apply padding information to a string
-vidattr like \fBvidputs\fP, but outputs through \fBputchar\fP
+vidattr like \fBvidputs\fP, but outputs through \fIputchar\fP
vidputs T{
output a string to put terminal in a specified video attribute mode
T}
.TE
.PP
Early terminfo programs obtained capability values from the
-\fBTERMINAL\fP structure initialized by \fBsetupterm\fP.
+\fI\%TERMINAL\fP structure initialized by \fBsetupterm\fP.
.PP
SVr3 extended terminfo by adding functions to retrieve capability values
(like the termcap interface),
descriptions, e.g., \fBset_curterm\fP.
Some of that was incremental improvements to the SVr2 library:
.bP
-The \fBTERMINAL\fP type definition was introduced in SVr3.01,
+The \fI\%TERMINAL\fP type definition was introduced in SVr3.01,
for the \fBterm\fP structure provided in SVr2.
.bP
The various global variables such as \fBboolnames\fP were mentioned
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_threads.3x,v 1.50 2023/12/16 20:32:22 tom Exp $
-.TH curs_threads 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_threads.3x,v 1.51 2023/12/23 16:22:25 tom Exp $
+.TH curs_threads 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.PP
The \fBuse_window\fP and \fBuse_screen\fP functions provide
coarse-grained mutexes for their respective \fI\%WINDOW\fP and
-\fI\%SCREEN\fP parameters;
+\fISCREEN\fP parameters;
they call a user-supplied function,
pass it a \fIdata\fP parameter,
and return the value from the user-supplied function to the application.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_trace.3x,v 1.41 2023/12/16 20:50:14 tom Exp $
-.TH curs_trace 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_trace.3x,v 1.42 2023/12/23 16:08:25 tom Exp $
+.TH curs_trace 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
If the file already exists, no tracing is done.
.bP
If tracing is not available, \fBcurses_trace\fP returns zero (0).
-.SS Trace Parameter
+.SS "Trace Parameter"
The trace parameter is formed by OR'ing
values from the list of \fBTRACE_\fIxxx\fR definitions in \fB<curses.h>\fR.
These include:
use_extended_names,
use_tioctl
.RE
-.SS Command-line Utilities
+.SS "Command-line Utilities"
The command-line utilities such as \fBtic\fP(1) provide a verbose option
which extends the set of messages written using the \fBcurses_trace\fP function.
Both of these (\fB\-v\fP and \fBcurses_trace\fP)
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_util.3x,v 1.91 2023/12/16 20:32:22 tom Exp $
-.TH curs_util 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_util.3x,v 1.92 2023/12/23 16:24:15 tom Exp $
+.TH curs_util 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
It returns a pointer to the new window.
There are a few caveats:
.bP
-the data written is a copy of the \fBWINDOW\fP structure,
+the data written is a copy of the \fI\%WINDOW\fP structure,
and its associated character cells.
The format differs between the wide-character (\fI\%ncursesw\fP) and
non-wide (\fI\%ncurses\fP) libraries.
and were later (in 1988) incorporated into SVr4.
Oddly, there are no such functions in the 4.3BSD curses sources.
.bP
-Most implementations simply dump the binary \fBWINDOW\fP structure to the file.
+Most implementations simply dump the binary \fI\%WINDOW\fP structure to the file.
These include SVr4 curses, NetBSD and PDCurses,
as well as older \fI\%ncurses\fP versions.
This implementation
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_variables.3x,v 1.35 2023/12/16 21:05:52 tom Exp $
-.TH curs_variables 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: curs_variables.3x,v 1.40 2023/12/23 23:10:13 tom Exp $
+.TH curs_variables 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
\fI\%chtype\fP,
\fI\%cchar_t\fP,
\fI\%attr_t\fP,
+\fI\%SCREEN\fP,
\fI\%WINDOW\fP,
\fB\%TRUE\fP,
\fB\%FALSE\fP,
\fB\%ERR\fP,
\fB\%OK\fP,
+\fB\%curscr\fP,
+\fB\%newscr\fP,
+\fB\%stdscr\fP,
\fB\%COLORS\fP,
\fB\%COLOR_PAIRS\fP,
\fB\%COLS\fP,
-\fB\%ESCDELAY\fP,
\fB\%LINES\fP,
-\fB\%TABSIZE\fP,
-\fB\%curscr\fP,
-\fB\%newscr\fP,
-\fB\%stdscr\fP \-
+\fB\%ESCDELAY\fP,
+\fB\%TABSIZE\fP \-
\fIcurses\fR data types, constants, and global variables
.SH SYNOPSIS
.nf
\fBtypedef \fI/*\fP .\|.\|. \fI*/\fP chtype;
\fBtypedef \fI/*\fP .\|.\|. \fI*/\fP cchar_t;
\fBtypedef \fI/*\fP .\|.\|. \fI*/\fP attr_t;
+\fBtypedef \fI/*\fP .\|.\|. \fI*/\fP SCREEN;
\fBtypedef \fI/*\fP .\|.\|. \fI*/\fP WINDOW;
.PP
\fI/* constants */
\fBconst \fI/*\fP .\|.\|. \fI*/\fP OK;
.PP
\fI/* variables */
-\fBint COLOR_PAIRS;
\fBint COLORS;
+\fBint COLOR_PAIRS;
\fBint COLS;
\fBint LINES;
\fBWINDOW * curscr;
\fBWINDOW * stdscr;
+.PP
\fI/* extensions */
\fBint ESCDELAY;
\fBint TABSIZE;
In either case,
applications should treat them as read-only to avoid
confusing the library.
-.SS \fIbool\fP, TRUE, FALSE
-X/Open Issue 4 \fIcurses\fP (1996) preceded the ISO C99 and ISO C++98
-standards,
-each of which also defined a Boolean data type.
-The \fIcurses\fP library requires an integral type \fIbool\fP and
-constants \fBTRUE\fP and \fBFALSE\fP to store its two possible values.
+.SH "CONSTANTS"
+.SS "TRUE, FALSE"
+The \fIcurses\fP library defines \fBTRUE\fP and \fBFALSE\fP
+to represent the values of the Boolean data type.
.SS ERR, OK
\fIcurses\fP and \fIterminfo\fP routines frequently return these
constant integral values indicating failure and success,
respectively.
+.SH "PREDEFINED TYPES"
+.SS \fIbool\fP
+X/Open Issue 4 \fIcurses\fP (1996) preceded the ISO C99 and ISO C++98
+standards,
+each of which also defined a Boolean data type.
+The \fIcurses\fP library requires an integral type \fIbool\fP.
+.PP
+\fB\%ncurses\fP' configure script attempts to discover the
+data type used by the system's C and C++ compilers,
+to reuse for the \fIcurses\fP \fIbool\fP.
.SS \fIchtype\fP
The \fI\%chtype\fP integral type combines a
(\*(``narrow\*('',
\fB\%attr_on\fP(3X),
and
\fB\%in_wch\fP(3X).
-.SS COLOR_PAIRS
-Once \fIcurses\fP is initialized,
-\fB\%COLOR_PAIRS\fP
-contains the number of color pairs supported by the terminal.
-Often,
-its value is the product \fB\%COLORS\fP \(mu \fB\%COLORS\fP,
-but this is not always true.
-.bP
-A few terminals use HLS colors,
-ignoring this rule;
+.SS \fISCREEN\fP
+.I curses
+manages a terminal device with this structure type;
+see \fB\%initscr\fP(3X).
+.SS "\fIWINDOW\fP"
+.I curses
+represents rectangular portions of the terminal screen with the
+.I \%WINDOW
+structure type;
+see subsection \*(``Overview\*('' of \fB\%ncurses\fP(3X).
+.SH "VARIABLES"
+.SS "curscr, stdscr, newscr"
+The library records updates to the terminal screen in a window named
+\fB\%curscr\fP.
+This object is referred to as the \*(``physical screen\*('' in
+\fB\%curs_refresh\fP(3X) and
+\fB\%curs_outopts\fP(3X).
+.PP
+\fI\%ncurses\fP collects pending updates to the terminal screen in a
+window named \fB\%newscr\fP.
+This object is referred to as the \*(``virtual screen\*('' in the
+\fB\%curs_kernel\fP(3X),
+\fB\%curs_refresh\fP(3X),
and
-.bP
-terminals supporting a large number of colors are limited by the number
-of color pairs that a \fIsigned short\fP value can represent.
+\fB\%curs_outopts\fP(3X).
+When the screen is refreshed,
+\fIcurses\fP determines a minimal set of updates using the terminal's
+capabilities to make \fB\%curscr\fP look like \fB\%newscr\fP.
+.PP
+Once \fIcurses\fP is initialized,
+it creates a window named \fB\%stdscr\fP.
+It is the same size as the terminal screen and is the default window
+used by routines that do not take a parameter identifying one.
+Many \fIcurses\fP functions use this window.
.SS COLORS
Once \fIcurses\fP is initialized,
\fB\%COLORS\fP
-contains the number of colors supported by the terminal.
-.SS COLS
+contains the number of colors supported by the terminal;
+see \fB\%curs_color\fP(3X).
+.SS COLOR_PAIRS
Once \fIcurses\fP is initialized,
-\fB\%COLS\fP
-contains the screen's width in character cells;
+\fB\%COLOR_PAIRS\fP
+contains the number of color pairs supported by the terminal;
+see \fB\%curs_color\fP(3X).
+.SS "COLS, LINES"
+Once \fIcurses\fP is initialized,
+.B \%COLS
+and
+.B LINES
+contain the screen's width and height in character cells,
+respectively;
that is,
-the number of columns.
+the number of columns and lines.
.SS ESCDELAY
For \fIcurses\fP to distinguish an escape character corresponding to a
user's press of an \*(``Escape\*('' key on the input device from one
character.
\fB\%ESCDELAY\fP
stores this interval in milliseconds.
-.SS LINES
-Once \fIcurses\fP is initialized,
-\fB\%LINES\fP
-contains the screen's height in character cells;
-that is,
-the number of lines.
.SS TABSIZE
The \fIcurses\fP library converts a tab character to this number of
spaces as it adds a tab to a window;
see \fB\%curs_addch\fP(3X).
-.SS curscr
-\fIcurses\fP records updates to the terminal screen in a \fI\%WINDOW\fP
-structure named \fB\%curscr\fP.
-.PP
-This object is referred to as the \*(``physical screen\*('' in
-\fB\%curs_refresh\fP(3X) and
-\fB\%curs_outopts\fP(3X).
-.SS newscr
-\fI\%ncurses\fP collects pending updates to the terminal screen in a
-\fI\%WINDOW\fP structure named \fB\%newscr\fP.
-.PP
-This object is referred to as the \*(``virtual screen\*('' in the
-\fB\%curs_kernel\fP(3X),
-\fB\%curs_refresh\fP(3X),
-and
-\fB\%curs_outopts\fP(3X).
-When the screen is refreshed,
-\fIcurses\fP determines a minimal set of updates using the terminal's
-capabilities to make \fB\%curscr\fP look like \fB\%newscr\fP.
-.SS stdscr
-Once \fIcurses\fP is initialized,
-it creates a \fI\%WINDOW\fP structure named \fB\%stdscr\fP.
-It is the same size as the terminal screen and is the default window
-used by routines that do not take a parameter identifying one.
-Many \fIcurses\fP functions use this window.
.SH NOTES
Either \fB\%initscr\fP(3X) or \fB\%newterm\fP(3X) initializes
\fIcurses\fP.
.PP
X/Open Curses describes \fB\%curscr\fP only as \*(``an internal data
structure\*('';
-SVID gave more details,
+SVr4 gave more details,
noting its use \*(``for certain low-level operations like clearing and
redrawing a screen containing garbage\*(''.
+.\" SVID 4, Volume 3, p. 408
Neither specified its interaction with the rest of the interface beyond
use as an argument to \fB\%clearok\fP(3X) and \fB\%wrefresh\fP(3X).
.PP
\fB\%newscr\fP is a feature of SVr4 \fIcurses\fP.
-When refreshing the screen, this window is used as a working area
-for combining the standard screen \fB\%stdscr\fP with any other windows
-which the application may have created with \fB\%newwin\fP(3X).
-When the updated \fB\%newscr\fP is complete,
-\fIcurses\fP updates \fB\%curscr\fP to match \fB\%newscr\fP.
+When refreshing the screen,
+it is used as a working area for combining the standard window
+\fB\%stdscr\fP with any others the application may have created with
+\fB\%newwin\fP(3X).
+When the update of \fB\%newscr\fP is complete,
+\fIcurses\fP modifies \fB\%curscr\fP to match \fB\%newscr\fP.
.PP
\fB\%TABSIZE\fP is a feature of SVr4 \fIcurses\fP.
.bP
or to rely upon its default.
.SH SEE ALSO
\fB\%curses\fP(3X),
+\fB\%curs_color\fP(3X),
\fB\%curs_opaque\fP(3X),
\fB\%curs_terminfo\fP(3X),
\fB\%curs_threads\fP(3X),
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form.3x,v 1.51 2023/12/16 20:32:22 tom Exp $
-.TH form 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: form.3x,v 1.52 2023/12/23 16:08:25 tom Exp $
+.TH form 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
A curses initialization routine such as \fBinitscr\fP must be called
before using any of these functions.
.
-.SS Current Default Values for Field Attributes
+.SS "Current Default Values for Field Attributes"
.
The \fBform\fP library maintains a default value for field attributes.
You
\fBset_\fP function affects future field creations, but does not change the
rendering of fields already created.
.
-.SS Routine Name Index
+.SS "Routine Name Index"
.
The following table lists each \fBform\fP routine and the name of
the manual page on which it is described.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_driver.3x,v 1.53 2023/11/25 13:58:47 tom Exp $
-.TH form_driver 3X 2023-11-25 "ncurses 6.4" "Library calls"
+.\" $Id: form_driver.3x,v 1.54 2023/12/23 16:08:25 tom Exp $
+.TH form_driver 3X 2023-12-23 "ncurses 6.4" "Library calls"
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
The type must be passed as well,
to enable the library to determine whether the parameter
is a wide character or a request.
-.SS Form-driver requests
+.SS "Form Driver Requests"
The form driver requests are as follows:
.PP
.TS
in the current position in the current field.
If it is one of the forms
requests listed above, that request is executed.
-.SS Field validation
+.SS "Field Validation"
The form library makes updates to the window associated
with form fields rather than directly to the field buffers.
.PP
If the modified field is valid, the form driver copies the modified
data from the window associated with the field
to the field buffer.
-.SS Mouse handling
+.SS "Mouse Handling"
If the second argument is the KEY_MOUSE special key, the associated
mouse event is translated into one of the above pre-defined requests.
Currently only clicks in the user window (e.g., inside the form display
If you clicked outside the user window
or the mouse event could not be translated
into a form request an \fBE_REQUEST_DENIED\fP is returned.
-.SS Application-defined commands
+.SS "Application-defined Commands"
If the second argument is neither printable nor one of the above
pre-defined form requests, the driver assumes it is an application-specific
command and returns \fBE_UNKNOWN_COMMAND\fP. Application-defined commands
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: infocmp.1m,v 1.102 2023/12/16 20:32:22 tom Exp $
-.TH @INFOCMP@ 1M 2023-12-16 "ncurses 6.4" "User commands"
+.\" $Id: infocmp.1m,v 1.103 2023/12/23 16:08:25 tom Exp $
+.TH @INFOCMP@ 1M 2023-12-23 "ncurses 6.4" "User commands"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
In all cases, the boolean
fields will be printed first, followed by the numeric fields, followed by the
string fields.
-.SS Default Options
+.SS "Default Options"
If no options are specified and zero or one \fIterminal-types\fP are
specified,
the
\fB\-I\fP option will be assumed.
If more than one \fIterminal-type\fP is specified,
the \fB\-d\fP option will be assumed.
-.SS Comparison Options [\-d] [\-c] [\-n]
+.SS "Comparison Options [\-d] [\-c] [\-n]"
\fB@INFOCMP@\fP compares the \fBterminfo\fP description of the first terminal
\fIterminal-type\fP with each of the descriptions given by the entries
for the other terminal's \fIterminal-types\fP.
If no \fIterminal-types\fP are given,
\fB@INFOCMP@\fP uses the environment variable \fITERM\fP
for each of the \fIterminal-types\fP.
-.SS Source Listing Options [\-I] [\-L] [\-C] [\-r]
+.SS "Source Listing Options [\-I] [\-L] [\-C] [\-r]"
The \fB\-I\fP, \fB\-L\fP, and \fB\-C\fP options will produce
a source listing for each terminal named.
.PP
\fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fP/concept
\fB%p2\fP is printed before \fB%p1/%r\fP/hp
.TE
-.SS Use= Option [\-u]
+.SS "Use= Option [\-u]"
The \fB\-u\fP option produces a \fBterminfo\fP source description of the first
terminal \fIterminal-type\fP which is relative to the sum of the
descriptions given by the entries for the other \fIterminal-types\fP.
superfluous.
\fB@INFOCMP@\fP will flag any other \fIterminal-type use=\fP fields that
were not needed.
-.SS Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR]
+.SS "Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR]"
Like other \fI\%ncurses\fP utilities,
\fB@INFOCMP@\fP looks for the terminal descriptions in several places.
You can use the \fI\%TERMINFO\fP and \fI\%TERMINFO_DIRS\fP environment
For instance,
you can use this feature for comparing descriptions for the same terminal
created by different people.
-.SS Other Options
+.SS "Other Options"
.TP 5
\fB\-0\fP
causes the fields to be printed on one line, without wrapping.
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: man_db.renames.in,v 1.63 2023/12/17 23:52:59 tom Exp $
+# $Id: man_db.renames.in,v 1.66 2023/12/23 16:14:04 tom Exp $
# Manual-page renamings for the man_db program
#
# Files:
mitem_visible.3x menu_visible.3menu
ncurses.3x ncurses.3ncurses
new_pair.3x new_pair.3ncurses
-panel.3x panel.3curses
+panel.3x panel.3ncurses
printf.3s printf.3
putc.3s putc.3
resizeterm.3x resizeterm.3ncurses
meta.3x meta.3ncurses
move.3x move.3ncurses
mvcur.3x mvcur.3ncurses
-mvwin.3x mvwin.3nwinses
+mvwin.3x mvwin.3ncurses
newpad.3x newpad.3ncurses
newterm.3x newterm.3ncurses
newwin.3x newwin.3ncurses
waddch.3x waddch.3ncurses
waddstr.3x waddstr.3ncurses
waddwstr.3x waddwstr.3ncurses
+wattrset.3x wattrset.3ncurses
+wattr_set.3x wattr_set.3ncurses
wbkgdset.3x wbkgdset.3ncurses
+wbkgrndset.3x wbkgrndset.3ncurses
wget_wch.3x wget_wch.3ncurses
wgetch.3x wgetch.3ncurses
wgetstr.3x wgetstr.3ncurses
wtimeout.3x wtimeout.3ncurses
#
# Other:
-getty.1 getty.8
+getty.8 getty.8
scanf.3 scanf.3
ttys.5 ttys.4
system.3 system.3
-# $Id: manhtml.aliases,v 1.29 2023/12/18 00:27:56 tom Exp $
+# $Id: manhtml.aliases,v 1.30 2023/12/23 21:21:06 tom Exp $
#***************************************************************************
# Copyright 2019-2022,2023 Thomas E. Dickey *
# Copyright 2013,2017 Free Software Foundation, Inc. *
infocmp(1) infocmp(1M)
initscr(3X) curs_initscr(3X)
is_scrollok(3X) curs_opaque(3X)
+keyname(3X) curs_util(3X)
keypad(3X) curs_inopts(3X)
longname(3X) curs_termattrs(3X)
meta(3X) curs_inopts(3X)
waddch(3X) curs_addch(3X)
waddstr(3X) curs_addstr(3X)
waddwstr(3X) curs_addwstr(3X)
+wattr_set(3X) curs_attr(3X)
+wattrset(3X) curs_attr(3X)
wbkgdset(3X) curs_bkgd(3X)
+wbkgrndset(3X) curs_bkgrnd(3X)
wget_wch(3X) curs_get_wch(3X)
wgetch(3X) curs_getch(3X)
wgetstr(3X) curs_getstr(3X)
-# $Id: manhtml.externs,v 1.18 2023/12/18 00:35:38 tom Exp $
+# $Id: manhtml.externs,v 1.20 2023/12/23 23:49:04 tom Exp $
# Items in this list will not be linked by man2html
#***************************************************************************
# Copyright 2019-2021,2023 Thomas E. Dickey *
COLOR_PAIR(1)
COLOR_PAIR(2)
atoi(3)
+bash(1)
conflict(1)
cron(1)
csh(1)
environ(7)
errno(3)
file(1)
-getty(1)
+getty(8)
jove(1)
lynx(1)
-nvi(1)
mutt(1)
+nvi(1)
od(1)
printf(3)
profile(5)
readline(3)
resize(1)
scanf(3)
+scanf(3S)
screen(1)
setlocale(3)
sh(1)
-scanf(3)
-scanf(3S)
sscanf(3)
stdio(3)
stty(1)
-system(3)
swprintf(3)
+system(3)
termios(3)
tmux(1)
tty(4)
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu.3x,v 1.42 2023/12/16 20:32:22 tom Exp $
-.TH menu 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: menu.3x,v 1.43 2023/12/23 16:08:25 tom Exp $
+.TH menu 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
To use the \fBmenu\fP library, link with the options
\fB\-lmenu \-lcurses\fP.
.
-.SS Current Default Values for Item Attributes
+.SS "Current Default Values for Item Attributes"
.
The \fBmenu\fP library maintains a default value for item attributes.
You can
\fBset_\fP function affects future item creations, but does not change the
rendering of items already created.
.
-.SS Routine Name Index
+.SS "Routine Name Index"
.
The following table lists each \fBmenu\fP routine and the name of
the manual page on which it is described.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_driver.3x,v 1.44 2023/12/16 20:32:22 tom Exp $
-.TH menu_driver 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: menu_driver.3x,v 1.45 2023/12/23 16:08:25 tom Exp $
+.TH menu_driver 3X 2023-12-23 "ncurses 6.4" "Library calls"
.de bP
.ie n .IP \(bu 4
.el .IP \(bu 2
.PP
If the second argument is one of the above pre-defined requests, the
corresponding action is performed.
-.SS MOUSE HANDLING
+.SS "Mouse Handling"
If the second argument is the KEY_MOUSE special key, the associated
mouse event is translated into one of the above pre-defined requests.
Currently only clicks in the user window (e.g., inside the menu display
If you clicked outside the user window
or the mouse event could not be translated
into a menu request an \fBE_REQUEST_DENIED\fP is returned.
-.SS APPLICATION-DEFINED COMMANDS
+.SS "Application-defined Commands"
If the second argument is neither printable nor one of the above
pre-defined menu requests or KEY_MOUSE,
the drive assumes it is an application-specific
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: ncurses.3x,v 1.187 2023/12/17 23:44:14 tom Exp $
-.TH ncurses 3X 2023-12-17 "ncurses 6.4" "Library calls"
+.\" $Id: ncurses.3x,v 1.189 2023/12/23 16:32:37 tom Exp $
+.TH ncurses 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
The ncurses_g library generates trace logs
(in a file called \*(``trace\*('' in the current directory)
that describe curses actions.
-See also the section on \fBALTERNATE CONFIGURATIONS\fP.
+See section \*(``ALTERNATE CONFIGURATIONS\*('' below.
.PP
The \fI\%ncurses\fP package supports: overall screen, window and pad
manipulation; output to windows and pads; reading terminal input; control over
See \fB\%curs_attr\fP(3X).
.PP
.I curses
-predefines symbols for a small set of line graphics characters,
-corresponding to the VT100 line drawing set.
+predefines constants for a small set of line-drawing and other graphics
+corresponding to the DEC Alternate Character Set (ACS),
+a feature of VT100 and other terminals.
See
\fB\%waddch\fP(3X) and
\fB\%wadd_wch\fP(3X).
.PP
.I curses
is implemented using the operating system's terminal driver;
-keystroke events are not received as scan codes but as byte sequences.
+keystroke events are received not as scan codes but as byte sequences.
Graphical keycaps
(alphanumeric and punctuation keys,
and the space)
.BR \%WEOF ,
analogously to the
.IR int -sized
-character manipulation functions of ISO C and their constant
+character manipulation functions of ISO C and its constant
.BR \%EOF .
.RE
.IP
The reason for the change was to make the behavior for interrupts and
other signals more robust.
One drawback is that certain nonconventional programs would mix
-ordinary stdio calls with \fI\%ncurses\fP calls and (usually) work.
+ordinary \fI\%stdio\fP(3) calls with \fI\%ncurses\fP calls and (usually)
+work.
This is no longer possible since \fI\%ncurses\fP is not using
the buffered standard output but its own output (to the same file descriptor).
As a special case, the low-level calls such as \fBputp\fP still use the
$TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
.EE
.RE
-.SH ALTERNATE CONFIGURATIONS
-Several different configurations are possible,
-depending on the configure script options used when building
-\fI\%ncurses\fP.
-There are a few main options whose effects are visible to the applications
-developer using \fI\%ncurses\fP:
+.SH "ALTERNATE CONFIGURATIONS"
+Many different
+.I \%ncurses
+configurations are possible,
+determined by the options given to the
+.I \%configure
+script when building the library.
+Run the script with the
+.B \-\-help
+option to peruse them all.
+A few are of particular significance to the application developer
+employing
+.I \%ncurses.
.TP 5
\-\-disable\-overwrite
The standard include for \fI\%ncurses\fP is as noted in \fBSYNOPSIS\fP:
(that is,
individual differences between the XSI Curses and \fI\%ncurses\fP calls)
are described in \fBPORTABILITY\fP sections of the library man pages.
-.SS Error checking
+.SS "Error Checking"
In many cases, X/Open Curses is vague about error conditions,
omitting some of the SVr4 documentation.
.PP
Unlike other implementations, this one checks parameters such as pointers
-to WINDOW structures to ensure they are not null.
+to \fI\%WINDOW\fP structures to ensure they are not null.
The main reason for providing this behavior is 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 were detected.
Relying on this (or some other) extension will adversely affect the
portability of curses applications.
-.SS Extensions versus portability
+.SS "Extensions Versus Portability"
Most of the extensions provided by \fI\%ncurses\fP have not been
standardized.
Some have been incorporated into other implementations, such as
The routine \fBwresize\fP is not part of XPG4, nor is it present in SVr4.
See the \fBwresize\fP(3X) manual page for details.
.bP
-The WINDOW structure's internal details can be hidden from application
+The \fI\%WINDOW\fP structure's internal details can be hidden from application
programs.
See \fBcurs_opaque\fP(3X) for the discussion of \fBis_scrollok\fP, etc.
.bP
This implementation can also be configured to provide a set of functions which
improve the ability to manage multiple screens.
See \fBcurs_sp_funcs\fP(3X) for details.
-.SS Padding differences
+.SS "Padding Differences"
In historic curses versions, delays embedded in the capabilities \fBcr\fP,
\fBind\fP, \fBcub1\fP, \fBff\fP and \fBtab\fP activated corresponding delay
bits in the Unix tty driver.
This method is slightly more expensive, but narrows the interface
to the Unix kernel significantly and increases the package's portability
correspondingly.
-.SS Header files
+.SS "Header Files"
The header file \fI\%curses.h\fP itself includes the header files
\fI\%stdio.h\fP and \fI\%unctrl.h\fP.
.PP
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: panel.3x,v 1.60 2023/12/16 21:24:43 tom Exp $
-.TH panel 3X 2023-12-16 "ncurses 6.4" "Library calls"
+.\" $Id: panel.3x,v 1.61 2023/12/23 16:22:25 tom Exp $
+.TH panel 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.SS ceiling_panel
\fB\%ceiling_panel(\fIsp\fB)\fR
acts like \fB\%panel_below(NULL)\fP
-for the given \fI\%SCREEN\fP \fIsp\fP.
+for the given \fISCREEN\fP \fIsp\fP.
.\" ---------
.SS del_panel
\fB\%del_panel(\fIpan\fB)\fR
.SS ground_panel
\fB\%ground_panel(\fIsp\fB)\fR
acts like \fB\%panel_above(NULL)\fP
-for the given \fI\%SCREEN\fP \fIsp\fP.
+for the given \fISCREEN\fP \fIsp\fP.
.\" ---------
.SS hide_panel
\fB\%hide_panel(\fIpan\fB)\fR
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: scr_dump.5,v 1.40 2023/12/16 21:07:24 tom Exp $
-.TH scr_dump 5 2023-12-16 "ncurses 6.4" "File formats"
+.\" $Id: scr_dump.5,v 1.41 2023/12/23 16:27:25 tom Exp $
+.TH scr_dump 5 2023-12-23 "ncurses 6.4" "File formats"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
because the library truncates or fills the screen as necessary.
.bP
The ncurses6 \fBgetwin\fP reads the legacy screen dumps from ncurses5.
-.SS ncurses5 (legacy)
+.SS "ncurses5 (Legacy)"
The screen-dump feature was added to \fI\%ncurses\fP in June 1995.
While there were fixes and improvements in succeeding years,
the basic scheme was unchanged:
.bP
-The \fBWINDOW\fP structure was written in binary form.
+The \fI\%WINDOW\fP structure was written in binary form.
.bP
-The \fBWINDOW\fP structure refers to lines of data,
-which were written as an array of binary data following the \fBWINDOW\fP.
+The \fI\%WINDOW\fP structure refers to lines of data,
+which were written as an array of binary data following the \fI\%WINDOW\fP.
.bP
When \fBgetwin\fP restored the window,
it would keep track of offsets into the array of line-data
-and adjust the \fBWINDOW\fP structure which was read back into memory.
+and adjust the \fI\%WINDOW\fP structure which was read back into memory.
.PP
This is similar to Unix System\ V,
but does not write a \*(``magic number\*('' to identify the file format.
.SH PORTABILITY
There is no standard format for \fBputwin\fP.
This section gives a brief description of the existing formats.
-.SS X/Open Curses
+.SS "X/Open Curses"
Refer to \fIX/Open Curses, Issue 7\fP (2009).
.PP
X/Open's documentation for \fIenhanced curses\fP says only:
then creates and initializes a new window using that data.
.PP
The \fBputwin(\ )\fP function writes all data associated
-with \fIwin\fP into the \fBstdio\fP(3) stream to which \fIfilep\fP
+with \fIwin\fP into the \fI\%stdio\fP(3) stream to which \fIfilep\fP
points, using an \fBunspecified format\fP.
This information can be retrieved later using \fBgetwin(\ )\fP.
.RE
In the foregoing, emphasis was added to \fBunspecified format\fP
and to \fBXPG4 or to earlier XPG releases\fP,
for clarity.
-.SS Unix System V
+.SS "Unix System V"
Unix System\ V curses identified the file format by writing a
\*(``magic number\*('' at the beginning of the dump.
-The \fBWINDOW\fP data and the lines of text follow, all in binary form.
+The \fI\%WINDOW\fP data and the lines of text follow, all in binary form.
.PP
The Solaris curses source has these definitions:
.PP
.EE
.RE
.PP
-After the magic number, the \fBWINDOW\fP structure and line-data are
+After the magic number, the \fI\%WINDOW\fP structure and line-data are
written in binary format.
While the magic number used by the Unix systems can be seen using \fBod\fP(1),
none of the Unix systems documents the format used for screen-dumps.
.SS PDCurses
PDCurses added support for screen dumps in version 2.7 (2005).
Like Unix System\ V and ncurses5,
-it writes the \fBWINDOW\fP structure in binary,
+it writes the \fI\%WINDOW\fP structure in binary,
but begins the file with its three-byte identifier \*(``PDC\*('',
followed by a one-byte version,
e.g.,
the curses shared library major and minor versions
as the first two bytes (e.g., 7 and 1),
.bP
-followed by a binary dump of the \fBWINDOW\fP,
+followed by a binary dump of the \fI\%WINDOW\fP,
.bP
-some data for wide-characters referenced by the \fBWINDOW\fP structure, and
+some data for wide-characters referenced by the \fI\%WINDOW\fP structure, and
.bP
finally, lines as done by other implementations.
.SH EXAMPLES
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tabs.1,v 1.51 2023/12/17 00:13:57 tom Exp $
-.TH @TABS@ 1 2023-12-16 "ncurses 6.4" "User commands"
+.\" $Id: tabs.1,v 1.52 2023/12/23 16:08:25 tom Exp $
+.TH @TABS@ 1 2023-12-23 "ncurses 6.4" "User commands"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
since the normal initialization sequences do not ensure that tab-stops
are reset.
.SH OPTIONS
-.SS General Options
+.SS "General Options"
.TP 5
.BI \-T "name"
Tell \fB@TABS@\fP which terminal type to use.
The \fB@TABS@\fP program processes a single list of tab stops.
The last option to be processed which defines a list is the one that
determines the list to be processed.
-.SS Implicit Lists
+.SS "Implicit Lists"
Use a single number as an option,
e.g., \*(``\fB\-5\fP\*('' to set tabs at the given
interval (in this case 1, 6, 11, 16, 21, etc.).
Use \*(``\fB\-0\fP\*('' to clear all tabs.
.PP
Use \*(``\fB\-8\fP\*('' to set tabs to the standard interval.
-.SS Explicit Lists
+.SS "Explicit Lists"
An explicit list can be defined after the options
(this does not use a \*(``\-\*('').
The values in the list must be in increasing numeric order,
.RE
.PP
which is equivalent to the 1,6,11,16,21 example.
-.SS Predefined Tab-Stops
+.SS "Predefined Tab Stops"
POSIX defines several predefined lists of tab stops.
.TP 5
.B \-a
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: term.5,v 1.68 2023/12/16 20:32:22 tom Exp $
-.TH term 5 2023-12-16 "ncurses 6.4" "File formats"
+.\" $Id: term.5,v 1.69 2023/12/23 16:08:25 tom Exp $
+.TH term 5 2023-12-23 "ncurses 6.4" "File formats"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.SH SYNOPSIS
.B term
.SH DESCRIPTION
-.SS STORAGE LOCATION
+.SS "Storage Location"
Compiled terminfo descriptions are placed under the directory \fB\*d\fP.
Two configurations are supported
(when building the \fI\%ncurses\fP libraries):
\fI\%TERMINFO_DIRS\fP environment variable by assuming a directory tree
for entries that correspond to an existing directory,
and hashed database otherwise.
-.SS LEGACY STORAGE FORMAT
+.SS "Legacy Storage Format"
The format has been chosen so that it will be the same on all hardware.
An 8 or more bit byte is assumed, but no assumptions about byte ordering
or sign extension are made.
interpreted form, not the printing representation.
Padding information $<nn> and parameter information %x are
stored intact in uninterpreted form.
-.SS EXTENDED STORAGE FORMAT
+.SS "Extended Storage Format"
The previous section describes the conventional terminfo binary format.
With some minor variations of the offsets (see PORTABILITY),
the same binary format is used in all modern Unix systems.
described in \fBterm_variables\fP(3X) which associate the long capability
names with members of a \fBTERMTYPE\fP structure.
.
-.SS EXTENDED NUMBER FORMAT
+.SS "Extended Number Format"
On occasion, 16-bit signed integers are not large enough.
With \fI\%ncurses\fP 6.1,
a new format was introduced by making a few changes
this is why the numbers and sizes are included.
Also, new capabilities must always be added at the end of the lists
of boolean, number, and string capabilities.
-.SS Binary format
+.SS "Binary Format"
X/Open Curses does not specify a format for the terminfo database.
System V curses used a directory-tree of binary files,
one per terminal description.
The format used by the other Unix versions
can be matched by building \fI\%ncurses\fP
with different configuration options.
-.SS Magic codes
+.SS "Magic Codes"
The magic number in a binary terminfo file is the first 16-bits (two bytes).
Besides making it more reliable for the library to check that a file
is terminfo,
with 0433, 0435 as screen-dumps (see \fBscr_dump\fP(5)).
This implementation uses 01036 as a continuation of that sequence,
but with a different high-order byte to avoid confusion.
-.SS The TERMTYPE structure
+.SS "The \fITERMTYPE\fP Structure"
Direct access to the \fBTERMTYPE\fP structure is provided for legacy
applications.
Portable applications should use the \fBtigetflag\fP and related functions
described in \fBcurs_terminfo\fP(3X) for reading terminal capabilities.
-.SS Mixed-case terminal names
+.SS "Mixed-case Terminal Names"
A small number of terminal descriptions use uppercase characters in
their names.
If the underlying filesystem ignores the difference between
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: term_variables.3x,v 1.33 2023/11/25 14:32:36 tom Exp $
-.TH term_variables 3X 2023-11-25 "ncurses 6.4" "Library calls"
+.\" $Id: term_variables.3x,v 1.34 2023/12/23 16:08:25 tom Exp $
+.TH term_variables 3X 2023-12-23 "ncurses 6.4" "Library calls"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
which provide read-only access to \fIcurses\fP's state.
In either case, applications should treat them as read-only to avoid
confusing the library.
-.SS Alternate Character Set Mapping
+.SS "Alternate Character Set Mapping"
After initializing the curses or terminfo interfaces,
the \fBacs_map\fP array holds information used to translate cells
with the \fBA_ALTCHARSET\fP video attribute into line-drawing characters.
constants in <curses.h>.
.PP
The comparable data for the wide-character library is a private variable.
-.SS Current Terminal Data
+.SS "Current Terminal Data"
After initializing the curses or terminfo interfaces,
the \fBcur_term\fP contains data describing the current terminal.
This variable is also set as a side-effect of \fBset_term\fP(3X)
use as a parameter to \fBset_term\fP, for switching between screens.
Alternatively, one can save the return value from \fBnewterm\fP
or \fBsetupterm\fP(3X) to reuse in \fBset_term\fP.
-.SS Terminfo Lookup Tables
+.SS "\fIterminfo\fP Lookup Tables"
The \fB@TIC@\fP(1) and \fB@INFOCMP@\fP(1) programs use lookup tables for
the long and short names of terminfo capabilities,
as well as the corresponding names for termcap capabilities.
\fBnumcodes\fP, and
\fBstrcodes\fP.
.\"
-.SS Terminal Type
+.SS "Terminal Type"
A terminal description begins with one or more terminal names
separated by \*(``|\*('' (vertical bars).
On initialization of the curses or terminfo interfaces,
\fBsetupterm\fP(3X) copies the terminal names to the array \fBttytype\fP.
.\"
-.SS Terminfo Names
+.SS "\fIterminfo\fP Names"
In addition to the variables, \fB<term.h>\fP also defines a symbol for each
terminfo capability \fIlong name\fP.
These are in terms of the symbol \fBCUR\fP,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: terminfo.head,v 1.57 2023/12/18 01:15:58 tom Exp $
-.TH terminfo 5 2023-12-17 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
+.\" $Id: terminfo.head,v 1.59 2023/12/23 23:44:58 tom Exp $
+.TH terminfo 5 2023-12-23 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.PP
This manual describes \fI\%ncurses\fP
version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
-.SS Terminfo Entry Syntax
+.SS "\fIterminfo\fP Entry Syntax"
Entries in
.I terminfo
consist of a sequence of fields:
.TE
.PP
For more on terminal naming conventions, see the \fBterm\fP(7) manual page.
-.SS Terminfo Capabilities Syntax
+.SS "\fIterminfo\fP Capabilities Syntax"
The terminfo entry consists of several \fIcapabilities\fP,
i.e., features that the terminal has,
or methods for exercising the terminal's features.
i.e., suppressed from the terminal entry,
by following its name with \*(``@\*(''
rather than a capability value.
-.SS Similar Terminals
+.SS "Similar Terminals"
If there are two very similar terminals, one (the variant) can be defined as
being just like the other (the base) with certain exceptions.
In the
An entry included via \fBuse\fP can contain canceled capabilities,
which have the same effect as if those cancels were inline in the
using terminal entry.
-.SS Predefined Capabilities
+.SS "Predefined Capabilities"
.\" Head of terminfo man page ends here
.ps -1
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: terminfo.tail,v 1.139 2023/12/17 22:56:21 tom Exp $
+.\" $Id: terminfo.tail,v 1.140 2023/12/23 16:23:35 tom Exp $
.ps +1
.SS "User-Defined Capabilities"
.
an uninitialized local array on the stack in the \fBtparm\fP function.
.bP
SVr3.2 curses supported \fIstatic\fP variables.
-Those are an array in the \fBTERMINAL\fP
+Those are an array in the \fI\%TERMINAL\fP
structure (declared in \fBterm.h\fP),
and are zeroed automatically when the \fBsetupterm\fP function
allocates the data.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tic.1m,v 1.104 2023/12/16 20:33:11 tom Exp $
-.TH @TIC@ 1M 2023-12-16 "ncurses 6.4" "User commands"
+.\" $Id: tic.1m,v 1.105 2023/12/23 16:08:25 tom Exp $
+.TH @TIC@ 1M 2023-12-23 "ncurses 6.4" "User commands"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.PP
The \fIFetching Compiled Descriptions\fP section in the \fBterminfo\fR(5)
manual goes into further detail.
-.SS ALIASES
+.SS Aliases
This is the same program as @INFOTOCAP@ and @CAPTOINFO@;
usually those are linked to, or copied from this program:
.bP
make an extended table entry for that.
User-defined capability strings
whose name begins with \*(``k\*('' are treated as function keys.
-.SS PARAMETERS
+.SS Parameters
.TP
\fIfile\fP
contains one or more \fBterminfo\fP terminal descriptions in source
.IP
If \fIfile\fP is \*(``-\*('', then the data is read from the standard input.
The \fIfile\fP parameter may also be the path of a character-device.
-.SS PROCESSING
+.SS Processing
All but one of the capabilities recognized by \fB@TIC@\fP are documented
in \fBterminfo\fP(5).
The exception is the \fBuse\fP capability.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tput.1,v 1.92 2023/12/16 20:32:22 tom Exp $
-.TH @TPUT@ 1 2023-12-16 "ncurses 6.4" "User commands"
+.\" $Id: tput.1,v 1.96 2023/12/23 20:55:36 tom Exp $
+.TH @TPUT@ 1 2023-12-23 "ncurses 6.4" "User commands"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.SH NAME
\fB\%@TPUT@\fP,
\fB\%reset\fP \-
-initialize a terminal or query \fIterminfo\fR database
+initialize a terminal or query \fI\%term\%info\fP database
.SH SYNOPSIS
-\fB@TPUT@\fR [\fB\-T \fIterminal-type\fR] \fIcapname\fR [\fIparameters\fR]
-.br
-\fB@TPUT@\fR [\fB\-T \fIterminal-type\fR] [\fB\-x\fR] \fBclear\fR
-.br
-\fB@TPUT@\fR [\fB\-T \fIterminal-type\fR] \fBinit\fR
-.br
-\fB@TPUT@\fR [\fB\-T \fIterminal-type\fR] \fBreset\fR
-.br
-\fB@TPUT@\fR [\fB\-T \fIterminal-type\fR] \fBlongname\fR
-.br
-\fB@TPUT@ \-S\fP \fB<<\fP
-.br
+\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] \fIcap-code\fP [\fIparameter\fP .\|.\|.]
+.PP
+\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] [\fB\-x\fP] \fBclear\fP
+.PP
+\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] \fBinit\fP
+.PP
+\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] \fBreset\fP
+.PP
+\fB@TPUT@\fP [\fB\-T\fP \fIterminal-type\fP] \fBlongname\fP
+.PP
+\fB@TPUT@ \-S\fP
+.PP
\fB@TPUT@ \-V\fP
.SH DESCRIPTION
-The \fB@TPUT@\fP utility uses the \fBterminfo\fP database to make the
-values of terminal-dependent capabilities and information available to
-the shell (see \fBsh\fP(1)), to initialize or reset the terminal, or
-return the long name of the requested terminal type.
-The result depends upon the capability's type:
-.RS 3
-.TP 5
-string
-\fB@TPUT@\fP writes the string to the standard output.
-No trailing newline is supplied.
+\fB@TPUT@\fP uses the \fI\%term\%info\fP library and database to make
+the values of terminal-specific capabilities and information available
+to the shell,
+to initialize or reset the terminal,
+or report the long name of the current
+(or specified)
+terminal type.
+When retrieving capability values,
+the result depends upon the capability's type.
+.TP 9 \" "Boolean" + 2n
+Boolean
+\fB@TPUT@\fP sets its exit status to
+.B 0
+if the terminal possesses
+.I cap-code,
+and
+.B 1
+if it does not.
.TP
integer
-\fB@TPUT@\fP writes the decimal value to the standard output,
-with a trailing newline.
+\fB@TPUT@\fP writes
+.IR cap-code 's
+decimal value to the standard output stream if defined
+.RB ( \-1
+if it is not)
+followed by a newline.
.TP
-boolean
-\fB@TPUT@\fP simply sets the exit code
-(\fB0\fP for TRUE if the terminal has the capability,
-\fB1\fP for FALSE if it does not),
-and writes nothing to the standard output.
-.RE
+string
+\fB@TPUT@\fP writes
+.IR cap-code 's
+value to the standard output stream if defined,
+without a trailing newline.
.PP
Before using a value returned on the standard output,
-the application should test the exit code
-(e.g., \fB$?\fP, see \fBsh\fP(1)) to be sure it is \fB0\fP.
-(See the \fBEXIT STATUS\fP and \fBDIAGNOSTICS\fP sections.)
-For a complete list of capabilities
-and the \fIcapname\fP associated with each, see \fBterminfo\fP(5).
+the application should test \fB@TPUT@\fP's exit status
+(for example,
+using \fB$?\fP in \fIsh\fP(1))
+to be sure it is \fB0\fP;
+see sections \*(``EXIT STATUS\*('' and \*(``DIAGNOSTICS\*('' below.
+For a complete list of
+.I cap-codes,
+see \fB\%terminfo\fP(5).
.SS Options
.TP
\fB\-S\fP
-allows more than one capability per invocation of \fB@TPUT@\fP. The
-capabilities must be passed to \fB@TPUT@\fP from the standard input
-instead of from the command line (see example).
-Only one \fIcapname\fP is allowed per line.
+allows more than one capability per invocation of \fB@TPUT@\fP.
+The capabilities must be passed to \fB@TPUT@\fP from the standard input
+instead of from the command line
+(see example).
+Only one \fIcap-code\fP is allowed per line.
The \fB\-S\fP option changes the
-meaning of the \fB0\fP and \fB1\fP boolean and string exit codes (see the
-EXIT STATUS section).
+meaning of the \fB0\fP and \fB1\fP Boolean and string exit statuses
+(see section \*(``EXIT STATUS\*('' below).
.IP
Because some capabilities may use
\fIstring\fP parameters rather than \fInumbers\fP,
A few commands (\fBinit\fP, \fBreset\fP and \fBlongname\fP) are
special; they are defined by the \fB@TPUT@\fP program.
The others are the names of \fIcapabilities\fP from the terminal database
-(see \fBterminfo\fP(5) for a list).
+(see \fB\%terminfo\fP(5) for a list).
Although \fBinit\fP and \fBreset\fP resemble capability names,
\fB@TPUT@\fP uses several capabilities to perform these special functions.
.TP
-\fIcapname\fP
+\fIcap-code\fP
indicates the capability from the terminal database.
.IP
If the capability is a string that takes parameters, the arguments
.TP
(4)
if present, the terminal's initialization strings will be
-output as detailed in the \fBterminfo\fP(5) section on
+output as detailed in the \fB\%terminfo\fP(5) section on
.IR "Tabs and Initialization" ,
.TP
(5)
.IP
Otherwise, \fBreset\fP acts identically to \fBinit\fP.
.TP
-\fBlongname\fP
-If the terminal database is present and an entry for the
-user's terminal exists (see \fB\-T\fItype\fR above), then the long name
-of the terminal will be put out.
-The long name is the last
-name in the first line of the terminal's description in the
-\fBterminfo\fP database [see \fBterm\fP(5)].
+.B longname
+If the terminal database is present and an entry for the user's terminal
+exists
+(see
+.B \-T
+.I type
+above),
+\fB\%@TPUT@\fP reports the terminal's description
+(or \*(``long name\*('')
+to the standard output,
+without a trailing newline.
+See \fBterm\fP(5).
.SS Aliases
\fB@TPUT@\fP handles the \fBclear\fP, \fBinit\fP and \fBreset\fP
commands specially:
same effect as \fB@TPUT@ init\fP.
Again, you are less likely to use that link because another program
named \fBinit\fP has a more well-established use.
-.SS Terminal Size
+.SS "Terminal Size"
Besides the special commands (e.g., \fBclear\fP),
@TPUT@ treats certain terminfo capabilities specially:
\fBlines\fP and \fBcols\fP.
.SH EXIT STATUS
If the \fB\-S\fP option is used,
\fB@TPUT@\fP checks for errors from each line,
-and if any errors are found, will set the exit code to 4 plus the
+and if any errors are found, will set the exit status to 4 plus the
number of lines with errors.
-If no errors are found, the exit code is \fB0\fP.
+If no errors are found, the exit status is \fB0\fP.
No indication of which line failed can be given so
-exit code \fB1\fP will never appear.
-Exit codes \fB2\fP, \fB3\fP, and
+exit status \fB1\fP will never appear.
+Exit statuses \fB2\fP, \fB3\fP, and
\fB4\fP retain their usual interpretation.
If the \fB\-S\fP option is not used,
-the exit code depends on the type of \fIcapname\fP:
+the exit status depends on the type of \fIcap-code\fP:
.RS 3
.TP
-.I boolean
+.I Boolean
a value of \fB0\fP is set for TRUE and \fB1\fP for FALSE.
.TP
.I string
a value of \fB0\fP is set if the
-\fIcapname\fP is defined for this terminal \fItype\fP (the value of
-\fIcapname\fP is returned on standard output);
-a value of \fB1\fP is set if \fIcapname\fP
+\fIcap-code\fP is defined for this terminal \fItype\fP (the value of
+\fIcap-code\fP is returned on standard output);
+a value of \fB1\fP is set if \fIcap-code\fP
is not defined for this terminal \fItype\fP
(nothing is written to standard output).
.TP
.I integer
a value of \fB0\fP is always set,
-whether or not \fIcapname\fP is defined for this terminal \fItype\fP.
-To determine if \fIcapname\fP is defined for this terminal \fItype\fP,
+whether or not \fIcap-code\fP is defined for this terminal \fItype\fP.
+To determine if \fIcap-code\fP is defined for this terminal \fItype\fP,
the user must test the value written to standard output.
A value of \fB\-1\fP
-means that \fIcapname\fP is not defined for this terminal \fItype\fP.
+means that \fIcap-code\fP is not defined for this terminal \fItype\fP.
.TP
.I other
\fBreset\fP or \fBinit\fP may fail to find their respective files.
-In that case, the exit code is set to 4 + \fBerrno\fP.
+In that case, the exit status is set to 4 + \fBerrno\fP.
.RE
.PP
-Any other exit code indicates an error; see the DIAGNOSTICS section.
+Any other exit status indicates an error;
+see section \*(``DIAGNOSTICS\*('' below.
.SH DIAGNOSTICS
-\fB@TPUT@\fP prints the following error messages and sets the corresponding exit
-codes.
+\fB@TPUT@\fP prints the following error messages and sets the
+corresponding exit statuses.
.PP
.ne 15
.TS
l l.
-exit code error message
+exit status error message
=
\fB0\fP T{
-(\fIcapname\fP is a numeric variable that is not specified in the
-\fBterminfo\fP(5) database for this terminal type, e.g.
+(\fIcap-code\fP is a numeric variable that is not specified in the
+\fB\%terminfo\fP(5) database for this terminal type, e.g.
\fB@TPUT@ \-T450 lines\fP and \fB@TPUT@ \-Thp2621 xmc\fP)
T}
\fB1\fP no error message is printed, see the \fBEXIT STATUS\fP section.
\fB2\fP usage error
-\fB3\fP unknown terminal \fItype\fP or no \fBterminfo\fP database
-\fB4\fP unknown \fBterminfo\fP capability \fIcapname\fP
+\fB3\fP unknown terminal \fItype\fP or no \fI\%term\%info\fP database
+\fB4\fP unknown \fI\%term\%info\fP capability \fIcap-code\fP
\fB>4\fP error occurred in \-S
=
.TE
This implementation of \fBtput\fP differs from AT&T \fBtput\fP in
two important areas:
.bP
-\fB@TPUT@\fP \fIcapname\fP writes to the standard output.
+\fB@TPUT@\fP \fIcap-code\fP writes to the standard output.
That need not be a regular terminal.
However, the subcommands which manipulate terminal modes
may not use the standard output.
If it is not able to open a terminal, e.g., when running in \fBcron\fP(1),
\fB@TPUT@\fP will return an error.
.bP
-AT&T \fBtput\fP guesses the type of its \fIcapname\fP operands by seeing if
-all of the characters are numeric, or not.
+AT&T \fBtput\fP guesses the type of its \fIcap-code\fP operands by
+seeing if all of the characters are numeric,
+or not.
.IP
-Most implementations which provide support for \fIcapname\fP operands
+Most implementations which provide support for \fIcap-code\fP operands
use the \fBtparm\fP function to expand parameters in it.
That function expects a mixture of numeric and string parameters,
requiring \fB@TPUT@\fP to know which type to use.
.IP
This implementation uses a table to determine the parameter types for
-the standard \fIcapname\fP operands, and an internal library
-function to analyze nonstandard \fIcapname\fP operands.
+the standard \fIcap-code\fP operands, and an internal library
+function to analyze nonstandard \fIcap-code\fP operands.
.IP
Besides providing more reliable operation than AT&T's utility,
a portability problem is introduced by this analysis:
specifically for OpenBSD.
.PP
This implementation (unlike others) can accept both \fItermcap\fP
-and \fIterminfo\fP names for the \fIcapname\fP feature,
+and \fIterminfo\fP names for the \fIcap-code\fP feature,
if
\fItermcap\fP support is compiled in.
However, the predefined \fItermcap\fP and \fIterminfo\fP names have two
.PP
The \fBlongname\fP and \fB\-S\fP options, and the parameter-substitution
features used in the \fBcup\fP example,
-were not supported in BSD curses before 4.3reno (1989) or in
-AT&T/USL curses before SVr4 (1988).
+were not supported in
+AT&T/USL
+.I curses
+before SVr4 (1989).
+Later, 4.3BSD-Reno (1990) added support for \fBlongname\fP,
+.\" longname was added in October 1989.
+and NetBSD (1994) added support for the parameter-substitution features.
.PP
IEEE Std 1003.1/The Open Group Base Specifications Issue 7 (POSIX.1-2008)
documents only the operands for \fBclear\fP, \fBinit\fP and \fBreset\fP.
There are a few interesting observations to make regarding that:
.bP
-In this implementation, \fBclear\fP is part of the \fIcapname\fP support.
+In this implementation,
+\fBclear\fP is part of the \fIcap-code\fP support.
The others (\fBinit\fP and \fBlongname\fP) do not correspond to terminal
capabilities.
.bP
Other implementations of \fBtput\fP on
SVr4-based systems such as Solaris, IRIX64 and HP-UX
as well as others such as AIX and Tru64
-provide support for \fIcapname\fP operands.
+provide support for \fIcap-code\fP operands.
.bP
A few platforms such as FreeBSD recognize termcap names rather
than terminfo capability names in their respective \fBtput\fP commands.
support the full set of capability names, the reasoning for documenting
only a few may not be apparent.
.bP
-X/Open Curses Issue 7 documents \fBtput\fP differently, with \fIcapname\fP
-and the other features used in this implementation.
+X/Open Curses Issue 7 documents \fBtput\fP differently,
+with \fIcap-code\fP and the other features used in this implementation.
.bP
That is, there are two standards for \fBtput\fP:
POSIX (a subset) and X/Open Curses (the full implementation).
and the terminal capabilities database.
.bP
While it is certainly possible to write a \fBtput\fP program
-without using curses,
-none of the systems which have a curses implementation provide
-a \fBtput\fP utility which does not provide the \fIcapname\fP feature.
+without using
+.I curses,
+no system with a
+.I curses
+implementation provides a \fBtput\fP utility that does not also supply
+the \fIcap-code\fP feature.
.PP
X/Open Curses Issue 7 (2009) is the first version to document utilities.
However that part of X/Open Curses does not follow existing practice
-(i.e., Unix features documented in SVID 3):
+(that is,
+System\ V
+.I curses
+behavior).
.bP
-It assigns exit code 4 to \*(``invalid operand\*('',
+It assigns exit status 4 to \*(``invalid operand\*('',
which may be the same as \fIunknown capability\fP.
For instance, the source code for Solaris' xcurses uses the term
\*(``invalid\*('' in this case.
.bP
-It assigns exit code 255 to a numeric variable that is not specified in
+It assigns exit status 255 to a numeric variable that is not specified in
the terminfo database.
That likely is a documentation error,
confusing the \fB\-1\fP written to the standard output for an absent
-or cancelled numeric value versus an (unsigned) exit code.
+or cancelled numeric value versus an (unsigned) exit status.
.PP
-The various Unix systems (AIX, HP-UX, Solaris) use the same exit-codes
+The various Unix systems (AIX, HP-UX, Solaris) use the same exit statuses
as \fI\%ncurses\fP.
.PP
-NetBSD curses documents different exit codes which do not correspond
+NetBSD curses documents different exit statuses which do not correspond
to either \fI\%ncurses\fP or X/Open.
.SH HISTORY
The \fBtput\fP command was begun by Bill Joy in 1980.
.TP 5
\fB@TPUT@ init\fP
Initialize the terminal according to the type of
-terminal in the environmental variable \fITERM\fP.
+terminal in the environment variable \fITERM\fP.
This command should be included in everyone's .profile after
-the environmental variable \fITERM\fP has been exported,
+the environment variable \fITERM\fP has been exported,
as illustrated on the \fBprofile\fP(5) manual page.
.TP 5
\fB@TPUT@ \-T5620 reset\fP
Reset an AT&T 5620 terminal, overriding the type of
-terminal in the environmental variable \fITERM\fP.
+terminal in the environment variable \fITERM\fP.
.TP 5
\fB@TPUT@ cup 0 0\fP
Send the sequence to move the cursor to row \fB0\fP, column \fB0\fP
prompt: \fBecho "${bold}Please type in your name: ${offbold}\ec"\fP
.TP 5
\fB@TPUT@ hc\fP
-Set exit code to indicate if the current terminal is a hard copy terminal.
+Set exit status to indicate if the current terminal is a hard copy terminal.
.TP 5
\fB@TPUT@ cup 23 4\fP
Send the sequence to move the cursor to row 23, column 4.
Send the terminfo string for cursor-movement, with no parameters substituted.
.TP 5
\fB@TPUT@ longname\fP
-Print the long name from the \fBterminfo\fP database for the
-type of terminal specified in the environmental
+Print the long name from the \fI\%term\%info\fP database for the
+type of terminal specified in the environment
variable \fITERM\fP.
-.PP
-.RS 5
-\fB@TPUT@ \-S <<!\fP
-.br
-\fB> clear\fP
-.br
-\fB> cup 10 10\fP
-.br
-\fB> bold\fP
-.br
-\fB> !\fP
-.RE
.TP 5
-\&
-This example shows \fB@TPUT@\fP processing several capabilities
-in one invocation.
+\fB@TPUT@ \-S\fP
+The \fB\-S\fP option can be profitably used with a shell
+\*(``here document\*(''.
+.IP
+.EX
+$ \fB@TPUT@ \-S <<!\fP
+> \fBclear\fP
+> \fBcup 10 10\fP
+> \fBbold\fP
+> \fB!\fP
+.EE
+.IP
+We see \fB@TPUT@\fP processing several capabilities in one invocation.
It clears the screen,
-moves the cursor to position 10, 10
-and turns on bold (extra bright) mode.
-The list is terminated by an exclamation mark (\fB!\fP) on a line by itself.
+moves the cursor to position
+(10, 10)
+and turns on bold
+(extra bright)
+mode.
+.IP
+The same sequence of commands can be combined using the OpenBSD feature:
+.IP
+.EX
+$ \fB@TPUT@ \fBclear\fP \fBcup 10 10\fP \fBbold\fP
+.EE
.SH SEE ALSO
\fB\%@CLEAR@\fP(1),
\fB\%stty\fP(1),
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tset.1,v 1.78 2023/12/16 20:32:22 tom Exp $
-.TH @TSET@ 1 2023-12-16 "ncurses 6.4" "User commands"
+.\" $Id: tset.1,v 1.79 2023/12/23 16:20:07 tom Exp $
+.TH @TSET@ 1 2023-12-23 "ncurses 6.4" "User commands"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.br
\fB@RESET@\fP [\fB\-IQVcqrsw\fP] [\fB\-\fP] [\fB\-e\fP \fIch\fP] [\fB\-i\fP \fIch\fP] [\fB\-k\fP \fIch\fP] [\fB\-m\fP \fImapping\fP] [\fIterminal-type\fP]
.SH DESCRIPTION
-.SS tset - initialization
+.SS "\fItset\fP \(em initialization"
This program initializes terminals.
.PP
First, \fB@TSET@\fP retrieves the current terminal mode settings
.PP
1. The \fBterminal\fP argument specified on the command line.
.PP
-2. The value of the \fITERM\fP environmental variable.
+2. The value of the \fITERM\fP environment variable.
.PP
3. (BSD systems only.) The terminal type associated with the standard
error output device in the \fI/etc/ttys\fP file.
(On System\ V hosts and systems using that convention,
-\fBgetty\fP(1) does this job by setting
+\fI\%getty\fP(8) does this job by setting
\fITERM\fP according to the type passed to it by \fI\%/etc/inittab\fP.)
.PP
4. The default terminal type, \*(``unknown\*('',
Finally, if the erase, interrupt and line kill characters have changed,
or are not set to their default values, their values are displayed to the
standard error output.
-.SS reset - reinitialization
+.SS "\fIreset\fP \(em reinitialization"
When invoked as \fB@RESET@\fP, \fB@TSET@\fP sets the terminal
modes to \*(``sane\*('' values:
.bP
.PP
When the \fB\-s\fP option is specified, the commands to enter the information
into the shell's environment are written to the standard output.
-If the \fISHELL\fP environmental variable ends in \*(``csh\*('',
+If the \fISHELL\fP environment variable ends in \*(``csh\*('',
the commands
-are for \fBcsh\fP, otherwise, they are for \fBsh\fP(1).
-Note, the \fBcsh\fP commands set and unset the shell variable
-\fBnoglob\fP, leaving it unset.
+are for \fIcsh\fP(1),
+otherwise,
+they are for \fIsh\fP(1).
+The \fIcsh\fP commands set and unset the shell variable \fBnoglob\fP,
+leaving it unset.
The following line in the \fB.login\fP
or \fB.profile\fP files will initialize the environment correctly:
.sp
.SS "Terminal Type Mapping"
When the terminal is not hardwired into the system (or the current
system information is incorrect) the terminal type derived from the
-\fI/etc/ttys\fP file or the \fITERM\fP environmental variable is often
+\fI/etc/ttys\fP file or the \fITERM\fP environment variable is often
something generic like \fBnetwork\fP, \fBdialup\fP, or \fBunknown\fP.
When \fB@TSET@\fP is used in a startup script it is often desirable to
provide information about the type of terminal used on such ports.
No whitespace characters are permitted in the \fB\-m\fP option argument.
Also, to avoid problems with meta-characters, it is suggested that the
entire \fB\-m\fP option argument be placed within single quote characters,
-and that \fBcsh\fP users insert a backslash character (\*(``\e\*('') before
-any exclamation marks (\*(``!\*('').
+and that \fIcsh\fP users insert a backslash character (\*(``\e\*('')
+before any exclamation marks (\*(``!\*('').
.SH OPTIONS
The options are as follows:
.TP 5
The \fB@TSET@\fP command uses these environment variables:
.TP 5
.I SHELL
-tells \fB@TSET@\fP whether to initialize \fITERM\fP using \fBsh\fP(1) or
-\fBcsh\fP(1) syntax.
+tells \fB@TSET@\fP whether to initialize \fITERM\fP using \fIsh\fP(1) or
+\fIcsh\fP(1) syntax.
.TP 5
.I TERM
Denotes your terminal type.
The \fB\%@TSET@\fP utility provides backward compatibility with BSD
environments;
under most modern Unices,
-\fI\%/etc/inittab\fP and \fBgetty\fP(1) can set \fITERM\fP appropriately
-for each dial-up line,
+\fI\%/etc/inittab\fP and \fI\%getty\fP(8) can set \fITERM\fP
+appropriately for each dial-up line,
obviating what was \fB\%@TSET@\fP's most important use.
This implementation behaves like 4.4BSD \fBtset\fP,
with a few exceptions we shall consider now.
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: user_caps.5,v 1.42 2023/12/16 20:32:22 tom Exp $
-.TH user_caps 5 2023-12-16 "ncurses 6.4" "File formats"
+.\" $Id: user_caps.5,v 1.43 2023/12/23 16:08:25 tom Exp $
+.TH user_caps 5 2023-12-23 "ncurses 6.4" "File formats"
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
Fitting that into termcap's limitation of 2-character names
would be pointless.
These extended keys are available only with terminfo.
-.SS Recognized capabilities
+.SS "Recognized Capabilities"
The \fI\%ncurses\fP library uses the user-definable capabilities.
While the terminfo database may have other extensions,
\fI\%ncurses\fP makes explicit checks for these:
%?%p4%tM%em%;,
.fi
.
-.SS Extended key-definitions
+.SS "Extended Key Definitions"
Several terminals provide the ability to send distinct strings for
combinations of modified special keys.
There is no standard for what those keys can send.
-ncurses6 (6.4+20231217) unstable; urgency=low
+ncurses6 (6.4+20231223) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 17 Dec 2023 18:18:40 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 23 Dec 2023 06:35:00 -0500
ncurses6 (5.9+20131005) unstable; urgency=low
-ncurses6 (6.4+20231217) unstable; urgency=low
+ncurses6 (6.4+20231223) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 17 Dec 2023 18:18:40 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 23 Dec 2023 06:35:00 -0500
ncurses6 (5.9+20131005) unstable; urgency=low
-ncurses6 (6.4+20231217) unstable; urgency=low
+ncurses6 (6.4+20231223) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 17 Dec 2023 18:18:40 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 23 Dec 2023 06:35:00 -0500
ncurses6 (5.9+20120608) unstable; urgency=low
-; $Id: mingw-ncurses.nsi,v 1.624 2023/12/17 23:18:40 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.625 2023/12/23 11:35:00 tom Exp $\r
\r
; TODO add examples\r
; TODO bump ABI to 6\r
!define VERSION_MAJOR "6"\r
!define VERSION_MINOR "4"\r
!define VERSION_YYYY "2023"\r
-!define VERSION_MMDD "1217"\r
+!define VERSION_MMDD "1223"\r
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
\r
!define MY_ABI "5"\r
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.4
-Release: 20231217
+Release: 20231223
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.4
-Release: 20231217
+Release: 20231223
License: X11
Group: Development/Libraries
URL: https://invisible-island.net/ncurses/
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.4
-Release: 20231217
+Release: 20231223
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz