1# ncurses 6.1 - patch 20190727 - Thomas E. Dickey
2#
3# ------------------------------------------------------------------------------
4#
5# Ncurses 6.1 is at
6# 	ftp.gnu.org:/pub/gnu
7#
8# Patches for ncurses 6.1 can be found at
9# 	ftp://ftp.invisible-island.net/ncurses/6.1
10#	http://invisible-mirror.net/archives/ncurses/6.1
11#
12# ------------------------------------------------------------------------------
13# ftp://ftp.invisible-island.net/ncurses/6.1/ncurses-6.1-20190727.patch.gz
14# patch by Thomas E. Dickey <dickey@invisible-island.net>
15# created  Sun Jul 28 00:01:44 UTC 2019
16# ------------------------------------------------------------------------------
17# NEWS                                  |    6
18# VERSION                               |    2
19# dist.mk                               |    4
20# doc/html/ada/funcs/T.htm              |    2
21# doc/html/man/adacurses6-config.1.html |    2
22# doc/html/man/captoinfo.1m.html        |    2
23# doc/html/man/clear.1.html             |    2
24# doc/html/man/form.3x.html             |    2
25# doc/html/man/infocmp.1m.html          |    2
26# doc/html/man/infotocap.1m.html        |    2
27# doc/html/man/menu.3x.html             |    2
28# doc/html/man/ncurses.3x.html          |    2
29# doc/html/man/ncurses6-config.1.html   |    2
30# doc/html/man/panel.3x.html            |    2
31# doc/html/man/tabs.1.html              |    2
32# doc/html/man/terminfo.5.html          | 1192 ++++++++++++++++----------------
33# doc/html/man/tic.1m.html              |    2
34# doc/html/man/toe.1m.html              |    2
35# doc/html/man/tput.1.html              |    2
36# doc/html/man/tset.1.html              |    2
37# doc/html/ncurses-intro.html           |  379 ++++++----
38# doc/ncurses-intro.doc                 |   36
39# include/Caps                          |   10
40# include/Caps.aix4                     |   10
41# include/Caps.hpux11                   |   10
42# include/Caps.keys                     |   10
43# include/Caps.osf1r5                   |   10
44# include/Caps.uwin                     |   10
45# man/manhtml.externs                   |    5
46# man/terminfo.head                     |   19
47# ncurses-6.1-20190727/progs/ktrace.out |binary
48# ncurses/tinfo/add_tries.c             |    5
49# ncurses/tinfo/make_hash.c             |   10
50# package/debian-mingw/changelog        |    4
51# package/debian-mingw64/changelog      |    4
52# package/debian/changelog              |    4
53# package/mingw-ncurses.nsi             |    4
54# package/mingw-ncurses.spec            |    2
55# package/ncurses.spec                  |    2
56# package/ncursest.spec                 |    2
57# progs/tic.c                           |   14
58# 41 files changed, 968 insertions(+), 818 deletions(-)
59# ------------------------------------------------------------------------------
60Index: NEWS
61Prereq:  1.3351
62--- ncurses-6.1-20190720+/NEWS	2019-07-21 00:33:00.000000000 +0000
63+++ ncurses-6.1-20190727/NEWS	2019-07-27 22:45:29.000000000 +0000
64@@ -25,7 +25,7 @@
65 -- sale, use or other dealings in this Software without prior written        --
66 -- authorization.                                                            --
67 -------------------------------------------------------------------------------
68--- $Id: NEWS,v 1.3351 2019/07/21 00:33:00 tom Exp $
69+-- $Id: NEWS,v 1.3354 2019/07/27 22:45:29 tom Exp $
70 -------------------------------------------------------------------------------
71
72 This is a log of changes that ncurses has gone through since Zeyd started
73@@ -45,6 +45,10 @@
74 Changes through 1.9.9e did not credit all contributions;
75 it is not possible to add this information.
76
77+20190727
78+	+ fix a few coverity warnings.
79+	+ documentation updates based on tctest.
80+
81 20190720
82 	+ fix a few warnings for gcc 4.x
83 	+ add some portability/historical details to the tic, toe and infocmp
84Index: VERSION
85--- ncurses-6.1-20190720+/VERSION	2019-07-20 10:26:30.000000000 +0000
86+++ ncurses-6.1-20190727/VERSION	2019-07-26 23:10:14.000000000 +0000
87@@ -1 +1 @@
88-5:0:10	6.1	20190720
89+5:0:10	6.1	20190727
90Index: dist.mk
91Prereq:  1.1296
92--- ncurses-6.1-20190720+/dist.mk	2019-07-20 10:26:30.000000000 +0000
93+++ ncurses-6.1-20190727/dist.mk	2019-07-26 23:10:14.000000000 +0000
94@@ -25,7 +25,7 @@
95 # use or other dealings in this Software without prior written               #
96 # authorization.                                                             #
97 ##############################################################################
98-# $Id: dist.mk,v 1.1296 2019/07/20 10:26:30 tom Exp $
99+# $Id: dist.mk,v 1.1297 2019/07/26 23:10:14 tom Exp $
100 # Makefile for creating ncurses distributions.
101 #
102 # This only needs to be used directly as a makefile by developers, but
103@@ -37,7 +37,7 @@
104 # These define the major/minor/patch versions of ncurses.
105 NCURSES_MAJOR = 6
106 NCURSES_MINOR = 1
107-NCURSES_PATCH = 20190720
108+NCURSES_PATCH = 20190727
109
110 # We don't append the patch to the version, since this only applies to releases
111 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
112Index: doc/html/ada/funcs/T.htm
113--- ncurses-6.1-20190720+/doc/html/ada/funcs/T.htm	2019-07-13 23:50:38.000000000 +0000
114+++ ncurses-6.1-20190727/doc/html/ada/funcs/T.htm	2019-07-26 23:48:31.000000000 +0000
115@@ -20,8 +20,8 @@
116 <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_89_16" TARGET="main">tgetnum</A>
117 <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_108_16" TARGET="main">tgetstr -  terminal_interface-curses-termcap.adb:108</A>
118 <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_129_16" TARGET="main">tgetstr -  terminal_interface-curses-termcap.adb:129</A>
119-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_151_16" TARGET="main">tgoto</A>
120 <LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_53_13" TARGET="main">TGoto</A>
121+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_151_16" TARGET="main">tgoto</A>
122 <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_69_16" TARGET="main">tigetflag</A>
123 <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_87_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:87</A>
124 <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_108_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:108</A>
125Index: doc/html/man/adacurses6-config.1.html
126--- ncurses-6.1-20190720+/doc/html/man/adacurses6-config.1.html	2019-07-20 18:53:10.000000000 +0000
127+++ ncurses-6.1-20190727/doc/html/man/adacurses6-config.1.html	2019-07-26 23:48:24.000000000 +0000
128@@ -125,7 +125,7 @@
129 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
130        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
131
132-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
133+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
134
135
136
137Index: doc/html/man/captoinfo.1m.html
138--- ncurses-6.1-20190720+/doc/html/man/captoinfo.1m.html	2019-07-20 18:53:10.000000000 +0000
139+++ ncurses-6.1-20190727/doc/html/man/captoinfo.1m.html	2019-07-26 23:48:24.000000000 +0000
140@@ -190,7 +190,7 @@
141 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
142        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
143
144-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
145+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
146
147
148 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
149Index: doc/html/man/clear.1.html
150--- ncurses-6.1-20190720+/doc/html/man/clear.1.html	2019-07-20 18:53:10.000000000 +0000
151+++ ncurses-6.1-20190727/doc/html/man/clear.1.html	2019-07-26 23:48:24.000000000 +0000
152@@ -148,7 +148,7 @@
153 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
154        <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
155
156-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
157+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
158
159
160
161Index: doc/html/man/form.3x.html
162--- ncurses-6.1-20190720+/doc/html/man/form.3x.html	2019-07-20 18:53:12.000000000 +0000
163+++ ncurses-6.1-20190727/doc/html/man/form.3x.html	2019-07-26 23:48:27.000000000 +0000
164@@ -246,7 +246,7 @@
165        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  and  related  pages  whose names begin "form_" for detailed
166        descriptions of the entry points.
167
168-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
169+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
170
171
172
173Index: doc/html/man/infocmp.1m.html
174--- ncurses-6.1-20190720+/doc/html/man/infocmp.1m.html	2019-07-20 18:53:13.000000000 +0000
175+++ ncurses-6.1-20190727/doc/html/man/infocmp.1m.html	2019-07-26 23:48:28.000000000 +0000
176@@ -512,7 +512,7 @@
177
178        https://invisible-island.net/ncurses/tctest.html
179
180-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
181+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
182
183
184 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
185Index: doc/html/man/infotocap.1m.html
186--- ncurses-6.1-20190720+/doc/html/man/infotocap.1m.html	2019-07-20 18:53:13.000000000 +0000
187+++ ncurses-6.1-20190727/doc/html/man/infotocap.1m.html	2019-07-26 23:48:28.000000000 +0000
188@@ -85,7 +85,7 @@
189 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
190        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
191
192-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
193+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
194
195
196 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
197Index: doc/html/man/menu.3x.html
198--- ncurses-6.1-20190720+/doc/html/man/menu.3x.html	2019-07-20 18:53:13.000000000 +0000
199+++ ncurses-6.1-20190727/doc/html/man/menu.3x.html	2019-07-26 23:48:28.000000000 +0000
200@@ -221,7 +221,7 @@
201        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  and  related  pages  whose names begin "menu_" for detailed
202        descriptions of the entry points.
203
204-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
205+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
206
207
208
209Index: doc/html/man/ncurses.3x.html
210--- ncurses-6.1-20190720+/doc/html/man/ncurses.3x.html	2019-07-20 18:53:14.000000000 +0000
211+++ ncurses-6.1-20190727/doc/html/man/ncurses.3x.html	2019-07-26 23:48:29.000000000 +0000
212@@ -59,7 +59,7 @@
213        method of updating  character  screens  with  reasonable  optimization.
214        This  implementation  is  "new  curses"  (ncurses)  and is the approved
215        replacement for 4.4BSD classic curses,  which  has  been  discontinued.
216-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
217+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
218
219        The  <STRONG>ncurses</STRONG>  library emulates the curses library of System V Release 4
220        UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
221Index: doc/html/man/ncurses6-config.1.html
222--- ncurses-6.1-20190720+/doc/html/man/ncurses6-config.1.html	2019-07-20 18:53:14.000000000 +0000
223+++ ncurses-6.1-20190727/doc/html/man/ncurses6-config.1.html	2019-07-26 23:48:29.000000000 +0000
224@@ -112,7 +112,7 @@
225 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
226        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
227
228-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
229+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
230
231
232
233Index: doc/html/man/panel.3x.html
234--- ncurses-6.1-20190720+/doc/html/man/panel.3x.html	2019-07-20 18:53:14.000000000 +0000
235+++ ncurses-6.1-20190727/doc/html/man/panel.3x.html	2019-07-26 23:48:29.000000000 +0000
236@@ -204,7 +204,7 @@
237 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
238        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
239
240-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
241+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
242
243
244 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
245Index: doc/html/man/tabs.1.html
246--- ncurses-6.1-20190720+/doc/html/man/tabs.1.html	2019-07-20 18:53:15.000000000 +0000
247+++ ncurses-6.1-20190727/doc/html/man/tabs.1.html	2019-07-26 23:48:29.000000000 +0000
248@@ -205,7 +205,7 @@
249 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
250        <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
251
252-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
253+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
254
255
256
257Index: doc/html/man/terminfo.5.html
258--- ncurses-6.1-20190720+/doc/html/man/terminfo.5.html	2019-07-20 18:53:15.000000000 +0000
259+++ ncurses-6.1-20190727/doc/html/man/terminfo.5.html	2019-07-27 20:27:54.000000000 +0000
260@@ -31,7 +31,7 @@
261   * sale, use or other dealings in this Software without prior written       *
262   * authorization.                                                           *
263   ****************************************************************************
264-  * @Id: terminfo.head,v 1.36 2019/07/13 23:17:33 tom Exp @
265+  * @Id: terminfo.head,v 1.38 2019/07/27 11:51:04 tom Exp @
266   * Head of terminfo man page ends here
267   ****************************************************************************
268   * Copyright (c) 1998-2018,2019 Free Software Foundation, Inc.              *
269@@ -94,60 +94,65 @@
270
271 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
272        <EM>Terminfo</EM>  is  a data base describing terminals, used by screen-oriented
273-       programs such as <STRONG>nvi(1)</STRONG>, <STRONG>rogue(1)</STRONG> and  libraries  such  as  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.
274+       programs such as <STRONG>nvi(1)</STRONG>, <STRONG>lynx(1)</STRONG>, <STRONG>mutt(1)</STRONG>, and  other  curses  applica-
275+       tions,  using  high-level calls to libraries such as <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>.  It is
276+       also used via low-level calls by non-curses applications which  may  be
277+       screen-oriented (such as <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>) or non-screen (such as <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>).
278+
279        <EM>Terminfo</EM> describes terminals by giving a set of capabilities which they
280        have, by specifying how to perform screen operations, and by specifying
281-       padding  requirements  and  initialization  sequences.   This describes
282-       <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
283+       padding requirements and initialization sequences.
284+
285+       This manual describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
286
287
288 </PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
289        Entries in <EM>terminfo</EM> consist of a sequence of fields:
290
291-       <STRONG>o</STRONG>   Each field ends with a comma "," (embedded commas  may  be  escaped
292+       <STRONG>o</STRONG>   Each  field  ends  with a comma "," (embedded commas may be escaped
293            with a backslash or written as "\054").
294
295        <STRONG>o</STRONG>   White space between fields is ignored.
296
297        <STRONG>o</STRONG>   The first field in a <EM>terminfo</EM> entry begins in the first column.
298
299-       <STRONG>o</STRONG>   Newlines  and  leading  whitespace (spaces or tabs) may be used for
300-           formatting entries for readability.  These are removed from  parsed
301+       <STRONG>o</STRONG>   Newlines and leading whitespace (spaces or tabs) may  be  used  for
302+           formatting  entries for readability.  These are removed from parsed
303            entries.
304
305-           The  <STRONG>infocmp</STRONG>  <STRONG>-f</STRONG> and <STRONG>-W</STRONG> options rely on this to format if-then-else
306-           expressions, or to enforce maximum line-width.  The resulting  for-
307+           The <STRONG>infocmp</STRONG> <STRONG>-f</STRONG> and <STRONG>-W</STRONG> options rely on this to  format  if-then-else
308+           expressions,  or to enforce maximum line-width.  The resulting for-
309            matted terminal description can be read by <STRONG>tic</STRONG>.
310
311-       <STRONG>o</STRONG>   The  first  field for each terminal gives the names which are known
312+       <STRONG>o</STRONG>   The first field for each terminal gives the names which  are  known
313            for the terminal, separated by "|" characters.
314
315            The first name given is the most common abbreviation for the termi-
316-           nal  (its  primary name), the last name given should be a long name
317-           fully identifying the terminal (see <STRONG><A HREF="curs_termattrs.3x.html">longname(3x)</A></STRONG>), and  all  others
318+           nal (its primary name), the last name given should be a  long  name
319+           fully  identifying  the terminal (see <STRONG><A HREF="curs_termattrs.3x.html">longname(3x)</A></STRONG>), and all others
320            are treated as synonyms (aliases) for the primary terminal name.
321
322-           X/Open  Curses  advises  that  all  names but the last should be in
323-           lower case and contain no blanks; the last name  may  well  contain
324+           X/Open Curses advises that all names but  the  last  should  be  in
325+           lower  case  and  contain no blanks; the last name may well contain
326            upper case and blanks for readability.
327
328-           This  implementation  is not so strict; it allows mixed case in the
329+           This implementation is not so strict; it allows mixed case  in  the
330            primary name and aliases.  If the last name has no embedded blanks,
331-           it  allows  that  to  be both an alias and a verbose name (but will
332+           it allows that to be both an alias and a  verbose  name  (but  will
333            warn about this ambiguity).
334
335-       <STRONG>o</STRONG>   Lines beginning with a "#" in the first column are treated as  com-
336+       <STRONG>o</STRONG>   Lines  beginning with a "#" in the first column are treated as com-
337            ments.
338
339            While comment lines are legal at any point, the output of <STRONG>captoinfo</STRONG>
340-           and <STRONG>infotocap</STRONG> (aliases for <STRONG>tic</STRONG>) will move comments  so  they  occur
341+           and  <STRONG>infotocap</STRONG>  (aliases  for <STRONG>tic</STRONG>) will move comments so they occur
342            only between entries.
343
344-       Terminal  names  (except  for the last, verbose entry) should be chosen
345+       Terminal names (except for the last, verbose entry)  should  be  chosen
346        using the following conventions.  The particular piece of hardware mak-
347-       ing  up the terminal should have a root name, thus "hp2621".  This name
348+       ing up the terminal should have a root name, thus "hp2621".  This  name
349        should not contain hyphens.  Modes that the hardware can be in, or user
350-       preferences,  should be indicated by appending a hyphen and a mode suf-
351+       preferences, should be indicated by appending a hyphen and a mode  suf-
352        fix.  Thus, a vt100 in 132-column mode would be vt100-w.  The following
353        suffixes should be used where possible:
354
355@@ -170,96 +175,96 @@
356
357
358 </PRE><H3><a name="h3-Terminfo-Capabilities-Syntax">Terminfo Capabilities Syntax</a></H3><PRE>
359-       The  terminfo  entry  consists  of several <EM>capabilities</EM>, i.e., features
360-       that the terminal has, or methods for exercising  the  terminal's  fea-
361+       The terminfo entry consists of  several  <EM>capabilities</EM>,  i.e.,  features
362+       that  the  terminal  has, or methods for exercising the terminal's fea-
363        tures.
364
365        After the first field (giving the name(s) of the terminal entry), there
366        should be one or more <EM>capability</EM> fields.  These are boolean, numeric or
367        string names with corresponding values:
368
369-       <STRONG>o</STRONG>   Boolean  capabilities  are  true  when  present, false when absent.
370+       <STRONG>o</STRONG>   Boolean capabilities are true  when  present,  false  when  absent.
371            There is no explicit value for boolean capabilities.
372
373-       <STRONG>o</STRONG>   Numeric capabilities  have  a  "#"  following  the  name,  then  an
374+       <STRONG>o</STRONG>   Numeric  capabilities  have  a  "#"  following  the  name,  then an
375            unsigned decimal integer value.
376
377-       <STRONG>o</STRONG>   String  capabilities  have a "=" following the name, then an string
378+       <STRONG>o</STRONG>   String capabilities have a "=" following the name, then  an  string
379            of characters making up the capability value.
380
381-           String capabilities can be split into multiple lines, just  as  the
382-           fields  comprising  a  terminal  entry  can  be split into multiple
383-           lines.  While blanks between fields are  ignored,  blanks  embedded
384-           within  a string value are retained, except for leading blanks on a
385+           String  capabilities  can be split into multiple lines, just as the
386+           fields comprising a terminal  entry  can  be  split  into  multiple
387+           lines.   While  blanks  between fields are ignored, blanks embedded
388+           within a string value are retained, except for leading blanks on  a
389            line.
390
391-       Any capability can be <EM>canceled</EM>,  i.e.,  suppressed  from  the  terminal
392+       Any  capability  can  be  <EM>canceled</EM>,  i.e., suppressed from the terminal
393        entry, by following its name with "@" rather than a capability value.
394
395
396 </PRE><H3><a name="h3-Similar-Terminals">Similar Terminals</a></H3><PRE>
397-       If  there  are  two  very  similar  terminals, one (the variant) can be
398-       defined as being just like the other (the  base)  with  certain  excep-
399+       If there are two very similar  terminals,  one  (the  variant)  can  be
400+       defined  as  being  just  like the other (the base) with certain excep-
401        tions.  In the definition of the variant, the string capability <STRONG>use</STRONG> can
402        be given with the name of the base terminal:
403
404-       <STRONG>o</STRONG>   The capabilities given before <STRONG>use</STRONG> override those in the  base  type
405+       <STRONG>o</STRONG>   The  capabilities  given before <STRONG>use</STRONG> override those in the base type
406            named by <STRONG>use</STRONG>.
407
408-       <STRONG>o</STRONG>   If  there are multiple <STRONG>use</STRONG> capabilities, they are merged in reverse
409-           order.  That is, the rightmost <STRONG>use</STRONG> reference  is  processed  first,
410+       <STRONG>o</STRONG>   If there are multiple <STRONG>use</STRONG> capabilities, they are merged in  reverse
411+           order.   That  is,  the rightmost <STRONG>use</STRONG> reference is processed first,
412            then the one to its left, and so forth.
413
414-       <STRONG>o</STRONG>   Capabilities  given  explicitly in the entry override those brought
415+       <STRONG>o</STRONG>   Capabilities given explicitly in the entry override  those  brought
416            in by <STRONG>use</STRONG> references.
417
418        A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of the use ref-
419-       erence  that  imports it, where <EM>xx</EM> is the capability.  For example, the
420+       erence that imports it, where <EM>xx</EM> is the capability.  For  example,  the
421        entry
422
423               2621-nl, smkx@, rmkx@, use=2621,
424
425        defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG> capabilities, and
426-       hence  does  not  turn  on the function key labels when in visual mode.
427-       This is useful for different modes for a  terminal,  or  for  different
428+       hence does not turn on the function key labels  when  in  visual  mode.
429+       This  is  useful  for  different modes for a terminal, or for different
430        user preferences.
431
432        An entry included via <STRONG>use</STRONG> can contain canceled capabilities, which have
433-       the same effect as if those cancels were inline in the  using  terminal
434+       the  same  effect as if those cancels were inline in the using terminal
435        entry.
436
437
438 </PRE><H3><a name="h3-Predefined-Capabilities">Predefined Capabilities</a></H3><PRE>
439-       The  following  is  a  complete table of the capabilities included in a
440-       terminfo description block and available to  terminfo-using  code.   In
441+       The following is a complete table of the  capabilities  included  in  a
442+       terminfo  description  block  and available to terminfo-using code.  In
443        each line of the table,
444
445-       The  <STRONG>variable</STRONG>  is  the  name  by  which the programmer (at the terminfo
446+       The <STRONG>variable</STRONG> is the name by  which  the  programmer  (at  the  terminfo
447        level) accesses the capability.
448
449-       The <STRONG>capname</STRONG> is the short name used in the text of the database, and  is
450-       used  by  a  person updating the database.  Whenever possible, capnames
451+       The  <STRONG>capname</STRONG> is the short name used in the text of the database, and is
452+       used by a person updating the database.   Whenever  possible,  capnames
453        are chosen to be the same as or similar to the ANSI X3.64-1979 standard
454-       (now  superseded  by  ECMA-48,  which  uses  identical  or very similar
455-       names).  Semantics are also intended to match those of  the  specifica-
456+       (now superseded by  ECMA-48,  which  uses  identical  or  very  similar
457+       names).   Semantics  are also intended to match those of the specifica-
458        tion.
459
460-       The  termcap code is the old <STRONG>termcap</STRONG> capability name (some capabilities
461+       The termcap code is the old <STRONG>termcap</STRONG> capability name (some  capabilities
462        are new, and have names which termcap did not originate).
463
464-       Capability names have no hard length limit, but an informal limit of  5
465+       Capability  names have no hard length limit, but an informal limit of 5
466        characters has been adopted to keep them short and to allow the tabs in
467        the source file <STRONG>Caps</STRONG> to line up nicely.
468
469-       Finally, the description field attempts to convey the semantics of  the
470+       Finally,  the description field attempts to convey the semantics of the
471        capability.  You may find some codes in the description field:
472
473        (P)    indicates that padding may be specified
474
475-       #[1-9] in  the  description  field  indicates that the string is passed
476+       #[1-9] in the description field indicates that  the  string  is  passed
477               through tparm with parms as given (#<EM>i</EM>).
478
479-       (P*)   indicates that padding may vary in proportion to the  number  of
480+       (P*)   indicates  that  padding may vary in proportion to the number of
481               lines affected
482
483        (#<EM>i</EM>)   indicates the <EM>i</EM>th parameter.
484@@ -276,6 +281,9 @@
485                                                        matic margins
486           back_color_erase            bce       ut     screen erased with
487                                                        background color
488+
489+
490+
491           can_change                  ccc       cc     terminal can re-
492                                                        define existing col-
493                                                        ors
494@@ -283,7 +291,6 @@
495                                                        by overwriting (hp)
496           col_addr_glitch             xhpa      YA     only positive motion
497                                                        for hpa/mhpa caps
498-
499           cpi_changes_res             cpix      YF     changing character
500                                                        pitch changes reso-
501                                                        lution
502@@ -342,14 +349,13 @@
503                                                        echo on screen
504           row_addr_glitch             xvpa      YD     only positive motion
505                                                        for vpa/mvpa caps
506+
507           semi_auto_right_margin      sam       YE     printing in last
508                                                        column causes cr
509           status_line_esc_ok          eslok     es     escape can be used
510                                                        on the status line
511           tilde_glitch                hz        hz     cannot print ~'s
512                                                        (Hazeltine)
513-
514-
515           transparent_underline       ul        ul     underline character
516                                                        overstrikes
517           xon_xoff                    xon       xo     terminal uses
518@@ -396,8 +402,8 @@
519           width_status_line           wsl       ws     number of columns in
520                                                        status line
521
522-       The following numeric capabilities  are  present  in  the  SVr4.0  term
523-       structure,  but  are  not yet documented in the man page.  They came in
524+       The  following  numeric  capabilities  are  present  in the SVr4.0 term
525+       structure, but are not yet documented in the man page.   They  came  in
526        with SVr4's printer support.
527
528
529@@ -407,6 +413,9 @@
530                                                        each bit-image row
531           bit_image_type              bitype    Yp     type of bit-image
532                                                        device
533+
534+
535+
536           buffer_capacity             bufsz     Ya     numbers of bytes
537                                                        buffered before
538                                                        printing
539@@ -415,7 +424,6 @@
540           dot_horz_spacing            spinh     Yc     spacing of dots hor-
541                                                        izontally in dots
542                                                        per inch
543-
544           dot_vert_spacing            spinv     Yb     spacing of pins ver-
545                                                        tically in pins per
546                                                        inch
547@@ -472,6 +480,8 @@
548                                                        (P)
549           char_padding                rmp       rP     like ip but when in
550                                                        insert mode
551+
552+
553           clear_all_tabs              tbc       ct     clear all tab stops
554                                                        (P)
555           clear_margins               mgc       MC     clear right and left
556@@ -480,8 +490,6 @@
557                                                        home cursor (P*)
558           clr_bol                     el1       cb     Clear to beginning
559                                                        of line
560-
561-
562           clr_eol                     el        ce     clear to end of line
563                                                        (P)
564           clr_eos                     ed        cd     clear to end of
565@@ -539,6 +547,7 @@
566           enter_delete_mode           smdc      dm     enter delete mode
567           enter_dim_mode              dim       mh     turn on half-bright
568                                                        mode
569+
570           enter_doublewide_mode       swidm     ZF     Enter double-wide
571                                                        mode
572           enter_draft_quality         sdrfq     ZG     Enter draft-quality
573@@ -547,7 +556,6 @@
574           enter_italics_mode          sitm      ZH     Enter italic mode
575           enter_leftward_mode         slm       ZI     Start leftward car-
576                                                        riage motion
577-
578           enter_micro_mode            smicm     ZJ     Start micro-motion
579                                                        mode
580           enter_near_letter_quality   snlq      ZK     Enter NLQ mode
581@@ -605,6 +613,7 @@
582                                                        not move cursor)
583           form_feed                   ff        ff     hardcopy terminal
584                                                        page eject (P*)
585+
586           from_status_line            fsl       fs     return from status
587                                                        line
588           goto_window                 wingo     WG     go to window #1
589@@ -613,7 +622,6 @@
590                                                        string
591           init_2string                is2       is     initialization
592                                                        string
593-
594           init_3string                is3       i3     initialization
595                                                        string
596           init_file                   if        if     name of initializa-
597@@ -671,6 +679,7 @@
598           key_f15                     kf15      F5     F15 function key
599           key_f16                     kf16      F6     F16 function key
600           key_f17                     kf17      F7     F17 function key
601+
602           key_f18                     kf18      F8     F18 function key
603           key_f19                     kf19      F9     F19 function key
604           key_f2                      kf2       k2     F2 function key
605@@ -679,7 +688,6 @@
606           key_f22                     kf22      FC     F22 function key
607           key_f23                     kf23      FD     F23 function key
608           key_f24                     kf24      FE     F24 function key
609-
610           key_f25                     kf25      FF     F25 function key
611           key_f26                     kf26      FG     F26 function key
612           key_f27                     kf27      FH     F27 function key
613@@ -737,6 +745,7 @@
614           key_mark                    kmrk      %2     mark key
615           key_message                 kmsg      %3     message key
616           key_move                    kmov      %4     move key
617+
618           key_next                    knxt      %5     next key
619           key_npage                   knp       kN     next-page key
620           key_open                    kopn      %6     open key
621@@ -745,7 +754,6 @@
622           key_previous                kprv      %8     previous key
623           key_print                   kprt      %9     print key
624           key_redo                    krdo      %0     redo key
625-
626           key_reference               kref      &amp;1     reference key
627           key_refresh                 krfr      &amp;2     refresh key
628           key_replace                 krpl      &amp;3     replace key
629@@ -802,6 +810,8 @@
630                                                        key f0 if not f0
631           lab_f1                      lf1       l1     label on function
632                                                        key f1 if not f1
633+
634+
635           lab_f10                     lf10      la     label on function
636                                                        key f10 if not f10
637           lab_f2                      lf2       l2     label on function
638@@ -810,8 +820,6 @@
639                                                        key f3 if not f3
640           lab_f4                      lf4       l4     label on function
641                                                        key f4 if not f4
642-
643-
644           lab_f5                      lf5       l5     label on function
645                                                        key f5 if not f5
646           lab_f6                      lf6       l6     label on function
647@@ -869,6 +877,7 @@
648                                                        to the right (P*)
649           parm_right_micro            mcuf      Zh     Like parm_right_cur-
650                                                        sor in micro mode
651+
652           parm_rindex                 rin       SR     scroll back #1 lines
653                                                        (P)
654           parm_up_cursor              cuu       UP     up #1 lines (P*)
655@@ -876,8 +885,6 @@
656                                                        in micro mode
657           pkey_key                    pfkey     pk     program function key
658                                                        #1 to type string #2
659-
660-
661           pkey_local                  pfloc     pl     program function key
662                                                        #1 to execute string
663                                                        #2
664@@ -932,6 +939,11 @@
665                                                        pair to #1
666           set_foreground              setf      Sf     Set foreground color
667                                                        #1
668+
669+
670+
671+
672+
673           set_left_margin             smgl      ML     set left soft margin
674                                                        at current col-
675                                                        umn.     See smgl.
676@@ -942,8 +954,6 @@
677           set_right_margin            smgr      MR     set right soft mar-
678                                                        gin at current col-
679                                                        umn
680-
681-
682           set_right_margin_parm       smgrp     Zn     Set right margin at
683                                                        column #1
684           set_tab                     hts       st     set a tab in every
685@@ -1008,8 +1018,6 @@
686                                                         lation
687           bit_image_carriage_return   bicr       Yv     Move to beginning
688                                                         of same row
689-
690-
691           bit_image_newline           binel      Zz     Move to next row
692                                                         of the bit image
693           bit_image_repeat            birep      Xy     Repeat bit image
694@@ -1067,6 +1075,7 @@
695           set_a_foreground            setaf      AF     Set foreground
696                                                         color to #1, using
697                                                         ANSI escape
698+
699           set_color_band              setcolor   Yz     Change to ribbon
700                                                         color #1
701           set_lr_margin               smglr      ML     Set both left and
702@@ -1074,19 +1083,17 @@
703                                                         #1, #2.  (ML is
704                                                         not in BSD term-
705                                                         cap).
706-
707-
708           set_page_length             slines     YZ     Set page length to
709                                                         #1 lines
710           set_tb_margin               smgtb      MT     Sets both top and
711                                                         bottom margins to
712                                                         #1, #2
713
714-        The XSI Curses standard added these hardcopy capabilities.  They  were
715-        used  in  some post-4.1 versions of System V curses, e.g., Solaris 2.5
716-        and IRIX 6.x.  Except for <STRONG>YI</STRONG>, the <STRONG>ncurses</STRONG> termcap names for  them  are
717-        invented.   According to the XSI Curses standard, they have no termcap
718-        names.  If your compiled terminfo entries use these, they may  not  be
719+        The  XSI Curses standard added these hardcopy capabilities.  They were
720+        used in some post-4.1 versions of System V curses, e.g.,  Solaris  2.5
721+        and  IRIX  6.x.  Except for <STRONG>YI</STRONG>, the <STRONG>ncurses</STRONG> termcap names for them are
722+        invented.  According to the XSI Curses standard, they have no  termcap
723+        names.   If  your compiled terminfo entries use these, they may not be
724         binary-compatible with System V terminfo entries after SVr4.1; beware!
725
726
727@@ -1115,26 +1122,26 @@
728
729
730 </PRE><H3><a name="h3-User-Defined-Capabilities">User-Defined Capabilities</a></H3><PRE>
731-       The  preceding  section  listed the <EM>predefined</EM> capabilities.  They deal
732-       with some special features for terminals no longer (or possibly  never)
733-       produced.   Occasionally  there are special features of newer terminals
734-       which are awkward or impossible to represent by reusing the  predefined
735+       The preceding section listed the <EM>predefined</EM>  capabilities.   They  deal
736+       with  some special features for terminals no longer (or possibly never)
737+       produced.  Occasionally there are special features of  newer  terminals
738+       which  are awkward or impossible to represent by reusing the predefined
739        capabilities.
740
741-       <STRONG>ncurses</STRONG>  addresses  this  limitation by allowing user-defined capabili-
742+       <STRONG>ncurses</STRONG> addresses this limitation by  allowing  user-defined  capabili-
743        ties.  The <STRONG>tic</STRONG> and <STRONG>infocmp</STRONG> programs provide the <STRONG>-x</STRONG> option for this pur-
744        pose.  When <STRONG>-x</STRONG> is set, <STRONG>tic</STRONG> treats unknown capabilities as user-defined.
745-       That is, if <STRONG>tic</STRONG> encounters a capability name which it does  not  recog-
746-       nize,  it  infers  its type (boolean, number or string) from the syntax
747-       and  makes  an  extended  table  entry  for   that   capability.    The
748-       <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG>  function  makes  this information conditionally
749+       That  is,  if <STRONG>tic</STRONG> encounters a capability name which it does not recog-
750+       nize, it infers its type (boolean, number or string)  from  the  syntax
751+       and   makes   an   extended  table  entry  for  that  capability.   The
752+       <STRONG><A HREF="curs_extend.3x.html">use_extended_names(3x)</A></STRONG> function makes  this  information  conditionally
753        available to applications.  The ncurses library provides the data leav-
754        ing most of the behavior to applications:
755
756-       <STRONG>o</STRONG>   User-defined  capability  strings  whose  name  begins with "k" are
757+       <STRONG>o</STRONG>   User-defined capability strings whose  name  begins  with  "k"  are
758            treated as function keys.
759
760-       <STRONG>o</STRONG>   The types (boolean,  number,  string)  determined  by  <STRONG>tic</STRONG>  can  be
761+       <STRONG>o</STRONG>   The  types  (boolean,  number,  string)  determined  by  <STRONG>tic</STRONG> can be
762            inferred by successful calls on <STRONG>tigetflag</STRONG>, etc.
763
764        <STRONG>o</STRONG>   If the capability name happens to be two characters, the capability
765@@ -1142,18 +1149,18 @@
766
767        While termcap is said to be extensible because it does not use a prede-
768        fined set of capabilities, in practice it has been limited to the capa-
769-       bilities defined by terminfo implementations.  As a rule,  user-defined
770+       bilities  defined by terminfo implementations.  As a rule, user-defined
771        capabilities intended for use by termcap applications should be limited
772-       to booleans and numbers to avoid  running  past  the  1023  byte  limit
773+       to  booleans  and  numbers  to  avoid  running past the 1023 byte limit
774        assumed by termcap implementations and their applications.  In particu-
775-       lar, providing extended sets of function keys  (past  the  60  numbered
776-       keys  and  the  handful  of  special named keys) is best done using the
777+       lar,  providing  extended  sets  of function keys (past the 60 numbered
778+       keys and the handful of special named keys)  is  best  done  using  the
779        longer names available using terminfo.
780
781
782 </PRE><H3><a name="h3-A-Sample-Entry">A Sample Entry</a></H3><PRE>
783        The following entry, describing an ANSI-standard terminal, is represen-
784-       tative  of  what a <STRONG>terminfo</STRONG> entry for a modern terminal typically looks
785+       tative of what a <STRONG>terminfo</STRONG> entry for a modern terminal  typically  looks
786        like.
787
788        ansi|ansi/pc-term compatible with color,
789@@ -1187,8 +1194,8 @@
790                smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n,
791                u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%i%p1%dd,
792
793-       Entries may continue onto multiple lines by placing white space at  the
794-       beginning  of  each line except the first.  Comments may be included on
795+       Entries  may continue onto multiple lines by placing white space at the
796+       beginning of each line except the first.  Comments may be  included  on
797        lines beginning with "#".  Capabilities in <EM>terminfo</EM> are of three types:
798
799        <STRONG>o</STRONG>   Boolean capabilities which indicate that the terminal has some par-
800@@ -1197,23 +1204,23 @@
801        <STRONG>o</STRONG>   numeric capabilities giving the size of the terminal or the size of
802            particular delays, and
803
804-       <STRONG>o</STRONG>   string capabilities, which give a sequence which  can  be  used  to
805+       <STRONG>o</STRONG>   string  capabilities,  which  give  a sequence which can be used to
806            perform particular terminal operations.
807
808
809 </PRE><H3><a name="h3-Types-of-Capabilities">Types of Capabilities</a></H3><PRE>
810        All capabilities have names.  For instance, the fact that ANSI-standard
811-       terminals have <EM>automatic</EM> <EM>margins</EM> (i.e., an automatic return  and  line-
812-       feed  when the end of a line is reached) is indicated by the capability
813-       <STRONG>am</STRONG>.  Hence the description of ansi includes <STRONG>am</STRONG>.   Numeric  capabilities
814-       are  followed  by  the  character  "#" and then a positive value.  Thus
815+       terminals  have  <EM>automatic</EM> <EM>margins</EM> (i.e., an automatic return and line-
816+       feed when the end of a line is reached) is indicated by the  capability
817+       <STRONG>am</STRONG>.   Hence  the description of ansi includes <STRONG>am</STRONG>.  Numeric capabilities
818+       are followed by the character "#" and  then  a  positive  value.   Thus
819        <STRONG>cols</STRONG>, which indicates the number of columns the terminal has, gives the
820-       value  "80" for ansi.  Values for numeric capabilities may be specified
821+       value "80" for ansi.  Values for numeric capabilities may be  specified
822        in decimal, octal or hexadecimal, using the C programming language con-
823        ventions (e.g., 255, 0377 and 0xff or 0xFF).
824
825-       Finally,  string  valued capabilities, such as <STRONG>el</STRONG> (clear to end of line
826-       sequence) are given by the two-character  code,  an  "=",  and  then  a
827+       Finally, string valued capabilities, such as <STRONG>el</STRONG> (clear to end  of  line
828+       sequence)  are  given  by  the  two-character  code, an "=", and then a
829        string ending at the next following ",".
830
831        A number of escape sequences are provided in the string valued capabil-
832@@ -1234,9 +1241,9 @@
833            respectively.
834
835        X/Open Curses does not say what "appropriate <EM>x</EM>" might be.  In practice,
836-       that  is a printable ASCII graphic character.  The special case "^?" is
837-       interpreted as DEL (127).  In all other cases, the character  value  is
838-       AND'd  with 0x1f, mapping to ASCII control codes in the range 0 through
839+       that is a printable ASCII graphic character.  The special case "^?"  is
840+       interpreted  as  DEL (127).  In all other cases, the character value is
841+       AND'd with 0x1f, mapping to ASCII control codes in the range 0  through
842        31.
843
844        Other escapes include
845@@ -1252,142 +1259,142 @@
846        <STRONG>o</STRONG>   and <STRONG>\0</STRONG> for null.
847
848            <STRONG>\0</STRONG> will produce \200, which does not terminate a string but behaves
849-           as  a null character on most terminals, providing CS7 is specified.
850+           as a null character on most terminals, providing CS7 is  specified.
851            See <STRONG>stty(1)</STRONG>.
852
853-           The reason for this quirk is to maintain  binary  compatibility  of
854-           the  compiled  terminfo files with other implementations, e.g., the
855-           SVr4 systems, which document this.   Compiled  terminfo  files  use
856-           null-terminated  strings,  with  no  lengths.  Modifying this would
857+           The  reason  for  this quirk is to maintain binary compatibility of
858+           the compiled terminfo files with other implementations,  e.g.,  the
859+           SVr4  systems,  which  document  this.  Compiled terminfo files use
860+           null-terminated strings, with no  lengths.   Modifying  this  would
861            require a new binary format, which would not work with other imple-
862            mentations.
863
864        Finally, characters may be given as three octal digits after a <STRONG>\</STRONG>.
865
866-       A  delay  in  milliseconds  may appear anywhere in a string capability,
867-       enclosed in $&lt;..&gt; brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;,  and  padding  characters
868+       A delay in milliseconds may appear anywhere  in  a  string  capability,
869+       enclosed  in  $&lt;..&gt;  brackets, as in <STRONG>el</STRONG>=\EK$&lt;5&gt;, and padding characters
870        are supplied by <STRONG><A HREF="curs_terminfo.3x.html">tputs(3x)</A></STRONG> to provide this delay.
871
872        <STRONG>o</STRONG>   The delay must be a number with at most one decimal place of preci-
873            sion; it may be followed by suffixes "*" or "/" or both.
874
875-       <STRONG>o</STRONG>   A "*" indicates that the padding required is  proportional  to  the
876-           number  of lines affected by the operation, and the amount given is
877-           the per-affected-unit padding required.  (In  the  case  of  insert
878+       <STRONG>o</STRONG>   A  "*"  indicates  that the padding required is proportional to the
879+           number of lines affected by the operation, and the amount given  is
880+           the  per-affected-unit  padding  required.   (In the case of insert
881            character, the factor is still the number of <EM>lines</EM> affected.)
882
883            Normally, padding is advisory if the device has the <STRONG>xon</STRONG> capability;
884            it is used for cost computation but does not trigger delays.
885
886-       <STRONG>o</STRONG>   A "/" suffix indicates that the padding is mandatory and  forces  a
887+       <STRONG>o</STRONG>   A  "/"  suffix indicates that the padding is mandatory and forces a
888            delay of the given number of milliseconds even on devices for which
889            <STRONG>xon</STRONG> is present to indicate flow control.
890
891-       Sometimes individual capabilities must be commented out.  To  do  this,
892-       put  a  period before the capability name.  For example, see the second
893+       Sometimes  individual  capabilities must be commented out.  To do this,
894+       put a period before the capability name.  For example, see  the  second
895        <STRONG>ind</STRONG> in the example above.
896
897
898 </PRE><H3><a name="h3-Fetching-Compiled-Descriptions">Fetching Compiled Descriptions</a></H3><PRE>
899-       The <STRONG>ncurses</STRONG> library  searches  for  terminal  descriptions  in  several
900-       places.   It  uses only the first description found.  The library has a
901-       compiled-in list of places to search which can be overridden  by  envi-
902-       ronment  variables.   Before  starting  to  search,  <STRONG>ncurses</STRONG> eliminates
903+       The  <STRONG>ncurses</STRONG>  library  searches  for  terminal  descriptions in several
904+       places.  It uses only the first description found.  The library  has  a
905+       compiled-in  list  of places to search which can be overridden by envi-
906+       ronment variables.   Before  starting  to  search,  <STRONG>ncurses</STRONG>  eliminates
907        duplicates in its search list.
908
909-       <STRONG>o</STRONG>   If the environment variable TERMINFO is set, it is  interpreted  as
910+       <STRONG>o</STRONG>   If  the  environment variable TERMINFO is set, it is interpreted as
911            the pathname of a directory containing the compiled description you
912            are working on.  Only that directory is searched.
913
914-       <STRONG>o</STRONG>   If TERMINFO is not set, <STRONG>ncurses</STRONG> will instead look in the  directory
915+       <STRONG>o</STRONG>   If  TERMINFO is not set, <STRONG>ncurses</STRONG> will instead look in the directory
916            <STRONG>$HOME/.terminfo</STRONG> for a compiled description.
917
918-       <STRONG>o</STRONG>   Next,  if  the  environment  variable TERMINFO_DIRS is set, <STRONG>ncurses</STRONG>
919-           will interpret the contents of that variable as a  list  of  colon-
920+       <STRONG>o</STRONG>   Next, if the environment variable  TERMINFO_DIRS  is  set,  <STRONG>ncurses</STRONG>
921+           will  interpret  the  contents of that variable as a list of colon-
922            separated directories (or database files) to be searched.
923
924-           An  empty directory name (i.e., if the variable begins or ends with
925-           a colon, or contains adjacent colons) is interpreted as the  system
926+           An empty directory name (i.e., if the variable begins or ends  with
927+           a  colon, or contains adjacent colons) is interpreted as the system
928            location <EM>/usr/share/terminfo</EM>.
929
930        <STRONG>o</STRONG>   Finally, <STRONG>ncurses</STRONG> searches these compiled-in locations:
931
932-           <STRONG>o</STRONG>   a    list    of    directories   (/usr/local/ncurses/share/ter-
933+           <STRONG>o</STRONG>   a   list    of    directories    (/usr/local/ncurses/share/ter-
934                minfo:/usr/share/terminfo), and
935
936-           <STRONG>o</STRONG>   the system terminfo directory,  <EM>/usr/share/terminfo</EM>  (the  com-
937+           <STRONG>o</STRONG>   the  system  terminfo  directory, <EM>/usr/share/terminfo</EM> (the com-
938                piled-in default).
939
940
941 </PRE><H3><a name="h3-Preparing-Descriptions">Preparing Descriptions</a></H3><PRE>
942-       We  now  outline  how  to  prepare descriptions of terminals.  The most
943-       effective way to prepare a terminal description  is  by  imitating  the
944-       description  of  a  similar  terminal  in  <EM>terminfo</EM>  and  to build up a
945+       We now outline how to prepare  descriptions  of  terminals.   The  most
946+       effective  way  to  prepare  a terminal description is by imitating the
947+       description of a similar  terminal  in  <EM>terminfo</EM>  and  to  build  up  a
948        description gradually, using partial descriptions with <EM>vi</EM> or some other
949-       screen-oriented  program to check that they are correct.  Be aware that
950-       a very unusual terminal may expose deficiencies in the ability  of  the
951+       screen-oriented program to check that they are correct.  Be aware  that
952+       a  very  unusual terminal may expose deficiencies in the ability of the
953        <EM>terminfo</EM> file to describe it or bugs in the screen-handling code of the
954        test program.
955
956-       To get the padding for insert line right (if the terminal  manufacturer
957-       did  not  document  it)  a  severe test is to edit a large file at 9600
958+       To  get the padding for insert line right (if the terminal manufacturer
959+       did not document it) a severe test is to edit  a  large  file  at  9600
960        baud, delete 16 or so lines from the middle of the screen, then hit the
961        "u" key several times quickly.  If the terminal messes up, more padding
962        is usually needed.  A similar test can be used for insert character.
963
964
965 </PRE><H3><a name="h3-Basic-Capabilities">Basic Capabilities</a></H3><PRE>
966-       The number of columns on each line for the terminal  is  given  by  the
967-       <STRONG>cols</STRONG>  numeric capability.  If the terminal is a CRT, then the number of
968-       lines on the screen is given by the <STRONG>lines</STRONG> capability.  If the  terminal
969-       wraps  around  to  the  beginning  of the next line when it reaches the
970-       right margin, then it should have the <STRONG>am</STRONG> capability.  If  the  terminal
971-       can  clear  its  screen,  leaving the cursor in the home position, then
972-       this is given by the <STRONG>clear</STRONG> string capability.  If  the  terminal  over-
973-       strikes  (rather  than  clearing  a position when a character is struck
974-       over) then it should have the <STRONG>os</STRONG> capability.   If  the  terminal  is  a
975+       The  number  of  columns  on each line for the terminal is given by the
976+       <STRONG>cols</STRONG> numeric capability.  If the terminal is a CRT, then the number  of
977+       lines  on the screen is given by the <STRONG>lines</STRONG> capability.  If the terminal
978+       wraps around to the beginning of the next  line  when  it  reaches  the
979+       right  margin,  then it should have the <STRONG>am</STRONG> capability.  If the terminal
980+       can clear its screen, leaving the cursor in  the  home  position,  then
981+       this  is  given  by the <STRONG>clear</STRONG> string capability.  If the terminal over-
982+       strikes (rather than clearing a position when  a  character  is  struck
983+       over)  then  it  should  have  the <STRONG>os</STRONG> capability.  If the terminal is a
984        printing terminal, with no soft copy unit, give it both <STRONG>hc</STRONG> and <STRONG>os</STRONG>.  (<STRONG>os</STRONG>
985-       applies to storage scope terminals, such as TEKTRONIX 4010  series,  as
986-       well  as  hard copy and APL terminals.)  If there is a code to move the
987+       applies  to  storage scope terminals, such as TEKTRONIX 4010 series, as
988+       well as hard copy and APL terminals.)  If there is a code to  move  the
989        cursor to the left edge of the current row, give this as <STRONG>cr</STRONG>.  (Normally
990-       this  will  be carriage return, control/M.)  If there is a code to pro-
991+       this will be carriage return, control/M.)  If there is a code  to  pro-
992        duce an audible signal (bell, beep, etc) give this as <STRONG>bel</STRONG>.
993
994        If there is a code to move the cursor one position to the left (such as
995-       backspace)  that  capability should be given as <STRONG>cub1</STRONG>.  Similarly, codes
996-       to move to the right, up, and down should be given as <STRONG>cuf1</STRONG>,  <STRONG>cuu1</STRONG>,  and
997-       <STRONG>cud1</STRONG>.   These  local cursor motions should not alter the text they pass
998-       over, for example, you would not  normally  use  "<STRONG>cuf1</STRONG>= "  because  the
999+       backspace) that capability should be given as <STRONG>cub1</STRONG>.   Similarly,  codes
1000+       to  move  to the right, up, and down should be given as <STRONG>cuf1</STRONG>, <STRONG>cuu1</STRONG>, and
1001+       <STRONG>cud1</STRONG>.  These local cursor motions should not alter the text  they  pass
1002+       over,  for  example,  you  would  not normally use "<STRONG>cuf1</STRONG>= " because the
1003        space would erase the character moved over.
1004
1005        A very important point here is that the local cursor motions encoded in
1006-       <EM>terminfo</EM> are undefined at the left and top edges  of  a  CRT  terminal.
1007+       <EM>terminfo</EM>  are  undefined  at  the left and top edges of a CRT terminal.
1008        Programs should never attempt to backspace around the left edge, unless
1009-       <STRONG>bw</STRONG> is given, and never attempt to go up locally off the top.  In  order
1010-       to  scroll  text up, a program will go to the bottom left corner of the
1011+       <STRONG>bw</STRONG>  is given, and never attempt to go up locally off the top.  In order
1012+       to scroll text up, a program will go to the bottom left corner  of  the
1013        screen and send the <STRONG>ind</STRONG> (index) string.
1014
1015-       To scroll text down, a program goes to  the  top  left  corner  of  the
1016+       To  scroll  text  down,  a  program  goes to the top left corner of the
1017        screen and sends the <STRONG>ri</STRONG> (reverse index) string.  The strings <STRONG>ind</STRONG> and <STRONG>ri</STRONG>
1018        are undefined when not on their respective corners of the screen.
1019
1020-       Parameterized versions of the scrolling  sequences  are  <STRONG>indn</STRONG>  and  <STRONG>rin</STRONG>
1021-       which  have  the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except that they take one
1022-       parameter, and scroll that many lines.  They are also undefined  except
1023+       Parameterized  versions  of  the  scrolling  sequences are <STRONG>indn</STRONG> and <STRONG>rin</STRONG>
1024+       which have the same semantics as <STRONG>ind</STRONG> and <STRONG>ri</STRONG> except that they  take  one
1025+       parameter,  and scroll that many lines.  They are also undefined except
1026        at the appropriate edge of the screen.
1027
1028-       The  <STRONG>am</STRONG> capability tells whether the cursor sticks at the right edge of
1029-       the screen when text is output, but this does not necessarily apply  to
1030-       a  <STRONG>cuf1</STRONG>  from  the last column.  The only local motion which is defined
1031-       from the left edge is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from  the  left  edge
1032-       will  move  to the right edge of the previous row.  If <STRONG>bw</STRONG> is not given,
1033-       the effect is undefined.  This is useful for drawing a box  around  the
1034+       The <STRONG>am</STRONG> capability tells whether the cursor sticks at the right edge  of
1035+       the  screen when text is output, but this does not necessarily apply to
1036+       a <STRONG>cuf1</STRONG> from the last column.  The only local motion  which  is  defined
1037+       from  the  left  edge is if <STRONG>bw</STRONG> is given, then a <STRONG>cub1</STRONG> from the left edge
1038+       will move to the right edge of the previous row.  If <STRONG>bw</STRONG> is  not  given,
1039+       the  effect  is undefined.  This is useful for drawing a box around the
1040        edge of the screen, for example.  If the terminal has switch selectable
1041-       automatic margins, the <EM>terminfo</EM> file usually assumes that this  is  on;
1042-       i.e.,  <STRONG>am</STRONG>.  If the terminal has a command which moves to the first col-
1043-       umn of the next line, that command can be given as <STRONG>nel</STRONG>  (newline).   It
1044-       does  not  matter  if  the  command clears the remainder of the current
1045-       line, so if the terminal has no <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be  possible  to
1046+       automatic  margins,  the <EM>terminfo</EM> file usually assumes that this is on;
1047+       i.e., <STRONG>am</STRONG>.  If the terminal has a command which moves to the first  col-
1048+       umn  of  the next line, that command can be given as <STRONG>nel</STRONG> (newline).  It
1049+       does not matter if the command clears  the  remainder  of  the  current
1050+       line,  so  if the terminal has no <STRONG>cr</STRONG> and <STRONG>lf</STRONG> it may still be possible to
1051        craft a working <STRONG>nel</STRONG> out of one or both of them.
1052
1053        These capabilities suffice to describe hard-copy and "glass-tty" termi-
1054@@ -1404,20 +1411,20 @@
1055
1056
1057 </PRE><H3><a name="h3-Parameterized-Strings">Parameterized Strings</a></H3><PRE>
1058-       Cursor addressing and other strings requiring parameters in the  termi-
1059-       nal  are  described  by a parameterized string capability, with <EM>printf</EM>-
1060+       Cursor  addressing and other strings requiring parameters in the termi-
1061+       nal are described by a parameterized string  capability,  with  <EM>printf</EM>-
1062        like escapes such as <EM>%x</EM> in it.  For example, to address the cursor, the
1063-       <STRONG>cup</STRONG>  capability  is  given, using two parameters: the row and column to
1064-       address to.  (Rows and columns are numbered from zero and refer to  the
1065+       <STRONG>cup</STRONG> capability is given, using two parameters: the row  and  column  to
1066+       address  to.  (Rows and columns are numbered from zero and refer to the
1067        physical screen visible to the user, not to any unseen memory.)  If the
1068-       terminal has memory relative cursor addressing, that can  be  indicated
1069+       terminal  has  memory relative cursor addressing, that can be indicated
1070        by <STRONG>mrcup</STRONG>.
1071
1072-       The  parameter mechanism uses a stack and special <STRONG>%</STRONG> codes to manipulate
1073-       it.  Typically a sequence will push one  of  the  parameters  onto  the
1074-       stack  and  then print it in some format.  Print (e.g., "%d") is a spe-
1075+       The parameter mechanism uses a stack and special <STRONG>%</STRONG> codes to  manipulate
1076+       it.   Typically  a  sequence  will  push one of the parameters onto the
1077+       stack and then print it in some format.  Print (e.g., "%d") is  a  spe-
1078        cial case.  Other operations, including "%t" pop their operand from the
1079-       stack.   It  is noted that more complex operations are often necessary,
1080+       stack.  It is noted that more complex operations are  often  necessary,
1081        e.g., in the <STRONG>sgr</STRONG> string.
1082
1083        The <STRONG>%</STRONG> encodings have the following meanings:
1084@@ -1425,7 +1432,7 @@
1085        <STRONG>%%</STRONG>   outputs "%"
1086
1087        <STRONG>%</STRONG><EM>[[</EM>:<EM>]flags][width[.precision]][</EM><STRONG>doxXs</STRONG><EM>]</EM>
1088-            as in <STRONG>printf(3)</STRONG>, flags are <EM>[-+#]</EM> and <EM>space</EM>.  Use a  ":"  to  allow
1089+            as  in  <STRONG>printf(3)</STRONG>,  flags are <EM>[-+#]</EM> and <EM>space</EM>.  Use a ":" to allow
1090             the next character to be a "-" flag, avoiding interpreting "%-" as
1091             an operator.
1092
1093@@ -1448,9 +1455,9 @@
1094        <STRONG>%g</STRONG><EM>[A-Z]</EM>
1095             get static variable <EM>[a-z]</EM> and push it
1096
1097-            The terms "static" and "dynamic"  are  misleading.   Historically,
1098+            The  terms  "static"  and "dynamic" are misleading.  Historically,
1099             these are simply two different sets of variables, whose values are
1100-            not reset between calls to <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>.  However, that fact  is  not
1101+            not  reset  between calls to <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG>.  However, that fact is not
1102             documented in other implementations.  Relying on it will adversely
1103             impact portability to other implementations.
1104
1105@@ -1480,8 +1487,8 @@
1106
1107        <STRONG>%?</STRONG> <EM>expr</EM> <STRONG>%t</STRONG> <EM>thenpart</EM> <STRONG>%e</STRONG> <EM>elsepart</EM> <STRONG>%;</STRONG>
1108             This forms an if-then-else.  The <STRONG>%e</STRONG> <EM>elsepart</EM> is optional.  Usually
1109-            the  <STRONG>%?</STRONG>  <EM>expr</EM>  part  pushes a value onto the stack, and <STRONG>%t</STRONG> pops it
1110-            from the stack, testing if it is nonzero (true).  If  it  is  zero
1111+            the <STRONG>%?</STRONG> <EM>expr</EM> part pushes a value onto the stack,  and  <STRONG>%t</STRONG>  pops  it
1112+            from  the  stack,  testing if it is nonzero (true).  If it is zero
1113             (false), control passes to the <STRONG>%e</STRONG> (else) part.
1114
1115             It is possible to form else-if's a la Algol 68:
1116@@ -1489,245 +1496,245 @@
1117
1118             where ci are conditions, bi are bodies.
1119
1120-            Use  the  <STRONG>-f</STRONG>  option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG> to see the structure of if-
1121+            Use the <STRONG>-f</STRONG> option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG> to see the  structure  of  if-
1122             then-else's.  Some strings, e.g., <STRONG>sgr</STRONG> can be very complicated when
1123-            written  on  one line.  The <STRONG>-f</STRONG> option splits the string into lines
1124+            written on one line.  The <STRONG>-f</STRONG> option splits the string  into  lines
1125             with the parts indented.
1126
1127-       Binary operations are in postfix form with the operands  in  the  usual
1128+       Binary  operations  are  in postfix form with the operands in the usual
1129        order.  That is, to get x-5 one would use "%gx%{5}%-".  <STRONG>%P</STRONG> and <STRONG>%g</STRONG> vari-
1130        ables are persistent across escape-string evaluations.
1131
1132-       Consider the HP2645, which, to get to row 3 and column 12, needs to  be
1133-       sent  \E&amp;a12c03Y padded for 6 milliseconds.  Note that the order of the
1134-       rows and columns is inverted here, and that  the  row  and  column  are
1135-       printed    as    two    digits.     Thus    its   <STRONG>cup</STRONG>   capability   is
1136+       Consider  the HP2645, which, to get to row 3 and column 12, needs to be
1137+       sent \E&amp;a12c03Y padded for 6 milliseconds.  Note that the order of  the
1138+       rows  and  columns  is  inverted  here, and that the row and column are
1139+       printed   as   two   digits.     Thus    its    <STRONG>cup</STRONG>    capability    is
1140        "cup=6\E&amp;%p2%2dc%p1%2dY".
1141
1142-       The Microterm ACT-IV needs the current row and column sent preceded  by
1143-       a   <STRONG>^T</STRONG>,   with   the   row   and   column  simply  encoded  in  binary,
1144-       "cup=^T%p1%c%p2%c".  Terminals which  use  "%c"  need  to  be  able  to
1145-       backspace  the cursor (<STRONG>cub1</STRONG>), and to move the cursor up one line on the
1146-       screen (<STRONG>cuu1</STRONG>).  This is necessary because it  is  not  always  safe  to
1147-       transmit  <STRONG>\n</STRONG> <STRONG>^D</STRONG> and <STRONG>\r</STRONG>, as the system may change or discard them.  (The
1148-       library routines dealing with terminfo set tty modes so that  tabs  are
1149-       never  expanded, so \t is safe to send.  This turns out to be essential
1150+       The  Microterm ACT-IV needs the current row and column sent preceded by
1151+       a  <STRONG>^T</STRONG>,  with  the  row   and   column   simply   encoded   in   binary,
1152+       "cup=^T%p1%c%p2%c".   Terminals  which  use  "%c"  need  to  be able to
1153+       backspace the cursor (<STRONG>cub1</STRONG>), and to move the cursor up one line on  the
1154+       screen  (<STRONG>cuu1</STRONG>).   This  is  necessary  because it is not always safe to
1155+       transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG> and <STRONG>\r</STRONG>, as the system may change or discard them.   (The
1156+       library  routines  dealing with terminfo set tty modes so that tabs are
1157+       never expanded, so \t is safe to send.  This turns out to be  essential
1158        for the Ann Arbor 4080.)
1159
1160-       A final example is the LSI ADM-3a, which uses row and column offset  by
1161+       A  final example is the LSI ADM-3a, which uses row and column offset by
1162        a blank character, thus "cup=\E=%p1%' '%+%c%p2%' '%+%c".  After sending
1163-       "\E=", this pushes the first parameter, pushes the ASCII  value  for  a
1164+       "\E=",  this  pushes  the first parameter, pushes the ASCII value for a
1165        space (32), adds them (pushing the sum on the stack in place of the two
1166-       previous values) and outputs that value as a character.  Then the  same
1167-       is  done for the second parameter.  More complex arithmetic is possible
1168+       previous  values) and outputs that value as a character.  Then the same
1169+       is done for the second parameter.  More complex arithmetic is  possible
1170        using the stack.
1171
1172
1173 </PRE><H3><a name="h3-Cursor-Motions">Cursor Motions</a></H3><PRE>
1174-       If the terminal has a fast way to home the cursor (to very  upper  left
1175-       corner  of screen) then this can be given as <STRONG>home</STRONG>; similarly a fast way
1176-       of getting to the lower left-hand corner can be given as <STRONG>ll</STRONG>;  this  may
1177+       If  the  terminal has a fast way to home the cursor (to very upper left
1178+       corner of screen) then this can be given as <STRONG>home</STRONG>; similarly a fast  way
1179+       of  getting  to the lower left-hand corner can be given as <STRONG>ll</STRONG>; this may
1180        involve going up with <STRONG>cuu1</STRONG> from the home position, but a program should
1181        never do this itself (unless <STRONG>ll</STRONG> does) because it can make no assumption
1182-       about  the  effect  of moving up from the home position.  Note that the
1183-       home position is the same as addressing to (0,0): to the top left  cor-
1184+       about the effect of moving up from the home position.   Note  that  the
1185+       home  position is the same as addressing to (0,0): to the top left cor-
1186        ner of the screen, not of memory.  (Thus, the \EH sequence on HP termi-
1187        nals cannot be used for <STRONG>home</STRONG>.)
1188
1189        If the terminal has row or column absolute cursor addressing, these can
1190-       be  given  as  single  parameter  capabilities <STRONG>hpa</STRONG> (horizontal position
1191-       absolute) and <STRONG>vpa</STRONG> (vertical position absolute).   Sometimes  these  are
1192-       shorter  than  the  more  general  two  parameter sequence (as with the
1193-       hp2645) and can be used in preference to <STRONG>cup</STRONG>.  If there are  parameter-
1194-       ized  local  motions  (e.g.,  move  <EM>n</EM> spaces to the right) these can be
1195-       given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single parameter indicating  how
1196-       many  spaces  to move.  These are primarily useful if the terminal does
1197+       be given as single  parameter  capabilities  <STRONG>hpa</STRONG>  (horizontal  position
1198+       absolute)  and  <STRONG>vpa</STRONG>  (vertical position absolute).  Sometimes these are
1199+       shorter than the more general  two  parameter  sequence  (as  with  the
1200+       hp2645)  and can be used in preference to <STRONG>cup</STRONG>.  If there are parameter-
1201+       ized local motions (e.g., move <EM>n</EM> spaces to  the  right)  these  can  be
1202+       given  as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single parameter indicating how
1203+       many spaces to move.  These are primarily useful if the  terminal  does
1204        not have <STRONG>cup</STRONG>, such as the TEKTRONIX 4025.
1205
1206-       If the terminal needs to be in a special mode when  running  a  program
1207+       If  the  terminal  needs to be in a special mode when running a program
1208        that uses these capabilities, the codes to enter and exit this mode can
1209-       be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>.  This arises, for example, from  terminals
1210-       like  the  Concept  with more than one page of memory.  If the terminal
1211+       be  given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>.  This arises, for example, from terminals
1212+       like the Concept with more than one page of memory.   If  the  terminal
1213        has only memory relative cursor addressing and not screen relative cur-
1214        sor addressing, a one screen-sized window must be fixed into the termi-
1215-       nal for cursor addressing to work properly.  This is also used for  the
1216-       TEKTRONIX  4025,  where  <STRONG>smcup</STRONG> sets the command character to be the one
1217-       used by terminfo.  If the <STRONG>smcup</STRONG> sequence will not  restore  the  screen
1218-       after  an  <STRONG>rmcup</STRONG>  sequence  is output (to the state prior to outputting
1219+       nal  for cursor addressing to work properly.  This is also used for the
1220+       TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets the command character to  be  the  one
1221+       used  by  terminfo.   If the <STRONG>smcup</STRONG> sequence will not restore the screen
1222+       after an <STRONG>rmcup</STRONG> sequence is output (to the  state  prior  to  outputting
1223        <STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
1224
1225
1226 </PRE><H3><a name="h3-Area-Clears">Area Clears</a></H3><PRE>
1227-       If the terminal can clear from the current position to the end  of  the
1228-       line,  leaving  the cursor where it is, this should be given as <STRONG>el</STRONG>.  If
1229-       the terminal can clear from the beginning of the line  to  the  current
1230-       position  inclusive,  leaving  the  cursor  where it is, this should be
1231-       given as <STRONG>el1</STRONG>.  If the terminal can clear from the current  position  to
1232-       the  end  of  the display, then this should be given as <STRONG>ed</STRONG>.  <STRONG>Ed</STRONG> is only
1233+       If  the  terminal can clear from the current position to the end of the
1234+       line, leaving the cursor where it is, this should be given as  <STRONG>el</STRONG>.   If
1235+       the  terminal  can  clear from the beginning of the line to the current
1236+       position inclusive, leaving the cursor where  it  is,  this  should  be
1237+       given  as  <STRONG>el1</STRONG>.  If the terminal can clear from the current position to
1238+       the end of the display, then this should be given as <STRONG>ed</STRONG>.   <STRONG>Ed</STRONG>  is  only
1239        defined from the first column of a line.  (Thus, it can be simulated by
1240        a request to delete a large number of lines, if a true <STRONG>ed</STRONG> is not avail-
1241        able.)
1242
1243
1244 </PRE><H3><a name="h3-Insert_delete-line-and-vertical-motions">Insert/delete line and vertical motions</a></H3><PRE>
1245-       If the terminal can open a new blank line before  the  line  where  the
1246-       cursor  is,  this  should  be  given as <STRONG>il1</STRONG>; this is done only from the
1247-       first position of a line.  The cursor must then  appear  on  the  newly
1248-       blank  line.   If  the terminal can delete the line which the cursor is
1249-       on, then this should be given as <STRONG>dl1</STRONG>; this is done only from the  first
1250+       If  the  terminal  can  open a new blank line before the line where the
1251+       cursor is, this should be given as <STRONG>il1</STRONG>; this  is  done  only  from  the
1252+       first  position  of  a  line.  The cursor must then appear on the newly
1253+       blank line.  If the terminal can delete the line which  the  cursor  is
1254+       on,  then this should be given as <STRONG>dl1</STRONG>; this is done only from the first
1255        position on the line to be deleted.  Versions of <STRONG>il1</STRONG> and <STRONG>dl1</STRONG> which take
1256        a single parameter and insert or delete that many lines can be given as
1257        <STRONG>il</STRONG> and <STRONG>dl</STRONG>.
1258
1259-       If  the  terminal  has a settable scrolling region (like the vt100) the
1260-       command to set this can be described with  the  <STRONG>csr</STRONG>  capability,  which
1261+       If the terminal has a settable scrolling region (like  the  vt100)  the
1262+       command  to  set  this  can be described with the <STRONG>csr</STRONG> capability, which
1263        takes two parameters: the top and bottom lines of the scrolling region.
1264        The cursor position is, alas, undefined after using this command.
1265
1266-       It is possible to get the effect of insert or delete line using <STRONG>csr</STRONG>  on
1267-       a  properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save and restore cursor) com-
1268-       mands may be useful for ensuring that  your  synthesized  insert/delete
1269-       string  does  not  move the cursor.  (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library
1270-       does  this  synthesis  automatically,   so   you   need   not   compose
1271+       It  is possible to get the effect of insert or delete line using <STRONG>csr</STRONG> on
1272+       a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save and restore cursor)  com-
1273+       mands  may  be  useful for ensuring that your synthesized insert/delete
1274+       string does not move the cursor.  (Note that  the  <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>  library
1275+       does   this   synthesis   automatically,   so   you  need  not  compose
1276        insert/delete strings for an entry with <STRONG>csr</STRONG>).
1277
1278        Yet another way to construct insert and delete might be to use a combi-
1279-       nation of index with the memory-lock feature found  on  some  terminals
1280+       nation  of  index  with the memory-lock feature found on some terminals
1281        (like the HP-700/90 series, which however also has insert/delete).
1282
1283-       Inserting  lines  at  the  top or bottom of the screen can also be done
1284-       using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a  true  insert/delete  line,
1285+       Inserting lines at the top or bottom of the screen  can  also  be  done
1286+       using  <STRONG>ri</STRONG>  or  <STRONG>ind</STRONG> on many terminals without a true insert/delete line,
1287        and is often faster even on terminals with those features.
1288
1289        The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each scrolling win-
1290-       dow is effectively a view port on a screen-sized canvas.  To  test  for
1291+       dow  is  effectively a view port on a screen-sized canvas.  To test for
1292        this capability, create a scrolling region in the middle of the screen,
1293-       write something to the bottom line, move the cursor to the top  of  the
1294+       write  something  to the bottom line, move the cursor to the top of the
1295        region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>.  If the data scrolled off the
1296-       bottom of the region by the  <STRONG>ri</STRONG>  re-appears,  then  scrolling  is  non-
1297-       destructive.   System  V  and XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and
1298-       <STRONG>rin</STRONG> will simulate destructive scrolling; their  documentation  cautions
1299-       you  not to define <STRONG>csr</STRONG> unless this is true.  This <STRONG>curses</STRONG> implementation
1300+       bottom  of  the  region  by  the  <STRONG>ri</STRONG> re-appears, then scrolling is non-
1301+       destructive.  System V and XSI Curses expect that <STRONG>ind</STRONG>,  <STRONG>ri</STRONG>,  <STRONG>indn</STRONG>,  and
1302+       <STRONG>rin</STRONG>  will  simulate destructive scrolling; their documentation cautions
1303+       you not to define <STRONG>csr</STRONG> unless this is true.  This <STRONG>curses</STRONG>  implementation
1304        is more liberal and will do explicit erases after scrolling if <STRONG>ndsrc</STRONG> is
1305        defined.
1306
1307-       If  the  terminal has the ability to define a window as part of memory,
1308-       which all commands affect, it should  be  given  as  the  parameterized
1309-       string  <STRONG>wind</STRONG>.  The four parameters are the starting and ending lines in
1310+       If the terminal has the ability to define a window as part  of  memory,
1311+       which  all  commands  affect,  it  should be given as the parameterized
1312+       string <STRONG>wind</STRONG>.  The four parameters are the starting and ending lines  in
1313        memory and the starting and ending columns in memory, in that order.
1314
1315        If the terminal can retain display memory above, then the <STRONG>da</STRONG> capability
1316-       should  be  given;  if  display  memory  can be retained below, then <STRONG>db</STRONG>
1317-       should be given.  These indicate that deleting a line or scrolling  may
1318-       bring  non-blank lines up from below or that scrolling back with <STRONG>ri</STRONG> may
1319+       should be given; if display memory  can  be  retained  below,  then  <STRONG>db</STRONG>
1320+       should  be given.  These indicate that deleting a line or scrolling may
1321+       bring non-blank lines up from below or that scrolling back with <STRONG>ri</STRONG>  may
1322        bring down non-blank lines.
1323
1324
1325 </PRE><H3><a name="h3-Insert_Delete-Character">Insert/Delete Character</a></H3><PRE>
1326-       There are two basic kinds of  intelligent  terminals  with  respect  to
1327-       insert/delete  character  which  can  be described using <EM>terminfo.</EM>  The
1328-       most common insert/delete character operations affect only the  charac-
1329-       ters  on  the current line and shift characters off the end of the line
1330+       There  are  two  basic  kinds  of intelligent terminals with respect to
1331+       insert/delete character which can be  described  using  <EM>terminfo.</EM>   The
1332+       most  common insert/delete character operations affect only the charac-
1333+       ters on the current line and shift characters off the end of  the  line
1334        rigidly.  Other terminals, such as the Concept 100 and the Perkin Elmer
1335        Owl, make a distinction between typed and untyped blanks on the screen,
1336-       shifting upon an insert or delete only  to  an  untyped  blank  on  the
1337+       shifting  upon  an  insert  or  delete  only to an untyped blank on the
1338        screen which is either eliminated, or expanded to two untyped blanks.
1339
1340-       You  can determine the kind of terminal you have by clearing the screen
1341-       and then typing text separated by cursor  motions.   Type  "abc    def"
1342-       using  local  cursor  motions  (not  spaces)  between the "abc" and the
1343-       "def".  Then position the cursor before the "abc" and put the  terminal
1344-       in  insert  mode.   If typing characters causes the rest of the line to
1345-       shift rigidly and characters to fall off the end,  then  your  terminal
1346-       does  not  distinguish  between  blanks  and untyped positions.  If the
1347-       "abc" shifts over to the "def" which then move together around the  end
1348-       of  the current line and onto the next as you insert, you have the sec-
1349-       ond type of terminal, and should give the capability <STRONG>in</STRONG>,  which  stands
1350+       You can determine the kind of terminal you have by clearing the  screen
1351+       and  then  typing  text separated by cursor motions.  Type "abc    def"
1352+       using local cursor motions (not  spaces)  between  the  "abc"  and  the
1353+       "def".   Then position the cursor before the "abc" and put the terminal
1354+       in insert mode.  If typing characters causes the rest of  the  line  to
1355+       shift  rigidly  and  characters to fall off the end, then your terminal
1356+       does not distinguish between blanks  and  untyped  positions.   If  the
1357+       "abc"  shifts over to the "def" which then move together around the end
1358+       of the current line and onto the next as you insert, you have the  sec-
1359+       ond  type  of terminal, and should give the capability <STRONG>in</STRONG>, which stands
1360        for "insert null".
1361
1362-       While  these  are  two  logically  separate attributes (one line versus
1363-       multi-line insert mode, and special treatment  of  untyped  spaces)  we
1364-       have  seen  no terminals whose insert mode cannot be described with the
1365+       While these are two logically  separate  attributes  (one  line  versus
1366+       multi-line  insert  mode,  and  special treatment of untyped spaces) we
1367+       have seen no terminals whose insert mode cannot be described  with  the
1368        single attribute.
1369
1370-       Terminfo can describe both terminals which have  an  insert  mode,  and
1371-       terminals  which send a simple sequence to open a blank position on the
1372+       Terminfo  can  describe  both  terminals which have an insert mode, and
1373+       terminals which send a simple sequence to open a blank position on  the
1374        current line.  Give as <STRONG>smir</STRONG> the sequence to get into insert mode.  Give
1375-       as  <STRONG>rmir</STRONG>  the  sequence  to  leave  insert  mode.  Now give as <STRONG>ich1</STRONG> any
1376-       sequence needed to be sent just before  sending  the  character  to  be
1377-       inserted.   Most  terminals with a true insert mode will not give <STRONG>ich1</STRONG>;
1378-       terminals which send a sequence to open a screen position  should  give
1379+       as <STRONG>rmir</STRONG> the sequence to leave  insert  mode.   Now  give  as  <STRONG>ich1</STRONG>  any
1380+       sequence  needed  to  be  sent  just before sending the character to be
1381+       inserted.  Most terminals with a true insert mode will not  give  <STRONG>ich1</STRONG>;
1382+       terminals  which  send a sequence to open a screen position should give
1383        it here.
1384
1385-       If  your  terminal has both, insert mode is usually preferable to <STRONG>ich1</STRONG>.
1386-       Technically, you should not give  both  unless  the  terminal  actually
1387-       requires  both to be used in combination.  Accordingly, some non-curses
1388-       applications get confused if both are present; the symptom  is  doubled
1389-       characters  in  an  update using insert.  This requirement is now rare;
1390-       most <STRONG>ich</STRONG> sequences do not require previous smir, and most  smir  insert
1391-       modes  do  not  require <STRONG>ich1</STRONG> before each character.  Therefore, the new
1392-       <STRONG>curses</STRONG> actually assumes this is the case and uses either  <STRONG>rmir</STRONG>/<STRONG>smir</STRONG>  or
1393-       <STRONG>ich</STRONG>/<STRONG>ich1</STRONG>  as appropriate (but not both).  If you have to write an entry
1394-       to be used under new curses for a terminal old  enough  to  need  both,
1395+       If your terminal has both, insert mode is usually preferable  to  <STRONG>ich1</STRONG>.
1396+       Technically,  you  should  not  give  both unless the terminal actually
1397+       requires both to be used in combination.  Accordingly, some  non-curses
1398+       applications  get  confused if both are present; the symptom is doubled
1399+       characters in an update using insert.  This requirement  is  now  rare;
1400+       most  <STRONG>ich</STRONG>  sequences do not require previous smir, and most smir insert
1401+       modes do not require <STRONG>ich1</STRONG> before each character.   Therefore,  the  new
1402+       <STRONG>curses</STRONG>  actually  assumes this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or
1403+       <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as appropriate (but not both).  If you have to write an  entry
1404+       to  be  used  under  new curses for a terminal old enough to need both,
1405        include the <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>.
1406
1407        If post insert padding is needed, give this as a number of milliseconds
1408-       in <STRONG>ip</STRONG> (a string option).  Any other sequence which may need to be  sent
1409+       in  <STRONG>ip</STRONG> (a string option).  Any other sequence which may need to be sent
1410        after an insert of a single character may also be given in <STRONG>ip</STRONG>.  If your
1411-       terminal needs both to be placed into an "insert mode"  and  a  special
1412-       code  to  precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG> and <STRONG>ich1</STRONG>
1413-       can be given, and both will be used.   The  <STRONG>ich</STRONG>  capability,  with  one
1414+       terminal  needs  both  to be placed into an "insert mode" and a special
1415+       code to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>  and  <STRONG>ich1</STRONG>
1416+       can  be  given,  and  both  will be used.  The <STRONG>ich</STRONG> capability, with one
1417        parameter, <EM>n</EM>, will repeat the effects of <STRONG>ich1</STRONG> <EM>n</EM> times.
1418
1419-       If  padding  is  necessary between characters typed while not in insert
1420+       If padding is necessary between characters typed while  not  in  insert
1421        mode, give this as a number of milliseconds padding in <STRONG>rmp</STRONG>.
1422
1423-       It is occasionally necessary to move around while  in  insert  mode  to
1424-       delete  characters  on the same line (e.g., if there is a tab after the
1425-       insertion position).  If your terminal allows motion  while  in  insert
1426-       mode  you  can  give  the  capability <STRONG>mir</STRONG> to speed up inserting in this
1427-       case.  Omitting <STRONG>mir</STRONG> will affect only speed.   Some  terminals  (notably
1428-       Datamedia's)  must  not  have  <STRONG>mir</STRONG> because of the way their insert mode
1429+       It  is  occasionally  necessary  to move around while in insert mode to
1430+       delete characters on the same line (e.g., if there is a tab  after  the
1431+       insertion  position).   If  your terminal allows motion while in insert
1432+       mode you can give the capability <STRONG>mir</STRONG> to  speed  up  inserting  in  this
1433+       case.   Omitting  <STRONG>mir</STRONG>  will affect only speed.  Some terminals (notably
1434+       Datamedia's) must not have <STRONG>mir</STRONG> because of the  way  their  insert  mode
1435        works.
1436
1437-       Finally, you can specify <STRONG>dch1</STRONG> to delete a single  character,  <STRONG>dch</STRONG>  with
1438-       one  parameter,  <EM>n</EM>,  to  delete <EM>n</EM> <EM>characters,</EM> and delete mode by giving
1439-       <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit delete  mode  (any  mode  the  terminal
1440+       Finally,  you  can  specify <STRONG>dch1</STRONG> to delete a single character, <STRONG>dch</STRONG> with
1441+       one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM> and  delete  mode  by  giving
1442+       <STRONG>smdc</STRONG>  and  <STRONG>rmdc</STRONG>  to  enter  and exit delete mode (any mode the terminal
1443        needs to be placed in for <STRONG>dch1</STRONG> to work).
1444
1445-       A  command  to  erase  <EM>n</EM>  characters (equivalent to outputting <EM>n</EM> blanks
1446+       A command to erase <EM>n</EM> characters  (equivalent  to  outputting  <EM>n</EM>  blanks
1447        without moving the cursor) can be given as <STRONG>ech</STRONG> with one parameter.
1448
1449
1450 </PRE><H3><a name="h3-Highlighting_-Underlining_-and-Visible-Bells">Highlighting, Underlining, and Visible Bells</a></H3><PRE>
1451        If your terminal has one or more kinds of display attributes, these can
1452-       be  represented  in  a number of different ways.  You should choose one
1453-       display form as <EM>standout</EM> <EM>mode</EM>,  representing  a  good,  high  contrast,
1454-       easy-on-the-eyes,  format  for  highlighting  error  messages and other
1455-       attention getters.  (If you have a choice,  reverse  video  plus  half-
1456-       bright  is  good,  or reverse video alone.)  The sequences to enter and
1457-       exit standout mode are given as <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>,  respectively.   If  the
1458-       code  to  change  into  or  out of standout mode leaves one or even two
1459-       blank spaces on the screen, as the TVI 912 and Teleray  1061  do,  then
1460+       be represented in a number of different ways.  You  should  choose  one
1461+       display  form  as  <EM>standout</EM>  <EM>mode</EM>,  representing a good, high contrast,
1462+       easy-on-the-eyes, format for  highlighting  error  messages  and  other
1463+       attention  getters.   (If  you  have a choice, reverse video plus half-
1464+       bright is good, or reverse video alone.)  The sequences  to  enter  and
1465+       exit  standout  mode  are given as <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively.  If the
1466+       code to change into or out of standout mode  leaves  one  or  even  two
1467+       blank  spaces  on  the screen, as the TVI 912 and Teleray 1061 do, then
1468        <STRONG>xmc</STRONG> should be given to tell how many spaces are left.
1469
1470        Codes to begin underlining and end underlining can be given as <STRONG>smul</STRONG> and
1471        <STRONG>rmul</STRONG> respectively.  If the terminal has a code to underline the current
1472-       character  and  move  the  cursor  one  space to the right, such as the
1473+       character and move the cursor one space  to  the  right,  such  as  the
1474        Microterm Mime, this can be given as <STRONG>uc</STRONG>.
1475
1476-       Other capabilities to enter various highlighting  modes  include  <STRONG>blink</STRONG>
1477-       (blinking)  <STRONG>bold</STRONG>  (bold or extra bright) <STRONG>dim</STRONG> (dim or half-bright) <STRONG>invis</STRONG>
1478-       (blanking or invisible text) <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video)  <STRONG>sgr0</STRONG>
1479-       (turn  off  <EM>all</EM>  attribute  modes) <STRONG>smacs</STRONG> (enter alternate character set
1480+       Other  capabilities  to  enter various highlighting modes include <STRONG>blink</STRONG>
1481+       (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG> (dim or  half-bright)  <STRONG>invis</STRONG>
1482+       (blanking  or invisible text) <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG>
1483+       (turn off <EM>all</EM> attribute modes) <STRONG>smacs</STRONG>  (enter  alternate  character  set
1484        mode) and <STRONG>rmacs</STRONG> (exit alternate character set mode).  Turning on any of
1485        these modes singly may or may not turn off other modes.
1486
1487-       If  there  is  a  sequence to set arbitrary combinations of modes, this
1488-       should be given as <STRONG>sgr</STRONG> (set attributes),  taking  9  parameters.   Each
1489-       parameter  is either 0 or nonzero, as the corresponding attribute is on
1490-       or off.  The 9 parameters are, in order: standout, underline,  reverse,
1491-       blink,  dim,  bold,  blank,  protect, alternate character set.  Not all
1492+       If there is a sequence to set arbitrary  combinations  of  modes,  this
1493+       should  be  given  as  <STRONG>sgr</STRONG> (set attributes), taking 9 parameters.  Each
1494+       parameter is either 0 or nonzero, as the corresponding attribute is  on
1495+       or  off.  The 9 parameters are, in order: standout, underline, reverse,
1496+       blink, dim, bold, blank, protect, alternate  character  set.   Not  all
1497        modes need be supported by <STRONG>sgr</STRONG>, only those for which corresponding sep-
1498        arate attribute commands exist.
1499
1500@@ -1746,17 +1753,17 @@
1501                p8                   protect          not used
1502                p9                   altcharset       ^O (off) ^N (on)
1503
1504-       We  begin each escape sequence by turning off any existing modes, since
1505-       there is no quick way to determine whether they are  active.   Standout
1506-       is  set up to be the combination of reverse and bold.  The vt220 termi-
1507-       nal has a protect mode, though it is not commonly used in  sgr  because
1508-       it  protects  characters  on  the screen from the host's erasures.  The
1509-       altcharset mode also is different in  that  it  is  either  ^O  or  ^N,
1510-       depending  on whether it is off or on.  If all modes are turned on, the
1511+       We begin each escape sequence by turning off any existing modes,  since
1512+       there  is  no quick way to determine whether they are active.  Standout
1513+       is set up to be the combination of reverse and bold.  The vt220  termi-
1514+       nal  has  a protect mode, though it is not commonly used in sgr because
1515+       it protects characters on the screen from  the  host's  erasures.   The
1516+       altcharset  mode  also  is  different  in  that  it is either ^O or ^N,
1517+       depending on whether it is off or on.  If all modes are turned on,  the
1518        resulting sequence is \E[0;1;4;5;7;8m^N.
1519
1520-       Some sequences are common to different modes.  For example, ;7 is  out-
1521-       put  when  either  p1  or  p3  is  true, that is, if either standout or
1522+       Some  sequences are common to different modes.  For example, ;7 is out-
1523+       put when either p1 or p3 is  true,  that  is,  if  either  standout  or
1524        reverse modes are turned on.
1525
1526        Writing out the above sequences, along with their dependencies yields
1527@@ -1777,54 +1784,54 @@
1528            sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
1529                %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
1530
1531-       Remember that if you specify sgr, you must also  specify  sgr0.   Also,
1532-       some  implementations  rely on sgr being given if sgr0 is, Not all ter-
1533-       minfo entries necessarily have an sgr string, however.   Many  terminfo
1534+       Remember  that  if  you specify sgr, you must also specify sgr0.  Also,
1535+       some implementations rely on sgr being given if sgr0 is, Not  all  ter-
1536+       minfo  entries  necessarily have an sgr string, however.  Many terminfo
1537        entries are derived from termcap entries which have no sgr string.  The
1538        only drawback to adding an sgr string is that termcap also assumes that
1539        sgr0 does not exit alternate character set mode.
1540
1541-       Terminals  with  the "magic cookie" glitch (<STRONG>xmc</STRONG>) deposit special "cook-
1542+       Terminals with the "magic cookie" glitch (<STRONG>xmc</STRONG>) deposit  special  "cook-
1543        ies" when they receive mode-setting sequences, which affect the display
1544-       algorithm  rather than having extra bits for each character.  Some ter-
1545-       minals, such as the HP 2621, automatically  leave  standout  mode  when
1546-       they  move  to  a  new line or the cursor is addressed.  Programs using
1547-       standout mode should exit standout mode before  moving  the  cursor  or
1548-       sending  a  newline,  unless  the <STRONG>msgr</STRONG> capability, asserting that it is
1549+       algorithm rather than having extra bits for each character.  Some  ter-
1550+       minals,  such  as  the  HP 2621, automatically leave standout mode when
1551+       they move to a new line or the cursor  is  addressed.   Programs  using
1552+       standout  mode  should  exit  standout mode before moving the cursor or
1553+       sending a newline, unless the <STRONG>msgr</STRONG> capability,  asserting  that  it  is
1554        safe to move in standout mode, is present.
1555
1556-       If the terminal has a way of flashing the screen to indicate  an  error
1557-       quietly  (a  bell replacement) then this can be given as <STRONG>flash</STRONG>; it must
1558+       If  the  terminal has a way of flashing the screen to indicate an error
1559+       quietly (a bell replacement) then this can be given as <STRONG>flash</STRONG>;  it  must
1560        not move the cursor.
1561
1562-       If the cursor needs to be made more visible than normal when it is  not
1563+       If  the cursor needs to be made more visible than normal when it is not
1564        on the bottom line (to make, for example, a non-blinking underline into
1565-       an easier to find block or blinking underline) give  this  sequence  as
1566+       an  easier  to  find block or blinking underline) give this sequence as
1567        <STRONG>cvvis</STRONG>.  If there is a way to make the cursor completely invisible, give
1568-       that as <STRONG>civis</STRONG>.  The capability <STRONG>cnorm</STRONG> should be given which  undoes  the
1569+       that  as  <STRONG>civis</STRONG>.  The capability <STRONG>cnorm</STRONG> should be given which undoes the
1570        effects of both of these modes.
1571
1572-       If  your  terminal  correctly  generates underlined characters (with no
1573-       special codes needed) even though it  does  not  overstrike,  then  you
1574-       should  give  the  capability  <STRONG>ul</STRONG>.  If a character overstriking another
1575-       leaves both characters on the screen, specify the  capability  <STRONG>os</STRONG>.   If
1576+       If your terminal correctly generates  underlined  characters  (with  no
1577+       special  codes  needed)  even  though  it does not overstrike, then you
1578+       should give the capability <STRONG>ul</STRONG>.  If  a  character  overstriking  another
1579+       leaves  both  characters  on the screen, specify the capability <STRONG>os</STRONG>.  If
1580        overstrikes are erasable with a blank, then this should be indicated by
1581        giving <STRONG>eo</STRONG>.
1582
1583
1584 </PRE><H3><a name="h3-Keypad-and-Function-Keys">Keypad and Function Keys</a></H3><PRE>
1585-       If the terminal has a keypad that transmits codes  when  the  keys  are
1586-       pressed,  this  information can be given.  Note that it is not possible
1587+       If  the  terminal  has  a keypad that transmits codes when the keys are
1588+       pressed, this information can be given.  Note that it is  not  possible
1589        to handle terminals where the keypad only works in local (this applies,
1590-       for  example, to the unshifted HP 2621 keys).  If the keypad can be set
1591+       for example, to the unshifted HP 2621 keys).  If the keypad can be  set
1592        to transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and <STRONG>rmkx</STRONG>.  Other-
1593        wise the keypad is assumed to always transmit.
1594
1595-       The  codes  sent  by the left arrow, right arrow, up arrow, down arrow,
1596-       and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG>  <STRONG>kcuu1,</STRONG>  <STRONG>kcud1,</STRONG>  and  <STRONG>khome</STRONG>
1597+       The codes sent by the left arrow, right arrow, up  arrow,  down  arrow,
1598+       and  home  keys  can  be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG> <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG>
1599        respectively.  If there are function keys such as f0, f1, ..., f10, the
1600-       codes they send can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG>  <STRONG>kf10</STRONG>.   If  these  keys
1601-       have  labels  other  than the default f0 through f10, the labels can be
1602+       codes  they  send  can  be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>.  If these keys
1603+       have labels other than the default f0 through f10, the  labels  can  be
1604        given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>.
1605
1606        The codes transmitted by certain other special keys can be given:
1607@@ -1863,64 +1870,64 @@
1608
1609        <STRONG>o</STRONG>   <STRONG>khts</STRONG> (set a tab stop in this column).
1610
1611-       In addition, if the keypad has a 3 by 3 array  of  keys  including  the
1612-       four  arrow  keys,  the  other five keys can be given as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>,
1613-       <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>.  These keys are useful when the  effects  of  a  3  by  3
1614+       In  addition,  if  the  keypad has a 3 by 3 array of keys including the
1615+       four arrow keys, the other five keys can be given  as  <STRONG>ka1</STRONG>,  <STRONG>ka3</STRONG>,  <STRONG>kb2</STRONG>,
1616+       <STRONG>kc1</STRONG>,  and  <STRONG>kc3</STRONG>.   These  keys  are  useful when the effects of a 3 by 3
1617        directional pad are needed.
1618
1619        Strings to program function keys can be given as <STRONG>pfkey</STRONG>, <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>.
1620-       A string to program screen labels should be specified as <STRONG>pln</STRONG>.  Each  of
1621-       these  strings takes two parameters: the function key number to program
1622+       A  string to program screen labels should be specified as <STRONG>pln</STRONG>.  Each of
1623+       these strings takes two parameters: the function key number to  program
1624        (from 0 to 10) and the string to program it with.  Function key numbers
1625-       out  of  this  range may program undefined keys in a terminal dependent
1626-       manner.  The difference between the capabilities is that  <STRONG>pfkey</STRONG>  causes
1627-       pressing  the  given  key  to  be the same as the user typing the given
1628-       string; <STRONG>pfloc</STRONG> causes the string to  be  executed  by  the  terminal  in
1629+       out of this range may program undefined keys in  a  terminal  dependent
1630+       manner.   The  difference between the capabilities is that <STRONG>pfkey</STRONG> causes
1631+       pressing the given key to be the same as  the  user  typing  the  given
1632+       string;  <STRONG>pfloc</STRONG>  causes  the  string  to  be executed by the terminal in
1633        local; and <STRONG>pfx</STRONG> causes the string to be transmitted to the computer.
1634
1635-       The  capabilities  <STRONG>nlab</STRONG>,  <STRONG>lw</STRONG>  and  <STRONG>lh</STRONG> define the number of programmable
1636-       screen labels and their width and height.  If  there  are  commands  to
1637-       turn  the  labels on and off, give them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>.  <STRONG>smln</STRONG> is nor-
1638-       mally output after one or more pln sequences  to  make  sure  that  the
1639+       The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG>  define  the  number  of  programmable
1640+       screen  labels  and  their  width and height.  If there are commands to
1641+       turn the labels on and off, give them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>.  <STRONG>smln</STRONG>  is  nor-
1642+       mally  output  after  one  or  more pln sequences to make sure that the
1643        change becomes visible.
1644
1645
1646 </PRE><H3><a name="h3-Tabs-and-Initialization">Tabs and Initialization</a></H3><PRE>
1647        A few capabilities are used only for tabs:
1648
1649-       <STRONG>o</STRONG>   If  the  terminal  has hardware tabs, the command to advance to the
1650+       <STRONG>o</STRONG>   If the terminal has hardware tabs, the command to  advance  to  the
1651            next tab stop can be given as <STRONG>ht</STRONG> (usually control/I).
1652
1653        <STRONG>o</STRONG>   A "back-tab" command which moves leftward to the preceding tab stop
1654            can be given as <STRONG>cbt</STRONG>.
1655
1656-           By  convention,  if the teletype modes indicate that tabs are being
1657-           expanded by the computer rather than being sent  to  the  terminal,
1658-           programs  should  not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are present, since
1659+           By convention, if the teletype modes indicate that tabs  are  being
1660+           expanded  by  the  computer rather than being sent to the terminal,
1661+           programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are  present,  since
1662            the user may not have the tab stops properly set.
1663
1664-       <STRONG>o</STRONG>   If the terminal has hardware tabs which are initially set  every  <EM>n</EM>
1665+       <STRONG>o</STRONG>   If  the  terminal has hardware tabs which are initially set every <EM>n</EM>
1666            spaces when the terminal is powered up, the numeric parameter <STRONG>it</STRONG> is
1667            given, showing the number of spaces the tabs are set to.
1668
1669            The <STRONG>it</STRONG> capability is normally used by the <STRONG>tset</STRONG> command to determine
1670-           whether  to set the mode for hardware tab expansion, and whether to
1671+           whether to set the mode for hardware tab expansion, and whether  to
1672            set the tab stops.  If the terminal has tab stops that can be saved
1673-           in  non-volatile  memory,  the terminfo description can assume that
1674+           in non-volatile memory, the terminfo description  can  assume  that
1675            they are properly set.
1676
1677        Other capabilities include
1678
1679        <STRONG>o</STRONG>   <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initialization strings for the terminal,
1680
1681-       <STRONG>o</STRONG>   <STRONG>iprog</STRONG>, the path name of a program to be run to initialize the  ter-
1682+       <STRONG>o</STRONG>   <STRONG>iprog</STRONG>,  the path name of a program to be run to initialize the ter-
1683            minal,
1684
1685        <STRONG>o</STRONG>   and <STRONG>if</STRONG>, the name of a file containing long initialization strings.
1686
1687-       These  strings  are  expected to set the terminal into modes consistent
1688-       with the rest of the terminfo description.  They are normally  sent  to
1689-       the  terminal,  by  the  <EM>init</EM> option of the <STRONG>tput</STRONG> program, each time the
1690+       These strings are expected to set the terminal  into  modes  consistent
1691+       with  the  rest of the terminfo description.  They are normally sent to
1692+       the terminal, by the <EM>init</EM> option of the <STRONG>tput</STRONG>  program,  each  time  the
1693        user logs in.  They will be printed in the following order:
1694
1695               run the program
1696@@ -1944,34 +1951,34 @@
1697               and finally output
1698                      <STRONG>is3</STRONG>.
1699
1700-       Most initialization is done with <STRONG>is2</STRONG>.  Special terminal  modes  can  be
1701-       set  up  without duplicating strings by putting the common sequences in
1702+       Most  initialization  is  done with <STRONG>is2</STRONG>.  Special terminal modes can be
1703+       set up without duplicating strings by putting the common  sequences  in
1704        <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and <STRONG>is3</STRONG>.
1705
1706-       A set of sequences that does a harder  reset  from  a  totally  unknown
1707+       A  set  of  sequences  that  does a harder reset from a totally unknown
1708        state can be given as <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rf</STRONG> and <STRONG>rs3</STRONG>, analogous to <STRONG>is1</STRONG> <STRONG>,</STRONG> <STRONG>is2</STRONG> <STRONG>,</STRONG> <STRONG>if</STRONG>
1709-       and <STRONG>is3</STRONG> respectively.  These strings are  output  by  <EM>reset</EM>  option  of
1710-       <STRONG>tput</STRONG>,  or  by  the <STRONG>reset</STRONG> program (an alias of <STRONG>tset</STRONG>), which is used when
1711+       and  <STRONG>is3</STRONG>  respectively.   These  strings  are output by <EM>reset</EM> option of
1712+       <STRONG>tput</STRONG>, or by the <STRONG>reset</STRONG> program (an alias of <STRONG>tset</STRONG>), which  is  used  when
1713        the terminal gets into a wedged state.  Commands are normally placed in
1714        <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they produce annoying effects on the screen
1715        and are not necessary when logging in.  For example, the command to set
1716-       the  vt100  into  80-column  mode would normally be part of <STRONG>is2</STRONG>, but it
1717-       causes an annoying glitch of the screen  and  is  not  normally  needed
1718+       the vt100 into 80-column mode would normally be part  of  <STRONG>is2</STRONG>,  but  it
1719+       causes  an  annoying  glitch  of  the screen and is not normally needed
1720        since the terminal is usually already in 80-column mode.
1721
1722-       The  <STRONG>reset</STRONG>  program  writes  strings including <STRONG>iprog</STRONG>, etc., in the same
1723-       order as the <EM>init</EM> program, using <STRONG>rs1</STRONG>, etc., instead of  <STRONG>is1</STRONG>,  etc.   If
1724-       any  of  <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset capability strings are missing, the
1725+       The <STRONG>reset</STRONG> program writes strings including <STRONG>iprog</STRONG>,  etc.,  in  the  same
1726+       order  as  the  <EM>init</EM> program, using <STRONG>rs1</STRONG>, etc., instead of <STRONG>is1</STRONG>, etc.  If
1727+       any of <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, or <STRONG>rf</STRONG> reset capability strings are  missing,  the
1728        <STRONG>reset</STRONG> program falls back upon the corresponding initialization capabil-
1729        ity string.
1730
1731-       If  there are commands to set and clear tab stops, they can be given as
1732+       If there are commands to set and clear tab stops, they can be given  as
1733        <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab stop in the current column
1734-       of  every  row).   If a more complex sequence is needed to set the tabs
1735+       of every row).  If a more complex sequence is needed to  set  the  tabs
1736        than can be described by this, the sequence can be placed in <STRONG>is2</STRONG> or <STRONG>if</STRONG>.
1737
1738-       The <STRONG>tput</STRONG> <STRONG>reset</STRONG> command uses the same capability strings  as  the  <STRONG>reset</STRONG>
1739-       command,  although  the two programs (<STRONG>tput</STRONG> and <STRONG>reset</STRONG>) provide different
1740+       The  <STRONG>tput</STRONG>  <STRONG>reset</STRONG>  command uses the same capability strings as the <STRONG>reset</STRONG>
1741+       command, although the two programs (<STRONG>tput</STRONG> and <STRONG>reset</STRONG>)  provide  different
1742        command-line options.
1743
1744        In practice, these terminfo capabilities are not often used in initial-
1745@@ -1980,78 +1987,78 @@
1746        <STRONG>o</STRONG>   Almost all hardware terminals (at least those which supported tabs)
1747            initialized those to every <EM>eight</EM> columns:
1748
1749-           The only exception was the AT&amp;T 2300  series,  which  set  tabs  to
1750+           The  only  exception  was  the  AT&amp;T 2300 series, which set tabs to
1751            every <EM>five</EM> columns.
1752
1753-       <STRONG>o</STRONG>   In  particular, developers of the hardware terminals which are com-
1754-           monly used as models for modern terminal emulators  provided  docu-
1755+       <STRONG>o</STRONG>   In particular, developers of the hardware terminals which are  com-
1756+           monly  used  as models for modern terminal emulators provided docu-
1757            mentation demonstrating that <EM>eight</EM> columns were the standard.
1758
1759        <STRONG>o</STRONG>   Because of this, the terminal initialization programs <STRONG>tput</STRONG> and <STRONG>tset</STRONG>
1760-           use  the  <STRONG>tbc</STRONG>  (<STRONG>clear_all_tabs</STRONG>)  and  <STRONG>hts</STRONG>  (<STRONG>set_tab</STRONG>)   capabilities
1761-           directly  only when the <STRONG>it</STRONG> (<STRONG>init_tabs</STRONG>) capability is set to a value
1762+           use   the  <STRONG>tbc</STRONG>  (<STRONG>clear_all_tabs</STRONG>)  and  <STRONG>hts</STRONG>  (<STRONG>set_tab</STRONG>)  capabilities
1763+           directly only when the <STRONG>it</STRONG> (<STRONG>init_tabs</STRONG>) capability is set to a  value
1764            other than <EM>eight</EM>.
1765
1766
1767 </PRE><H3><a name="h3-Delays-and-Padding">Delays and Padding</a></H3><PRE>
1768-       Many older and slower terminals do not support either XON/XOFF  or  DTR
1769-       handshaking,  including  hard copy terminals and some very archaic CRTs
1770-       (including, for example, DEC VT100s).  These may require padding  char-
1771+       Many  older  and slower terminals do not support either XON/XOFF or DTR
1772+       handshaking, including hard copy terminals and some very  archaic  CRTs
1773+       (including,  for example, DEC VT100s).  These may require padding char-
1774        acters after certain cursor motions and screen changes.
1775
1776        If the terminal uses xon/xoff handshaking for flow control (that is, it
1777-       automatically emits ^S back to the host  when  its  input  buffers  are
1778-       close  to  full),  set <STRONG>xon</STRONG>.  This capability suppresses the emission of
1779-       padding.  You can also set it for memory-mapped console devices  effec-
1780-       tively  that  do  not  have  a speed limit.  Padding information should
1781+       automatically  emits  ^S  back  to  the host when its input buffers are
1782+       close to full), set <STRONG>xon</STRONG>.  This capability suppresses  the  emission  of
1783+       padding.   You can also set it for memory-mapped console devices effec-
1784+       tively that do not have a  speed  limit.   Padding  information  should
1785        still be included so that routines can make better decisions about rel-
1786        ative costs, but actual pad characters will not be transmitted.
1787
1788        If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed at baud rates
1789-       below the value of <STRONG>pb</STRONG>.  If the entry has no  padding  baud  rate,  then
1790+       below  the  value  of  <STRONG>pb</STRONG>.  If the entry has no padding baud rate, then
1791        whether padding is emitted or not is completely controlled by <STRONG>xon</STRONG>.
1792
1793-       If  the  terminal requires other than a null (zero) character as a pad,
1794-       then this can be given as <STRONG>pad</STRONG>.  Only the first  character  of  the  <STRONG>pad</STRONG>
1795+       If the terminal requires other than a null (zero) character as  a  pad,
1796+       then  this  can  be  given as <STRONG>pad</STRONG>.  Only the first character of the <STRONG>pad</STRONG>
1797        string is used.
1798
1799
1800 </PRE><H3><a name="h3-Status-Lines">Status Lines</a></H3><PRE>
1801-       Some  terminals  have an extra "status line" which is not normally used
1802+       Some terminals have an extra "status line" which is not  normally  used
1803        by software (and thus not counted in the terminal's <STRONG>lines</STRONG> capability).
1804
1805-       The simplest case is a status line which is cursor-addressable but  not
1806+       The  simplest case is a status line which is cursor-addressable but not
1807        part of the main scrolling region on the screen; the Heathkit H19 has a
1808-       status line of this kind, as would  a  24-line  VT100  with  a  23-line
1809+       status  line  of  this  kind,  as  would a 24-line VT100 with a 23-line
1810        scrolling region set up on initialization.  This situation is indicated
1811        by the <STRONG>hs</STRONG> capability.
1812
1813-       Some terminals with status lines need special sequences to  access  the
1814-       status  line.  These may be expressed as a string with single parameter
1815-       <STRONG>tsl</STRONG> which takes the cursor to a given zero-origin column on the  status
1816-       line.   The  capability <STRONG>fsl</STRONG> must return to the main-screen cursor posi-
1817-       tions before the last <STRONG>tsl</STRONG>.  You may need to embed the string values  of
1818-       <STRONG>sc</STRONG>  (save  cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG> and <STRONG>fsl</STRONG> to accomplish
1819+       Some  terminals  with status lines need special sequences to access the
1820+       status line.  These may be expressed as a string with single  parameter
1821+       <STRONG>tsl</STRONG>  which takes the cursor to a given zero-origin column on the status
1822+       line.  The capability <STRONG>fsl</STRONG> must return to the main-screen  cursor  posi-
1823+       tions  before the last <STRONG>tsl</STRONG>.  You may need to embed the string values of
1824+       <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG> and <STRONG>fsl</STRONG>  to  accomplish
1825        this.
1826
1827-       The status line is normally assumed to be the same width as  the  width
1828-       of  the  terminal.   If  this  is  untrue,  you can specify it with the
1829+       The  status  line is normally assumed to be the same width as the width
1830+       of the terminal.  If this is  untrue,  you  can  specify  it  with  the
1831        numeric capability <STRONG>wsl</STRONG>.
1832
1833        A command to erase or blank the status line may be specified as <STRONG>dsl</STRONG>.
1834
1835-       The boolean capability <STRONG>eslok</STRONG> specifies  that  escape  sequences,  tabs,
1836+       The  boolean  capability  <STRONG>eslok</STRONG>  specifies that escape sequences, tabs,
1837        etc., work ordinarily in the status line.
1838
1839-       The  <STRONG>ncurses</STRONG> implementation does not yet use any of these capabilities.
1840+       The <STRONG>ncurses</STRONG> implementation does not yet use any of these  capabilities.
1841        They are documented here in case they ever become important.
1842
1843
1844 </PRE><H3><a name="h3-Line-Graphics">Line Graphics</a></H3><PRE>
1845-       Many terminals have alternate character sets useful for  forms-drawing.
1846+       Many  terminals have alternate character sets useful for forms-drawing.
1847        Terminfo and <STRONG>curses</STRONG> have built-in support for most of the drawing char-
1848-       acters supported by the VT100,  with  some  characters  from  the  AT&amp;T
1849-       4410v1  added.   This  alternate  character set may be specified by the
1850+       acters  supported  by  the  VT100,  with  some characters from the AT&amp;T
1851+       4410v1 added.  This alternate character set may  be  specified  by  the
1852        <STRONG>acsc</STRONG> capability.
1853
1854          <STRONG>Glyph</STRONG>                       <STRONG>ACS</STRONG>            <STRONG>Ascii</STRONG>     <STRONG>acsc</STRONG>     <STRONG>acsc</STRONG>
1855@@ -2092,34 +2099,34 @@
1856
1857        A few notes apply to the table itself:
1858
1859-       <STRONG>o</STRONG>   X/Open Curses incorrectly states that the mapping  for  <EM>lantern</EM>  is
1860-           uppercase  "I"  although Unix implementations use the lowercase "i"
1861+       <STRONG>o</STRONG>   X/Open  Curses  incorrectly  states that the mapping for <EM>lantern</EM> is
1862+           uppercase "I" although Unix implementations use the  lowercase  "i"
1863            mapping.
1864
1865-       <STRONG>o</STRONG>   The DEC VT100 implemented graphics using  the  alternate  character
1866-           set  feature, temporarily switching <EM>modes</EM> and sending characters in
1867+       <STRONG>o</STRONG>   The  DEC  VT100  implemented graphics using the alternate character
1868+           set feature, temporarily switching <EM>modes</EM> and sending characters  in
1869            the range 0x60 (96) to 0x7e (126) (the <STRONG>acsc</STRONG> <STRONG>Value</STRONG> column in the ta-
1870            ble).
1871
1872        <STRONG>o</STRONG>   The AT&amp;T terminal added graphics characters outside that range.
1873
1874-           Some  of  the  characters  within the range do not match the VT100;
1875-           presumably they were used in the AT&amp;T terminal:  <EM>board</EM>  <EM>of</EM>  <EM>squares</EM>
1876-           replaces  the  VT100  <EM>newline</EM> symbol, while <EM>lantern</EM> <EM>symbol</EM> replaces
1877+           Some of the characters within the range do  not  match  the  VT100;
1878+           presumably  they  were  used in the AT&amp;T terminal: <EM>board</EM> <EM>of</EM> <EM>squares</EM>
1879+           replaces the VT100 <EM>newline</EM> symbol, while  <EM>lantern</EM>  <EM>symbol</EM>  replaces
1880            the VT100 <EM>vertical</EM> <EM>tab</EM> symbol.  The other VT100 symbols for control
1881-           characters  (<EM>horizontal</EM> <EM>tab</EM>, <EM>carriage</EM> <EM>return</EM> and <EM>line-feed</EM>) are not
1882+           characters (<EM>horizontal</EM> <EM>tab</EM>, <EM>carriage</EM> <EM>return</EM> and <EM>line-feed</EM>) are  not
1883            (re)used in curses.
1884
1885-       The best way to define a new device's graphics set is to add  a  column
1886-       to  a  copy of this table for your terminal, giving the character which
1887-       (when emitted between <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will  be  rendered  as  the
1888+       The  best  way to define a new device's graphics set is to add a column
1889+       to a copy of this table for your terminal, giving the  character  which
1890+       (when  emitted  between  <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG>  switches) will be rendered as the
1891        corresponding graphic.  Then read off the VT100/your terminal character
1892        pairs right to left in sequence; these become the ACSC string.
1893
1894
1895 </PRE><H3><a name="h3-Color-Handling">Color Handling</a></H3><PRE>
1896-       The curses library functions <STRONG>init_pair</STRONG> and  <STRONG>init_color</STRONG>  manipulate  the
1897-       <EM>color</EM>   <EM>pairs</EM>   and   <EM>color</EM>  <EM>values</EM>  discussed  in  this  section  (see
1898+       The  curses  library  functions <STRONG>init_pair</STRONG> and <STRONG>init_color</STRONG> manipulate the
1899+       <EM>color</EM>  <EM>pairs</EM>  and  <EM>color</EM>  <EM>values</EM>  discussed  in   this   section   (see
1900        <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> for details on these and related functions).
1901
1902        Most color terminals are either "Tektronix-like" or "HP-like":
1903@@ -2128,43 +2135,43 @@
1904            is usually 8), and can set character-cell foreground and background
1905            characters independently, mixing them into <EM>N</EM> * <EM>N</EM> color-pairs.
1906
1907-       <STRONG>o</STRONG>   On HP-like terminals, the user must set each color  pair  up  sepa-
1908-           rately  (foreground and background are not independently settable).
1909+       <STRONG>o</STRONG>   On  HP-like  terminals,  the user must set each color pair up sepa-
1910+           rately (foreground and background are not independently  settable).
1911            Up to <EM>M</EM> color-pairs may be set up from 2*<EM>M</EM> different colors.  ANSI-
1912            compatible terminals are Tektronix-like.
1913
1914        Some basic color capabilities are independent of the color method.  The
1915-       numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify the  maximum  numbers  of
1916-       colors  and  color-pairs  that can be displayed simultaneously.  The <STRONG>op</STRONG>
1917+       numeric  capabilities  <STRONG>colors</STRONG>  and <STRONG>pairs</STRONG> specify the maximum numbers of
1918+       colors and color-pairs that can be displayed  simultaneously.   The  <STRONG>op</STRONG>
1919        (original pair) string resets foreground and background colors to their
1920-       default  values  for  the terminal.  The <STRONG>oc</STRONG> string resets all colors or
1921-       color-pairs to their default values for the terminal.   Some  terminals
1922+       default values for the terminal.  The <STRONG>oc</STRONG> string resets  all  colors  or
1923+       color-pairs  to  their default values for the terminal.  Some terminals
1924        (including many PC terminal emulators) erase screen areas with the cur-
1925-       rent background color rather  than  the  power-up  default  background;
1926+       rent  background  color  rather  than  the power-up default background;
1927        these should have the boolean capability <STRONG>bce</STRONG>.
1928
1929        While the curses library works with <EM>color</EM> <EM>pairs</EM> (reflecting the inabil-
1930-       ity of some devices to set foreground and  background  colors  indepen-
1931+       ity  of  some  devices to set foreground and background colors indepen-
1932        dently), there are separate capabilities for setting these features:
1933
1934-       <STRONG>o</STRONG>   To  change  the  current  foreground  or background color on a Tek-
1935-           tronix-type terminal, use <STRONG>setaf</STRONG> (set  ANSI  foreground)  and  <STRONG>setab</STRONG>
1936-           (set  ANSI background) or <STRONG>setf</STRONG> (set foreground) and <STRONG>setb</STRONG> (set back-
1937-           ground).  These take one parameter, the  color  number.   The  SVr4
1938-           documentation  describes only <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that
1939-           "If the terminal supports ANSI escape sequences to  set  background
1940-           and  foreground,  they  should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
1941+       <STRONG>o</STRONG>   To change the current foreground or  background  color  on  a  Tek-
1942+           tronix-type  terminal,  use  <STRONG>setaf</STRONG>  (set ANSI foreground) and <STRONG>setab</STRONG>
1943+           (set ANSI background) or <STRONG>setf</STRONG> (set foreground) and <STRONG>setb</STRONG> (set  back-
1944+           ground).   These  take  one  parameter, the color number.  The SVr4
1945+           documentation describes only <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says  that
1946+           "If  the  terminal supports ANSI escape sequences to set background
1947+           and foreground, they should be coded as <STRONG>setaf</STRONG>  and  <STRONG>setab</STRONG>,  respec-
1948            tively.
1949
1950-       <STRONG>o</STRONG>   If the terminal supports other escape sequences to  set  background
1951-           and  foreground,  they  should  be  coded as <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respec-
1952-           tively.  The <STRONG>vidputs</STRONG> and the <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> functions  use  the  <STRONG>setaf</STRONG>
1953+       <STRONG>o</STRONG>   If  the  terminal supports other escape sequences to set background
1954+           and foreground, they should be coded  as  <STRONG>setf</STRONG>  and  <STRONG>setb</STRONG>,  respec-
1955+           tively.   The  <STRONG>vidputs</STRONG>  and the <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG> functions use the <STRONG>setaf</STRONG>
1956            and <STRONG>setab</STRONG> capabilities if they are defined.
1957
1958-       The  <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single numeric argu-
1959-       ment each.  Argument values 0-7 of <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> are portably defined  as
1960-       follows  (the  middle  column  is the symbolic #define available in the
1961-       header for the <STRONG>curses</STRONG> or <STRONG>ncurses</STRONG> libraries).  The terminal hardware  is
1962+       The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single numeric  argu-
1963+       ment  each.  Argument values 0-7 of <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> are portably defined as
1964+       follows (the middle column is the symbolic  #define  available  in  the
1965+       header  for the <STRONG>curses</STRONG> or <STRONG>ncurses</STRONG> libraries).  The terminal hardware is
1966        free to map these as it likes, but the RGB values indicate normal loca-
1967        tions in color space.
1968
1969@@ -2194,28 +2201,28 @@
1970        It is important to not confuse the two sets of color capabilities; oth-
1971        erwise red/blue will be interchanged on the display.
1972
1973-       On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number  parameter  to
1974+       On  an  HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number parameter to
1975        set which color pair is current.
1976
1977        Some terminals allow the <EM>color</EM> <EM>values</EM> to be modified:
1978
1979-       <STRONG>o</STRONG>   On  a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be present to
1980-           indicate that colors can be modified.  If so, the <STRONG>initc</STRONG>  capability
1981+       <STRONG>o</STRONG>   On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be present  to
1982+           indicate  that colors can be modified.  If so, the <STRONG>initc</STRONG> capability
1983            will take a color number (0 to <STRONG>colors</STRONG> - 1)and three more parameters
1984-           which describe the color.  These three parameters default to  being
1985+           which  describe the color.  These three parameters default to being
1986            interpreted as RGB (Red, Green, Blue) values.  If the boolean capa-
1987-           bility <STRONG>hls</STRONG> is present, they are instead  as  HLS  (Hue,  Lightness,
1988+           bility  <STRONG>hls</STRONG>  is  present,  they are instead as HLS (Hue, Lightness,
1989            Saturation) indices.  The ranges are terminal-dependent.
1990
1991-       <STRONG>o</STRONG>   On  an HP-like terminal, <STRONG>initp</STRONG> may give a capability for changing a
1992+       <STRONG>o</STRONG>   On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for changing  a
1993            color-pair value.  It will take seven parameters; a color-pair num-
1994-           ber  (0  to  <STRONG>max_pairs</STRONG> - 1), and two triples describing first back-
1995-           ground and then foreground colors.  These parameters must be  (Red,
1996+           ber (0 to <STRONG>max_pairs</STRONG> - 1), and two triples  describing  first  back-
1997+           ground  and then foreground colors.  These parameters must be (Red,
1998            Green, Blue) or (Hue, Lightness, Saturation) depending on <STRONG>hls</STRONG>.
1999
2000-       On  some color terminals, colors collide with highlights.  You can reg-
2001-       ister these collisions with the <STRONG>ncv</STRONG> capability.  This is a bit-mask  of
2002-       attributes  not to be used when colors are enabled.  The correspondence
2003+       On some color terminals, colors collide with highlights.  You can  reg-
2004+       ister  these collisions with the <STRONG>ncv</STRONG> capability.  This is a bit-mask of
2005+       attributes not to be used when colors are enabled.  The  correspondence
2006        with the attributes understood by <STRONG>curses</STRONG> is as follows:
2007
2008                   <STRONG>Attribute</STRONG>              <STRONG>Bit</STRONG>   <STRONG>Decimal</STRONG>      <STRONG>Set</STRONG> <STRONG>by</STRONG>
2009@@ -2227,6 +2234,7 @@
2010                   A_BOLD                 5     32           sgr
2011                   A_INVIS                6     64           sgr
2012                   A_PROTECT              7     128          sgr
2013+
2014                   A_ALTCHARSET           8     256          sgr
2015                   A_HORIZONTAL           9     512          sgr1
2016                   A_LEFT                 10    1024         sgr1
2017@@ -2236,134 +2244,134 @@
2018                   A_VERTICAL             14    16384        sgr1
2019                   A_ITALIC               15    32768        sitm
2020
2021-       For example, on many IBM PC consoles, the underline attribute  collides
2022-       with  the  foreground  color  blue  and is not available in color mode.
2023+       For  example, on many IBM PC consoles, the underline attribute collides
2024+       with the foreground color blue and is  not  available  in  color  mode.
2025        These should have an <STRONG>ncv</STRONG> capability of 2.
2026
2027-       SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it and  optimizes
2028+       SVr4  curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it and optimizes
2029        the output in favor of colors.
2030
2031
2032 </PRE><H3><a name="h3-Miscellaneous">Miscellaneous</a></H3><PRE>
2033-       If  the  terminal requires other than a null (zero) character as a pad,
2034-       then this can be given as pad.  Only the first  character  of  the  pad
2035+       If the terminal requires other than a null (zero) character as  a  pad,
2036+       then  this  can  be  given as pad.  Only the first character of the pad
2037        string is used.  If the terminal does not have a pad character, specify
2038-       npc.  Note that ncurses implements the termcap-compatible <STRONG>PC</STRONG>  variable;
2039-       though  the  application  may  set this value to something other than a
2040-       null, ncurses will test <STRONG>npc</STRONG> first and use napms if the terminal has  no
2041+       npc.   Note that ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
2042+       though the application may set this value to  something  other  than  a
2043+       null,  ncurses will test <STRONG>npc</STRONG> first and use napms if the terminal has no
2044        pad character.
2045
2046-       If  the terminal can move up or down half a line, this can be indicated
2047+       If the terminal can move up or down half a line, this can be  indicated
2048        with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line down).  This is primarily use-
2049        ful for superscripts and subscripts on hard-copy terminals.  If a hard-
2050-       copy terminal can eject to the next page (form feed), give this  as  <STRONG>ff</STRONG>
2051+       copy  terminal  can eject to the next page (form feed), give this as <STRONG>ff</STRONG>
2052        (usually control/L).
2053
2054-       If  there  is  a  command to repeat a given character a given number of
2055-       times (to save time transmitting a large number  of  identical  charac-
2056-       ters)  this  can  be  indicated with the parameterized string <STRONG>rep</STRONG>.  The
2057-       first parameter is the character to be repeated and the second  is  the
2058+       If there is a command to repeat a given character  a  given  number  of
2059+       times  (to  save  time transmitting a large number of identical charac-
2060+       ters) this can be indicated with the  parameterized  string  <STRONG>rep</STRONG>.   The
2061+       first  parameter  is the character to be repeated and the second is the
2062        number of times to repeat it.  Thus, tparm(repeat_char, 'x', 10) is the
2063        same as "xxxxxxxxxx".
2064
2065        If the terminal has a settable command character, such as the TEKTRONIX
2066-       4025,  this can be indicated with <STRONG>cmdch</STRONG>.  A prototype command character
2067-       is chosen which is used in all capabilities.  This character  is  given
2068-       in  the  <STRONG>cmdch</STRONG>  capability to identify it.  The following convention is
2069+       4025, this can be indicated with <STRONG>cmdch</STRONG>.  A prototype command  character
2070+       is  chosen  which is used in all capabilities.  This character is given
2071+       in the <STRONG>cmdch</STRONG> capability to identify it.  The  following  convention  is
2072        supported on some UNIX systems: The environment is to be searched for a
2073-       <STRONG>CC</STRONG>  variable,  and if found, all occurrences of the prototype character
2074+       <STRONG>CC</STRONG> variable, and if found, all occurrences of the  prototype  character
2075        are replaced with the character in the environment variable.
2076
2077-       Terminal descriptions that do not represent a specific  kind  of  known
2078-       terminal,  such  as  <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and <EM>network</EM>, should include
2079-       the <STRONG>gn</STRONG> (generic) capability so that programs can complain that they  do
2080-       not  know how to talk to the terminal.  (This capability does not apply
2081-       to <EM>virtual</EM> terminal descriptions for which  the  escape  sequences  are
2082+       Terminal  descriptions  that  do not represent a specific kind of known
2083+       terminal, such as <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and  <EM>network</EM>,  should  include
2084+       the  <STRONG>gn</STRONG> (generic) capability so that programs can complain that they do
2085+       not know how to talk to the terminal.  (This capability does not  apply
2086+       to  <EM>virtual</EM>  terminal  descriptions  for which the escape sequences are
2087        known.)
2088
2089        If the terminal has a "meta key" which acts as a shift key, setting the
2090-       8th bit of any character transmitted, this fact can be  indicated  with
2091-       <STRONG>km</STRONG>.   Otherwise, software will assume that the 8th bit is parity and it
2092-       will usually be cleared.  If strings exist to turn this "meta mode"  on
2093+       8th  bit  of any character transmitted, this fact can be indicated with
2094+       <STRONG>km</STRONG>.  Otherwise, software will assume that the 8th bit is parity and  it
2095+       will  usually be cleared.  If strings exist to turn this "meta mode" on
2096        and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
2097
2098        If the terminal has more lines of memory than will fit on the screen at
2099-       once, the number of lines of memory can be indicated with <STRONG>lm</STRONG>.  A  value
2100+       once,  the number of lines of memory can be indicated with <STRONG>lm</STRONG>.  A value
2101        of <STRONG>lm</STRONG>#0 indicates that the number of lines is not fixed, but that there
2102        is still more memory than fits on the screen.
2103
2104-       If the terminal is one of those supported by the UNIX virtual  terminal
2105+       If  the terminal is one of those supported by the UNIX virtual terminal
2106        protocol, the terminal number can be given as <STRONG>vt</STRONG>.
2107
2108-       Media  copy strings which control an auxiliary printer connected to the
2109-       terminal can be given as <STRONG>mc0</STRONG>: print the contents of  the  screen,  <STRONG>mc4</STRONG>:
2110-       turn  off  the printer, and <STRONG>mc5</STRONG>: turn on the printer.  When the printer
2111-       is on, all text sent to the terminal will be sent to the  printer.   It
2112-       is  undefined whether the text is also displayed on the terminal screen
2113-       when the printer is on.  A variation  <STRONG>mc5p</STRONG>  takes  one  parameter,  and
2114+       Media copy strings which control an auxiliary printer connected to  the
2115+       terminal  can  be  given as <STRONG>mc0</STRONG>: print the contents of the screen, <STRONG>mc4</STRONG>:
2116+       turn off the printer, and <STRONG>mc5</STRONG>: turn on the printer.  When  the  printer
2117+       is  on,  all text sent to the terminal will be sent to the printer.  It
2118+       is undefined whether the text is also displayed on the terminal  screen
2119+       when  the  printer  is  on.   A variation <STRONG>mc5p</STRONG> takes one parameter, and
2120        leaves the printer on for as many characters as the value of the param-
2121        eter, then turns the printer off.  The parameter should not exceed 255.
2122-       All  text,  including <STRONG>mc4</STRONG>, is transparently passed to the printer while
2123+       All text, including <STRONG>mc4</STRONG>, is transparently passed to the  printer  while
2124        an <STRONG>mc5p</STRONG> is in effect.
2125
2126
2127 </PRE><H3><a name="h3-Glitches-and-Braindamage">Glitches and Braindamage</a></H3><PRE>
2128-       Hazeltine terminals, which do not allow "~" characters to be  displayed
2129+       Hazeltine  terminals, which do not allow "~" characters to be displayed
2130        should indicate <STRONG>hz</STRONG>.
2131
2132-       Terminals  which  ignore a line-feed immediately after an <STRONG>am</STRONG> wrap, such
2133+       Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG>  wrap,  such
2134        as the Concept and vt100, should indicate <STRONG>xenl</STRONG>.
2135
2136-       If <STRONG>el</STRONG> is required to get rid of standout  (instead  of  merely  writing
2137+       If  <STRONG>el</STRONG>  is  required  to get rid of standout (instead of merely writing
2138        normal text on top of it), <STRONG>xhp</STRONG> should be given.
2139
2140        Teleray terminals, where tabs turn all characters moved over to blanks,
2141-       should indicate <STRONG>xt</STRONG> (destructive tabs).  Note: the  variable  indicating
2142-       this  is  now  "dest_tabs_magic_smso";  in  older versions, it was tel-
2143+       should  indicate  <STRONG>xt</STRONG> (destructive tabs).  Note: the variable indicating
2144+       this is now "dest_tabs_magic_smso"; in  older  versions,  it  was  tel-
2145        eray_glitch.  This glitch is also taken to mean that it is not possible
2146        to position the cursor on top of a "magic cookie", that to erase stand-
2147-       out mode it is instead necessary to use delete and  insert  line.   The
2148+       out  mode  it  is instead necessary to use delete and insert line.  The
2149        ncurses implementation ignores this glitch.
2150
2151-       The  Beehive Superbee, which is unable to correctly transmit the escape
2152-       or control/C characters, has <STRONG>xsb</STRONG>, indicating that the f1  key  is  used
2153-       for  escape  and  f2  for control/C.  (Only certain Superbees have this
2154-       problem, depending on the ROM.)  Note that in older terminfo  versions,
2155+       The Beehive Superbee, which is unable to correctly transmit the  escape
2156+       or  control/C  characters,  has <STRONG>xsb</STRONG>, indicating that the f1 key is used
2157+       for escape and f2 for control/C.  (Only  certain  Superbees  have  this
2158+       problem,  depending on the ROM.)  Note that in older terminfo versions,
2159        this capability was called "beehive_glitch"; it is now "no_esc_ctl_c".
2160
2161-       Other  specific terminal problems may be corrected by adding more capa-
2162+       Other specific terminal problems may be corrected by adding more  capa-
2163        bilities of the form <STRONG>x</STRONG><EM>x</EM>.
2164
2165
2166 </PRE><H3><a name="h3-Pitfalls-of-Long-Entries">Pitfalls of Long Entries</a></H3><PRE>
2167-       Long terminfo entries are unlikely to be a problem; to date,  no  entry
2168-       has  even approached terminfo's 4096-byte string-table maximum.  Unfor-
2169-       tunately, the termcap translations are much more strictly  limited  (to
2170-       1023  bytes),  thus  termcap  translations of long terminfo entries can
2171+       Long  terminfo  entries are unlikely to be a problem; to date, no entry
2172+       has even approached terminfo's 4096-byte string-table maximum.   Unfor-
2173+       tunately,  the  termcap translations are much more strictly limited (to
2174+       1023 bytes), thus termcap translations of  long  terminfo  entries  can
2175        cause problems.
2176
2177-       The man pages for 4.3BSD and older versions  of  <STRONG>tgetent</STRONG>  instruct  the
2178-       user  to  allocate a 1024-byte buffer for the termcap entry.  The entry
2179-       gets null-terminated by the termcap library, so that makes the  maximum
2180-       safe  length  for a termcap entry 1k-1 (1023) bytes.  Depending on what
2181-       the application and the termcap library being used does, and  where  in
2182-       the  termcap  file  the terminal type that <STRONG>tgetent</STRONG> is searching for is,
2183+       The  man  pages  for  4.3BSD and older versions of <STRONG>tgetent</STRONG> instruct the
2184+       user to allocate a 1024-byte buffer for the termcap entry.   The  entry
2185+       gets  null-terminated by the termcap library, so that makes the maximum
2186+       safe length for a termcap entry 1k-1 (1023) bytes.  Depending  on  what
2187+       the  application  and the termcap library being used does, and where in
2188+       the termcap file the terminal type that <STRONG>tgetent</STRONG> is  searching  for  is,
2189        several bad things can happen.
2190
2191-       Some termcap libraries print a warning message or exit if they find  an
2192+       Some  termcap libraries print a warning message or exit if they find an
2193        entry that's longer than 1023 bytes; others do not; others truncate the
2194-       entries to 1023 bytes.  Some application programs  allocate  more  than
2195+       entries  to  1023  bytes.  Some application programs allocate more than
2196        the recommended 1K for the termcap entry; others do not.
2197
2198-       Each  termcap  entry has two important sizes associated with it: before
2199-       "tc" expansion, and after "tc" expansion.  "tc" is the capability  that
2200+       Each termcap entry has two important sizes associated with  it:  before
2201+       "tc"  expansion, and after "tc" expansion.  "tc" is the capability that
2202        tacks on another termcap entry to the end of the current one, to add on
2203        its capabilities.  If a termcap entry does not use the "tc" capability,
2204        then of course the two lengths are the same.
2205
2206-       The  "before tc expansion" length is the most important one, because it
2207-       affects more than just users of that particular terminal.  This is  the
2208-       length  of the entry as it exists in /etc/termcap, minus the backslash-
2209+       The "before tc expansion" length is the most important one, because  it
2210+       affects  more than just users of that particular terminal.  This is the
2211+       length of the entry as it exists in /etc/termcap, minus the  backslash-
2212        newline pairs, which <STRONG>tgetent</STRONG> strips out while reading it.  Some termcap
2213        libraries strip off the final newline, too (GNU termcap does not).  Now
2214        suppose:
2215@@ -2372,87 +2380,87 @@
2216
2217        <STRONG>o</STRONG>   and the application has only allocated a 1k buffer,
2218
2219-       <STRONG>o</STRONG>   and the termcap library (like the one in BSD/OS 1.1 and GNU)  reads
2220-           the  whole entry into the buffer, no matter what its length, to see
2221+       <STRONG>o</STRONG>   and  the termcap library (like the one in BSD/OS 1.1 and GNU) reads
2222+           the whole entry into the buffer, no matter what its length, to  see
2223            if it is the entry it wants,
2224
2225-       <STRONG>o</STRONG>   and <STRONG>tgetent</STRONG> is searching for a terminal type  that  either  is  the
2226-           long  entry,  appears  in the termcap file after the long entry, or
2227-           does not appear in the file at all (so that <STRONG>tgetent</STRONG> has  to  search
2228+       <STRONG>o</STRONG>   and  <STRONG>tgetent</STRONG>  is  searching  for a terminal type that either is the
2229+           long entry, appears in the termcap file after the  long  entry,  or
2230+           does  not  appear in the file at all (so that <STRONG>tgetent</STRONG> has to search
2231            the whole termcap file).
2232
2233-       Then  <STRONG>tgetent</STRONG>  will  overwrite  memory, perhaps its stack, and probably
2234-       core dump the program.  Programs like telnet are particularly  vulnera-
2235-       ble;  modern telnets pass along values like the terminal type automati-
2236-       cally.  The results are almost as undesirable with a  termcap  library,
2237-       like  SunOS  4.1.3 and Ultrix 4.4, that prints warning messages when it
2238-       reads an overly long termcap entry.  If  a  termcap  library  truncates
2239-       long  entries,  like  OSF/1  3.0,  it  is immune to dying here but will
2240+       Then <STRONG>tgetent</STRONG> will overwrite memory, perhaps  its  stack,  and  probably
2241+       core  dump the program.  Programs like telnet are particularly vulnera-
2242+       ble; modern telnets pass along values like the terminal type  automati-
2243+       cally.   The  results are almost as undesirable with a termcap library,
2244+       like SunOS 4.1.3 and Ultrix 4.4, that prints warning messages  when  it
2245+       reads  an  overly  long  termcap entry.  If a termcap library truncates
2246+       long entries, like OSF/1 3.0, it is  immune  to  dying  here  but  will
2247        return incorrect data for the terminal.
2248
2249-       The "after tc expansion" length will  have  a  similar  effect  to  the
2250+       The  "after  tc  expansion"  length  will  have a similar effect to the
2251        above, but only for people who actually set TERM to that terminal type,
2252-       since <STRONG>tgetent</STRONG> only does "tc" expansion once it is  found  the  terminal
2253+       since  <STRONG>tgetent</STRONG>  only  does "tc" expansion once it is found the terminal
2254        type it was looking for, not while searching.
2255
2256-       In  summary,  a termcap entry that is longer than 1023 bytes can cause,
2257-       on various combinations of termcap libraries and applications,  a  core
2258-       dump,  warnings, or incorrect operation.  If it is too long even before
2259-       "tc" expansion, it will have this effect even for users of  some  other
2260-       terminal  types  and  users whose TERM variable does not have a termcap
2261+       In summary, a termcap entry that is longer than 1023 bytes  can  cause,
2262+       on  various  combinations of termcap libraries and applications, a core
2263+       dump, warnings, or incorrect operation.  If it is too long even  before
2264+       "tc"  expansion,  it will have this effect even for users of some other
2265+       terminal types and users whose TERM variable does not  have  a  termcap
2266        entry.
2267
2268-       When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG>  implementation  of
2269-       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>  issues  warning  messages  when the pre-tc length of a termcap
2270-       translation is too long.  The -c (check) option  also  checks  resolved
2271+       When  in  -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> implementation of
2272+       <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> issues warning messages when the pre-tc  length  of  a  termcap
2273+       translation  is  too  long.  The -c (check) option also checks resolved
2274        (after tc expansion) lengths.
2275
2276
2277 </PRE><H3><a name="h3-Binary-Compatibility">Binary Compatibility</a></H3><PRE>
2278-       It  is  not  wise  to  count  on portability of binary terminfo entries
2279-       between commercial UNIX versions.  The problem is  that  there  are  at
2280-       least  two  versions  of  terminfo (under HP-UX and AIX) which diverged
2281-       from System V terminfo after SVr1, and have added  extension  capabili-
2282-       ties  to the string table that (in the binary format) collide with Sys-
2283+       It is not wise to count  on  portability  of  binary  terminfo  entries
2284+       between  commercial  UNIX  versions.   The problem is that there are at
2285+       least two versions of terminfo (under HP-UX  and  AIX)  which  diverged
2286+       from  System  V terminfo after SVr1, and have added extension capabili-
2287+       ties to the string table that (in the binary format) collide with  Sys-
2288        tem V and XSI Curses extensions.
2289
2290
2291 </PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
2292-       Searching  for  terminal  descriptions  in  <STRONG>$HOME/.terminfo</STRONG>  and   TER-
2293+       Searching   for  terminal  descriptions  in  <STRONG>$HOME/.terminfo</STRONG>  and  TER-
2294        MINFO_DIRS is not supported by older implementations.
2295
2296-       Some  SVr4  <STRONG>curses</STRONG>  implementations,  and  all previous to SVr4, do not
2297+       Some SVr4 <STRONG>curses</STRONG> implementations, and all  previous  to  SVr4,  do  not
2298        interpret the %A and %O operators in parameter strings.
2299
2300-       SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses  movement  while  in  an
2301-       alternate-character-set  mode  (such modes may, among other things, map
2302-       CR and NL to characters  that  do  not  trigger  local  motions).   The
2303-       <STRONG>ncurses</STRONG>  implementation  ignores  <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode.  This raises
2304-       the possibility that an XPG4 implementation making the opposite  inter-
2305-       pretation  may  need  terminfo  entries  made  for <STRONG>ncurses</STRONG> to have <STRONG>msgr</STRONG>
2306+       SVr4/XPG4  do  not  specify  whether <STRONG>msgr</STRONG> licenses movement while in an
2307+       alternate-character-set mode (such modes may, among other  things,  map
2308+       CR  and  NL  to  characters  that  do  not trigger local motions).  The
2309+       <STRONG>ncurses</STRONG> implementation ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG>  mode.   This  raises
2310+       the  possibility that an XPG4 implementation making the opposite inter-
2311+       pretation may need terminfo entries  made  for  <STRONG>ncurses</STRONG>  to  have  <STRONG>msgr</STRONG>
2312        turned off.
2313
2314        The <STRONG>ncurses</STRONG> library handles insert-character and insert-character modes
2315-       in  a  slightly  non-standard way to get better update efficiency.  See
2316+       in a slightly non-standard way to get better  update  efficiency.   See
2317        the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG> subsection above.
2318
2319-       The parameter substitutions for <STRONG>set_clock</STRONG>  and  <STRONG>display_clock</STRONG>  are  not
2320-       documented  in  SVr4 or the XSI Curses standard.  They are deduced from
2321+       The  parameter  substitutions  for  <STRONG>set_clock</STRONG> and <STRONG>display_clock</STRONG> are not
2322+       documented in SVr4 or the XSI Curses standard.  They are  deduced  from
2323        the documentation for the AT&amp;T 505 terminal.
2324
2325-       Be careful assigning the <STRONG>kmous</STRONG> capability.  The <STRONG>ncurses</STRONG>  library  wants
2326-       to  interpret  it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals and emulators like
2327-       xterm that can return mouse-tracking information in the  keyboard-input
2328+       Be  careful  assigning the <STRONG>kmous</STRONG> capability.  The <STRONG>ncurses</STRONG> library wants
2329+       to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals and  emulators  like
2330+       xterm  that can return mouse-tracking information in the keyboard-input
2331        stream.
2332
2333-       X/Open  Curses  does  not  mention italics.  Portable applications must
2334-       assume that  numeric  capabilities  are  signed  16-bit  values.   This
2335-       includes  the  <EM>no</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>video</EM>  (ncv)  capability.  The 32768 mask value
2336-       used for italics with ncv can be confused with an absent  or  cancelled
2337-       ncv.   If  italics  should work with colors, then the ncv value must be
2338+       X/Open Curses does not mention  italics.   Portable  applications  must
2339+       assume  that  numeric  capabilities  are  signed  16-bit  values.  This
2340+       includes the <EM>no</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>video</EM> (ncv) capability.   The  32768  mask  value
2341+       used  for  italics with ncv can be confused with an absent or cancelled
2342+       ncv.  If italics should work with colors, then the ncv  value  must  be
2343        specified, even if it is zero.
2344
2345-       Different commercial ports of terminfo  and  curses  support  different
2346+       Different  commercial  ports  of  terminfo and curses support different
2347        subsets of the XSI Curses standard and (in some cases) different exten-
2348        sion sets.  Here is a summary, accurate as of October 1995:
2349
2350@@ -2462,15 +2470,15 @@
2351            capability (<STRONG>set_pglen</STRONG>).
2352
2353        <STRONG>o</STRONG>   <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of terminfo capa-
2354-           bilities.  The  booleans  end  with  <STRONG>xon_xoff</STRONG>;  the  numerics  with
2355+           bilities.   The  booleans  end  with  <STRONG>xon_xoff</STRONG>;  the  numerics with
2356            <STRONG>width_status_line</STRONG>; and the strings with <STRONG>prtr_non</STRONG>.
2357
2358-       <STRONG>o</STRONG>   <STRONG>HP/UX</STRONG>  --  Supports  the  SVr1  subset,  plus the SVr[234] numerics
2359-           <STRONG>num_labels</STRONG>,  <STRONG>label_height</STRONG>,  <STRONG>label_width</STRONG>,  plus  function  keys   11
2360-           through  63,  plus  <STRONG>plab_norm</STRONG>,  <STRONG>label_on</STRONG>,  and <STRONG>label_off</STRONG>, plus some
2361+       <STRONG>o</STRONG>   <STRONG>HP/UX</STRONG> -- Supports the  SVr1  subset,  plus  the  SVr[234]  numerics
2362+           <STRONG>num_labels</STRONG>,   <STRONG>label_height</STRONG>,  <STRONG>label_width</STRONG>,  plus  function  keys  11
2363+           through 63, plus <STRONG>plab_norm</STRONG>,  <STRONG>label_on</STRONG>,  and  <STRONG>label_off</STRONG>,  plus  some
2364            incompatible extensions in the string table.
2365
2366-       <STRONG>o</STRONG>   <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11 through  63,
2367+       <STRONG>o</STRONG>   <STRONG>AIX</STRONG>  -- Supports the SVr1 subset, plus function keys 11 through 63,
2368            plus a number of incompatible string table extensions.
2369
2370        <STRONG>o</STRONG>   <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
2371@@ -2481,7 +2489,7 @@
2372
2373
2374 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
2375-       <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>,  <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,  <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</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>curs_vari-</STRONG>
2376+       <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</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>curs_vari-</STRONG>
2377        <STRONG><A HREF="curs_variables.3x.html">ables(3x)</A></STRONG>, <STRONG>printf(3)</STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.  <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>.  <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
2378
2379
2380Index: doc/html/man/tic.1m.html
2381--- ncurses-6.1-20190720+/doc/html/man/tic.1m.html	2019-07-20 18:53:15.000000000 +0000
2382+++ ncurses-6.1-20190727/doc/html/man/tic.1m.html	2019-07-26 23:48:29.000000000 +0000
2383@@ -438,7 +438,7 @@
2384        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,   <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,   <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,   <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
2385        <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.  <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
2386
2387-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
2388+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
2389
2390
2391 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
2392Index: doc/html/man/toe.1m.html
2393--- ncurses-6.1-20190720+/doc/html/man/toe.1m.html	2019-07-20 19:10:50.000000000 +0000
2394+++ ncurses-6.1-20190727/doc/html/man/toe.1m.html	2019-07-26 23:48:30.000000000 +0000
2395@@ -170,7 +170,7 @@
2396        <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,  <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,  <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,  <STRONG>ter-</STRONG>
2397        <STRONG><A HREF="terminfo.5.html">minfo(5)</A></STRONG>.
2398
2399-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
2400+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
2401
2402
2403
2404Index: doc/html/man/tput.1.html
2405--- ncurses-6.1-20190720+/doc/html/man/tput.1.html	2019-07-20 18:53:15.000000000 +0000
2406+++ ncurses-6.1-20190727/doc/html/man/tput.1.html	2019-07-26 23:48:30.000000000 +0000
2407@@ -522,7 +522,7 @@
2408 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
2409        <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>.
2410
2411-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
2412+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
2413
2414
2415
2416Index: doc/html/man/tset.1.html
2417--- ncurses-6.1-20190720+/doc/html/man/tset.1.html	2019-07-20 18:53:15.000000000 +0000
2418+++ ncurses-6.1-20190727/doc/html/man/tset.1.html	2019-07-26 23:48:30.000000000 +0000
2419@@ -389,7 +389,7 @@
2420        <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>,
2421        <STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
2422
2423-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190720).
2424+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20190727).
2425
2426
2427
2428Index: doc/html/ncurses-intro.html
2429Prereq:  1.48
2430--- ncurses-6.1-20190720+/doc/html/ncurses-intro.html	2019-03-16 19:39:05.000000000 +0000
2431+++ ncurses-6.1-20190727/doc/html/ncurses-intro.html	2019-07-27 11:47:10.000000000 +0000
2432@@ -1,5 +1,5 @@
2433 <!--
2434-  $Id: ncurses-intro.html,v 1.48 2019/03/16 19:39:05 tom Exp $
2435+  $Id: ncurses-intro.html,v 1.51 2019/07/27 11:47:10 tom Exp $
2436   ****************************************************************************
2437   * Copyright (c) 1998-2017,2019 Free Software Foundation, Inc.              *
2438   *                                                                          *
2439@@ -33,7 +33,7 @@
2440 <html>
2441 <head>
2442   <meta name="generator" content=
2443-  "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
2444+  "HTML Tidy for HTML5 for Linux version 5.2.0">
2445
2446   <title>Writing Programs with NCURSES</title>
2447   <link rel="author" href="mailto:bugs-ncurses@gnu.org">
2448@@ -94,8 +94,7 @@
2449
2450             <li><a href="#input">Input</a></li>
2451
2452-            <li><a href="#formschars">Using Forms
2453-            Characters</a></li>
2454+            <li><a href="#formschars">Using Forms Characters</a></li>
2455
2456             <li><a href="#attributes">Character Attributes and
2457             Color</a></li>
2458@@ -112,11 +111,9 @@
2459           <ul>
2460             <li><a href="#init">Initialization and Wrapup</a></li>
2461
2462-            <li><a href="#flush">Causing Output to the
2463-            Terminal</a></li>
2464+            <li><a href="#flush">Causing Output to the Terminal</a></li>
2465
2466-            <li><a href="#lowlevel">Low-Level Capability
2467-            Access</a></li>
2468+            <li><a href="#lowlevel">Low-Level Capability Access</a></li>
2469
2470             <li><a href="#debugging">Debugging</a></li>
2471           </ul>
2472@@ -176,8 +173,7 @@
2473
2474         <li><a href="#hiding">Hiding Panels</a></li>
2475
2476-        <li><a href="#pmisc">Miscellaneous Other
2477-        Facilities</a></li>
2478+        <li><a href="#pmisc">Miscellaneous Other Facilities</a></li>
2479       </ul>
2480     </li>
2481
2482@@ -185,8 +181,7 @@
2483       <a href="#menu">The Menu Library</a>
2484
2485       <ul>
2486-        <li><a href="#mcompile">Compiling with the menu
2487-        Library</a></li>
2488+        <li><a href="#mcompile">Compiling with the menu Library</a></li>
2489
2490         <li><a href="#moverview">Overview of Menus</a></li>
2491
2492@@ -225,11 +220,9 @@
2493             <li><a href="#flocation">Changing the Field
2494             Location</a></li>
2495
2496-            <li><a href="#fjust">The Justification
2497-            Attribute</a></li>
2498+            <li><a href="#fjust">The Justification Attribute</a></li>
2499
2500-            <li><a href="#fdispatts">Field Display
2501-            Attributes</a></li>
2502+            <li><a href="#fdispatts">Field Display Attributes</a></li>
2503
2504             <li><a href="#foptions">Field Option Bits</a></li>
2505
2506@@ -259,8 +252,7 @@
2507           </ul>
2508         </li>
2509
2510-        <li><a href="#fbuffer">Direct Field Buffer
2511-        Manipulation</a></li>
2512+        <li><a href="#fbuffer">Direct Field Buffer Manipulation</a></li>
2513
2514         <li><a href="#formattrs">Attributes of Forms</a></li>
2515
2516@@ -315,10 +307,10 @@
2517       </ul>
2518     </li>
2519   </ul>
2520+
2521   <hr>
2522
2523-  <h1><a name="introduction" id=
2524-  "introduction">Introduction</a></h1>
2525+  <h1><a name="introduction" id="introduction">Introduction</a></h1>
2526
2527   <p>This document is an introduction to programming with
2528   <code>curses</code>. It is not an exhaustive reference for the
2529@@ -356,20 +348,35 @@
2530   <code>curses</code> will typically be a great deal simpler and
2531   less expensive than one using an X toolkit.</p>
2532
2533-  <h2><a name="history" id="history">A Brief History of
2534-  Curses</a></h2>
2535+  <h2><a name="history" id="history">A Brief History of Curses</a></h2>
2536
2537   <p>Historically, the first ancestor of <code>curses</code> was
2538-  the routines written to provide screen-handling for the game
2539-  <code>rogue</code>; these used the already-existing
2540+  the routines written to provide screen-handling for the
2541+  <code>vi</code> editor; these used the already-existing
2542   <code>termcap</code> database facility for describing terminal
2543   capabilities. These routines were abstracted into a documented
2544-  library and first released with the early BSD UNIX versions.</p>
2545+  library and first released with the early BSD UNIX versions. All
2546+  of this work was done by students at the University of
2547+  California.</p>
2548+
2549+  <p>After graduation, one of those students went to work at
2550+  AT&amp;T Bell Labs, and made an improved <code>termcap</code>
2551+  library called <code>terminfo</code> (i.e.,
2552+  &ldquo;libterm&rdquo;). That was subsequently released in System
2553+  V Release 2. Thereafter, other developers added to the terminfo
2554+  library. For instance, a student at Cornell University wrote an
2555+  improved terminfo library as well as a tool (<code>tic</code>) to
2556+  compile the terminal descriptions. As a general rule, AT&amp;T
2557+  did not identify the developers in the source-code or
2558+  documentation; the <code>tic</code> and <code>infocmp</code>
2559+  programs are the exceptions.</p>
2560+
2561+  <p>System V Release 3 (System III UNIX) from Bell Labs featured a
2562+  rewritten and much-improved <code>curses</code> library,l along
2563+  with the <code>tic</code> program.</p>
2564
2565-  <p>System III UNIX from Bell Labs featured a rewritten and
2566-  much-improved <code>curses</code> library. It introduced the
2567-  terminfo format. Terminfo is based on Berkeley's termcap
2568-  database, but contains a number of improvements and extensions.
2569+  <p>To recap, terminfo is based on Berkeley's termcap database,
2570+  but contains a number of improvements and extensions.
2571   Parameterized capabilities strings were introduced, making it
2572   possible to describe multiple video attributes, and colors and to
2573   handle far more unusual terminals than possible with termcap. In
2574@@ -468,8 +475,7 @@
2575
2576   <h1><a name="curses" id="curses">The Curses Library</a></h1>
2577
2578-  <h2><a name="overview" id="overview">An Overview of
2579-  Curses</a></h2>
2580+  <h2><a name="overview" id="overview">An Overview of Curses</a></h2>
2581
2582   <h3><a name="compiling" id="compiling">Compiling Programs using
2583   Curses</a></h3>
2584@@ -477,6 +483,7 @@
2585   <p>In order to use the library, it is necessary to have certain
2586   types and variables defined. Therefore, the programmer must have
2587   a line:</p>
2588+
2589   <pre>
2590           #include &lt;curses.h&gt;
2591 </pre>
2592@@ -552,23 +559,27 @@
2593   avoid clumsiness, most I/O routines can be preceded by the prefix
2594   &ldquo;mv&rdquo; and the desired (y, x) coordinates prepended to
2595   the arguments to the function. For example, the calls</p>
2596+
2597   <pre>
2598           move(y, x);
2599           addch(ch);
2600 </pre>
2601
2602   <p>can be replaced by</p>
2603+
2604   <pre>
2605           mvaddch(y, x, ch);
2606 </pre>
2607
2608   <p>and</p>
2609+
2610   <pre>
2611           wmove(win, y, x);
2612           waddch(win, ch);
2613 </pre>
2614
2615   <p>can be replaced by</p>
2616+
2617   <pre>
2618           mvwaddch(win, y, x, ch);
2619 </pre>
2620@@ -581,6 +592,7 @@
2621
2622   <p>The <code>curses</code> library sets some variables describing
2623   the terminal capabilities.</p>
2624+
2625   <pre>
2626       type   name      description
2627       ------------------------------------------------------------------
2628@@ -593,24 +605,29 @@
2629   usefulness:</p>
2630
2631   <dl>
2632-    <dt><code>bool</code></dt>
2633+    <dt><code>bool</code>
2634+    </dt>
2635
2636     <dd>boolean type, actually a &ldquo;char&rdquo; (e.g.,
2637     <code>bool doneit;</code>)</dd>
2638
2639-    <dt><code>TRUE</code></dt>
2640+    <dt><code>TRUE</code>
2641+    </dt>
2642
2643     <dd>boolean &ldquo;true&rdquo; flag (1).</dd>
2644
2645-    <dt><code>FALSE</code></dt>
2646+    <dt><code>FALSE</code>
2647+    </dt>
2648
2649     <dd>boolean &ldquo;false&rdquo; flag (0).</dd>
2650
2651-    <dt><code>ERR</code></dt>
2652+    <dt><code>ERR</code>
2653+    </dt>
2654
2655     <dd>error flag returned by routines on a failure (-1).</dd>
2656
2657-    <dt><code>OK</code></dt>
2658+    <dt><code>OK</code>
2659+    </dt>
2660
2661     <dd>error flag returned by routines when things go right.</dd>
2662   </dl>
2663@@ -624,6 +641,7 @@
2664   mentioned above.</p>
2665
2666   <p>Here is a sample program to motivate the discussion:</p>
2667+
2668   <pre>
2669 #include &lt;stdlib.h&gt;
2670 #include &lt;curses.h&gt;
2671@@ -935,8 +953,7 @@
2672   anytime after the call to initscr, <code>endwin()</code> should
2673   be called before exiting.</p>
2674
2675-  <h2><a name="functions" id="functions">Function
2676-  Descriptions</a></h2>
2677+  <h2><a name="functions" id="functions">Function Descriptions</a></h2>
2678
2679   <p>We describe the detailed behavior of some important curses
2680   functions here, as a supplement to the manual page
2681@@ -945,7 +962,8 @@
2682   <h3><a name="init" id="init">Initialization and Wrapup</a></h3>
2683
2684   <dl>
2685-    <dt><code>initscr()</code></dt>
2686+    <dt><code>initscr()</code>
2687+    </dt>
2688
2689     <dd>The first function called should almost always be
2690     <code>initscr()</code>. This will determine the terminal type
2691@@ -958,7 +976,8 @@
2692     <code>ripoffline()</code>, <code>use_env()</code>, and, if you
2693     are using multiple terminals, <code>newterm()</code>.)</dd>
2694
2695-    <dt><code>endwin()</code></dt>
2696+    <dt><code>endwin()</code>
2697+    </dt>
2698
2699     <dd>Your program should always call <code>endwin()</code>
2700     before exiting or shelling out of the program. This function
2701@@ -969,7 +988,8 @@
2702     program will restore the ncurses screen from before the
2703     escape.</dd>
2704
2705-    <dt><code>newterm(type, ofp, ifp)</code></dt>
2706+    <dt><code>newterm(type, ofp, ifp)</code>
2707+    </dt>
2708
2709     <dd>A program which outputs to more than one terminal should
2710     use <code>newterm()</code> instead of <code>initscr()</code>.
2711@@ -985,7 +1005,8 @@
2712     <code>endwin()</code> should called once at wrapup time for
2713     each terminal opened using this function.</dd>
2714
2715-    <dt><code>set_term(new)</code></dt>
2716+    <dt><code>set_term(new)</code>
2717+    </dt>
2718
2719     <dd>This function is used to switch to a different terminal
2720     previously opened by <code>newterm()</code>. The screen
2721@@ -993,15 +1014,15 @@
2722     previous terminal is returned by the function. All other calls
2723     affect only the current terminal.</dd>
2724
2725-    <dt><code>delscreen(sp)</code></dt>
2726+    <dt><code>delscreen(sp)</code>
2727+    </dt>
2728
2729     <dd>The inverse of <code>newterm()</code>; deallocates the data
2730     structures associated with a given <code>SCREEN</code>
2731     reference.</dd>
2732   </dl>
2733
2734-  <h3><a name="flush" id="flush">Causing Output to the
2735-  Terminal</a></h3>
2736+  <h3><a name="flush" id="flush">Causing Output to the Terminal</a></h3>
2737
2738   <dl>
2739     <dt><code>refresh()</code> and <code>wrefresh(win)</code></dt>
2740@@ -1044,7 +1065,8 @@
2741   Access</a></h3>
2742
2743   <dl>
2744-    <dt><code>setupterm(term, filenum, errret)</code></dt>
2745+    <dt><code>setupterm(term, filenum, errret)</code>
2746+    </dt>
2747
2748     <dd>
2749       This routine is called to initialize a terminal's
2750@@ -1090,7 +1112,8 @@
2751   </blockquote>
2752
2753   <dl>
2754-    <dt><code>trace()</code></dt>
2755+    <dt><code>trace()</code>
2756+    </dt>
2757
2758     <dd>This function can be used to explicitly set a trace level.
2759     If the trace level is nonzero, execution of your program will
2760@@ -1103,7 +1126,8 @@
2761     value to the environment variable
2762     <code>NCURSES_TRACE</code>).</dd>
2763
2764-    <dt><code>_tracef()</code></dt>
2765+    <dt><code>_tracef()</code>
2766+    </dt>
2767
2768     <dd>This function can be used to output your own debugging
2769     information. It is only available only if you link with
2770@@ -1192,6 +1216,7 @@
2771   <code>refresh()</code>, <code>FALSE</code> otherwise.</p>
2772
2773   <p>Here is some sample code for shellout:</p>
2774+
2775   <pre>
2776     addstr("Shelling out...");
2777     def_prog_mode();           /* save current tty modes */
2778@@ -1381,8 +1406,7 @@
2779   <p>This change in behavior conforms <code>ncurses</code> to
2780   System V Release 4 and the XSI Curses standard.</p>
2781
2782-  <h2><a name="xsifuncs" id="xsifuncs">XSI Curses
2783-  Conformance</a></h2>
2784+  <h2><a name="xsifuncs" id="xsifuncs">XSI Curses Conformance</a></h2>
2785
2786   <p>The <code>ncurses</code> library is intended to be base-level
2787   conformant with the XSI Curses standard from X/Open. Many
2788@@ -1424,6 +1448,7 @@
2789
2790   <p>Your panels-using modules must import the panels library
2791   declarations with</p>
2792+
2793   <pre>
2794           #include &lt;panel.h&gt;
2795 </pre>
2796@@ -1435,8 +1460,7 @@
2797   still good practice to put <code>-lpanel</code> first and
2798   <code>-lncurses</code> second.</p>
2799
2800-  <h2><a name="poverview" id="poverview">Overview of
2801-  Panels</a></h2>
2802+  <h2><a name="poverview" id="poverview">Overview of Panels</a></h2>
2803
2804   <p>A panel object is a window that is implicitly treated as part
2805   of a <dfn>deck</dfn> including all other panel objects. The deck
2806@@ -1521,8 +1545,7 @@
2807   cannot do <code>top_panel()</code> or <code>bottom_panel</code>
2808   on a hidden panel(). Other panels operations are applicable.</p>
2809
2810-  <h2><a name="pmisc" id="pmisc">Miscellaneous Other
2811-  Facilities</a></h2>
2812+  <h2><a name="pmisc" id="pmisc">Miscellaneous Other Facilities</a></h2>
2813
2814   <p>It is possible to navigate the deck using the functions
2815   <code>panel_above()</code> and <code>panel_below</code>. Handed a
2816@@ -1551,6 +1574,7 @@
2817
2818   <p>Your menu-using modules must import the menu library
2819   declarations with</p>
2820+
2821   <pre>
2822           #include &lt;menu.h&gt;
2823 </pre>
2824@@ -1757,8 +1781,7 @@
2825   commands. The <code>menu_driver()</code> code ignores them and
2826   returns <code>E_UNKNOWN_COMMAND</code>.</p>
2827
2828-  <h2><a name="mmisc" id="mmisc">Miscellaneous Other
2829-  Features</a></h2>
2830+  <h2><a name="mmisc" id="mmisc">Miscellaneous Other Features</a></h2>
2831
2832   <p>Various menu options can affect the processing and visual
2833   appearance and input processing of menus. See <code>menu_opts(3x)
2834@@ -1796,6 +1819,7 @@
2835
2836   <p>Your form-using modules must import the form library
2837   declarations with</p>
2838+
2839   <pre>
2840           #include &lt;form.h&gt;
2841 </pre>
2842@@ -1881,6 +1905,7 @@
2843
2844   <p>The basic function for creating fields is
2845   <code>new_field()</code>:</p>
2846+
2847   <pre>
2848 FIELD *new_field(int height, int width,   /* new field size */
2849                  int top, int left,       /* upper left corner */
2850@@ -1914,6 +1939,7 @@
2851   terminator. The sixth argument is the number of additional data
2852   buffers to allocate for the field; your application can use them
2853   for its own purposes.</p>
2854+
2855   <pre>
2856 FIELD *dup_field(FIELD *field,            /* field to copy */
2857                  int top, int left);      /* location of new copy */
2858@@ -1923,6 +1949,7 @@
2859   field at a new location. Size and buffering information are
2860   copied; some attribute flags and status bits are not (see the
2861   <code>form_field_new(3X)</code> for details).</p>
2862+
2863   <pre>
2864 FIELD *link_field(FIELD *field,           /* field to copy */
2865                   int top, int left);     /* location of new copy */
2866@@ -1947,6 +1974,7 @@
2867   an out-of-memory error or out-of-bounds arguments.</p>
2868
2869   <p>To connect fields to a form, use</p>
2870+
2871   <pre>
2872 FORM *new_form(FIELD **fields);
2873 </pre>
2874@@ -1989,6 +2017,7 @@
2875   Data</a></h3>
2876
2877   <p>You can retrieve field sizes and locations through:</p>
2878+
2879   <pre>
2880 int field_info(FIELD *field,              /* field from which to fetch */
2881                int *height, *int width,   /* field size */
2882@@ -2006,6 +2035,7 @@
2883   Location</a></h3>
2884
2885   <p>It is possible to move a field's location on the screen:</p>
2886+
2887   <pre>
2888 int move_field(FIELD *field,              /* field to alter */
2889                int top, int left);        /* new upper-left corner */
2890@@ -2014,11 +2044,11 @@
2891   <p>You can, of course. query the current location through
2892   <code>field_info()</code>.</p>
2893
2894-  <h3><a name="fjust" id="fjust">The Justification
2895-  Attribute</a></h3>
2896+  <h3><a name="fjust" id="fjust">The Justification Attribute</a></h3>
2897
2898   <p>One-line fields may be unjustified, justified right, justified
2899   left, or centered. Here is how you manipulate this attribute:</p>
2900+
2901   <pre>
2902 int set_field_just(FIELD *field,          /* field to alter */
2903                    int justmode);         /* mode to set */
2904@@ -2042,6 +2072,7 @@
2905   <p>This group of four field attributes controls the visual
2906   appearance of the field on the screen, without affecting in any
2907   way the data in the field buffer.</p>
2908+
2909   <pre>
2910 int set_field_fore(FIELD *field,          /* field to alter */
2911                    chtype attr);          /* attribute to set */
2912@@ -2075,6 +2106,7 @@
2913   <p>There is also a large collection of field option bits you can
2914   set to control various aspects of forms processing. You can
2915   manipulate them with these functions:</p>
2916+
2917   <pre>
2918 int set_field_opts(FIELD *field,          /* field to alter */
2919                    int attr);             /* attribute to set */
2920@@ -2179,6 +2211,7 @@
2921   <p>Every field has a status flag, which is set to FALSE when the
2922   field is created and TRUE when the value in field buffer 0
2923   changes. This flag can be queried and set directly:</p>
2924+
2925   <pre>
2926 int set_field_status(FIELD *field,      /* field to alter */
2927                    int status);         /* mode to set */
2928@@ -2208,6 +2241,7 @@
2929   is not used by the forms library. It is intended to be used by
2930   applications to store private per-field data. You can manipulate
2931   it with:</p>
2932+
2933   <pre>
2934 int set_field_userptr(FIELD *field,       /* field to alter */
2935                    char *userptr);        /* mode to set */
2936@@ -2222,8 +2256,7 @@
2937   pointer.) When a new field is created, the default-field user
2938   pointer is copied to initialize the new field's user pointer.</p>
2939
2940-  <h2><a name="fdynamic" id="fdynamic">Variable-Sized
2941-  Fields</a></h2>
2942+  <h2><a name="fdynamic" id="fdynamic">Variable-Sized Fields</a></h2>
2943
2944   <p>Normally, a field is fixed at the size specified for it at
2945   creation time. If, however, you turn off its O_STATIC bit, it
2946@@ -2242,6 +2275,7 @@
2947   <p>Normally, a dynamic field is allowed to grow without limit.
2948   But it is possible to set an upper limit on the size of a dynamic
2949   field. You do it with this function:</p>
2950+
2951   <pre>
2952 int set_max_field(FIELD *field,     /* field to alter (may not be NULL) */
2953                    int max_size);   /* upper limit on field size */
2954@@ -2277,8 +2311,7 @@
2955     size.</li>
2956   </ul>
2957
2958-  <h2><a name="fvalidation" id="fvalidation">Field
2959-  Validation</a></h2>
2960+  <h2><a name="fvalidation" id="fvalidation">Field Validation</a></h2>
2961
2962   <p>By default, a field will accept any data that will fit in its
2963   input buffer. However, it is possible to attach a validation type
2964@@ -2295,6 +2328,7 @@
2965   pre-defined validation types, and gives you the capability to
2966   define custom ones of your own. You can examine and change field
2967   validation attributes with the following functions:</p>
2968+
2969   <pre>
2970 int set_field_type(FIELD *field,          /* field to alter */
2971                    FIELDTYPE *ftype,      /* type to associate */
2972@@ -2316,6 +2350,7 @@
2973   <p>This field type accepts alphabetic data; no blanks, no digits,
2974   no special characters (this is checked at character-entry time).
2975   It is set up with:</p>
2976+
2977   <pre>
2978 int set_field_type(FIELD *field,          /* field to alter */
2979                    TYPE_ALPHA,            /* type to associate */
2980@@ -2333,6 +2368,7 @@
2981   <p>This field type accepts alphabetic data and digits; no blanks,
2982   no special characters (this is checked at character-entry time).
2983   It is set up with:</p>
2984+
2985   <pre>
2986 int set_field_type(FIELD *field,          /* field to alter */
2987                    TYPE_ALNUM,            /* type to associate */
2988@@ -2350,6 +2386,7 @@
2989   <p>This type allows you to restrict a field's values to be among
2990   a specified set of string values (for example, the two-letter
2991   postal codes for U.S. states). It is set up with:</p>
2992+
2993   <pre>
2994 int set_field_type(FIELD *field,          /* field to alter */
2995                    TYPE_ENUM,             /* type to associate */
2996@@ -2379,11 +2416,11 @@
2997   <code>REQ_PREV_CHOICE</code> input requests can be particularly
2998   useful with these fields.</p>
2999
3000-  <h3><a name="ftype_integer" id=
3001-  "ftype_integer">TYPE_INTEGER</a></h3>
3002+  <h3><a name="ftype_integer" id="ftype_integer">TYPE_INTEGER</a></h3>
3003
3004   <p>This field type accepts an integer. It is set up as
3005   follows:</p>
3006+
3007   <pre>
3008 int set_field_type(FIELD *field,          /* field to alter */
3009                    TYPE_INTEGER,          /* type to associate */
3010@@ -2403,11 +2440,11 @@
3011   <p>A <code>TYPE_INTEGER</code> value buffer can conveniently be
3012   interpreted with the C library function <code>atoi(3)</code>.</p>
3013
3014-  <h3><a name="ftype_numeric" id=
3015-  "ftype_numeric">TYPE_NUMERIC</a></h3>
3016+  <h3><a name="ftype_numeric" id="ftype_numeric">TYPE_NUMERIC</a></h3>
3017
3018   <p>This field type accepts a decimal number. It is set up as
3019   follows:</p>
3020+
3021   <pre>
3022 int set_field_type(FIELD *field,              /* field to alter */
3023                    TYPE_NUMERIC,              /* type to associate */
3024@@ -2433,6 +2470,7 @@
3025
3026   <p>This field type accepts data matching a regular expression. It
3027   is set up as follows:</p>
3028+
3029   <pre>
3030 int set_field_type(FIELD *field,          /* field to alter */
3031                    TYPE_REGEXP,           /* type to associate */
3032@@ -2449,6 +2487,7 @@
3033   <p>The chief attribute of a field is its buffer contents. When a
3034   form has been completed, your application usually needs to know
3035   the state of each field buffer. You can find this out with:</p>
3036+
3037   <pre>
3038 char *field_buffer(FIELD *field,          /* field to query */
3039                    int bufindex);         /* number of buffer to query */
3040@@ -2458,6 +2497,7 @@
3041   is set by the user's editing actions on that field. It is
3042   sometimes useful to be able to set the value of the zero-numbered
3043   (or some other) buffer from your application:</p>
3044+
3045   <pre>
3046 int set_field_buffer(FIELD *field,        /* field to alter */
3047                    int bufindex,          /* number of buffer to alter */
3048@@ -2482,8 +2522,7 @@
3049   <code>REQ_VALIDATION</code> request has been processed by the
3050   forms driver.</p>
3051
3052-  <h2><a name="formattrs" id="formattrs">Attributes of
3053-  Forms</a></h2>
3054+  <h2><a name="formattrs" id="formattrs">Attributes of Forms</a></h2>
3055
3056   <p>As with field attributes, form attributes inherit a default
3057   from a system default form structure. These defaults can be
3058@@ -2492,6 +2531,7 @@
3059
3060   <p>The principal attribute of a form is its field list. You can
3061   query and change this list with:</p>
3062+
3063   <pre>
3064 int set_form_fields(FORM *form,           /* form to alter */
3065                     FIELD **fields);      /* fields to connect */
3066@@ -2514,8 +2554,7 @@
3067   number of fields connected to a given from. It returns -1 if the
3068   form-pointer argument is NULL.</p>
3069
3070-  <h2><a name="fdisplay" id="fdisplay">Control of Form
3071-  Display</a></h2>
3072+  <h2><a name="fdisplay" id="fdisplay">Control of Form Display</a></h2>
3073
3074   <p>In the overview section, you saw that to display a form you
3075   normally start by defining its size (and fields), posting it, and
3076@@ -2546,6 +2585,7 @@
3077   <p>In order to declare your own frame window for a form, you will
3078   need to know the size of the form's bounding rectangle. You can
3079   get this information with:</p>
3080+
3081   <pre>
3082 int scale_form(FORM *form,                /* form to query */
3083                int *rows,                 /* form rows */
3084@@ -2555,6 +2595,7 @@
3085   <p>The form dimensions are passed back in the locations pointed
3086   to by the arguments. Once you have this information, you can use
3087   it to declare of windows, then use one of these functions:</p>
3088+
3089   <pre>
3090 int set_form_win(FORM *form,              /* form to alter */
3091                  WINDOW *win);            /* frame window to connect */
3092@@ -2574,6 +2615,7 @@
3093   <p>It is possible to check from your application whether all of a
3094   scrollable field is actually displayed within the menu subwindow.
3095   Use these functions:</p>
3096+
3097   <pre>
3098 int data_ahead(FORM *form);               /* form to be queried */
3099
3100@@ -2591,6 +2633,7 @@
3101
3102   <p>Finally, there is a function to restore the form window's
3103   cursor to the value expected by the forms driver:</p>
3104+
3105   <pre>
3106 int pos_form_cursor(FORM *)               /* form to be queried */
3107 </pre>
3108@@ -2606,6 +2649,7 @@
3109   input requests for form navigation, editing, and validation
3110   requests, just as <code>menu_driver</code> does for menus (see
3111   the section on <a href="#minput">menu input handling</a>).</p>
3112+
3113   <pre>
3114 int form_driver(FORM *form,               /* form to pass input to */
3115                 int request);             /* form request code */
3116@@ -2627,19 +2671,23 @@
3117   triggering display of a new form screen.</p>
3118
3119   <dl>
3120-    <dt><code>REQ_NEXT_PAGE</code></dt>
3121+    <dt><code>REQ_NEXT_PAGE</code>
3122+    </dt>
3123
3124     <dd>Move to the next form page.</dd>
3125
3126-    <dt><code>REQ_PREV_PAGE</code></dt>
3127+    <dt><code>REQ_PREV_PAGE</code>
3128+    </dt>
3129
3130     <dd>Move to the previous form page.</dd>
3131
3132-    <dt><code>REQ_FIRST_PAGE</code></dt>
3133+    <dt><code>REQ_FIRST_PAGE</code>
3134+    </dt>
3135
3136     <dd>Move to the first form page.</dd>
3137
3138-    <dt><code>REQ_LAST_PAGE</code></dt>
3139+    <dt><code>REQ_LAST_PAGE</code>
3140+    </dt>
3141
3142     <dd>Move to the last form page.</dd>
3143   </dl>
3144@@ -2656,51 +2704,63 @@
3145   page.</p>
3146
3147   <dl>
3148-    <dt><code>REQ_NEXT_FIELD</code></dt>
3149+    <dt><code>REQ_NEXT_FIELD</code>
3150+    </dt>
3151
3152     <dd>Move to next field.</dd>
3153
3154-    <dt><code>REQ_PREV_FIELD</code></dt>
3155+    <dt><code>REQ_PREV_FIELD</code>
3156+    </dt>
3157
3158     <dd>Move to previous field.</dd>
3159
3160-    <dt><code>REQ_FIRST_FIELD</code></dt>
3161+    <dt><code>REQ_FIRST_FIELD</code>
3162+    </dt>
3163
3164     <dd>Move to the first field.</dd>
3165
3166-    <dt><code>REQ_LAST_FIELD</code></dt>
3167+    <dt><code>REQ_LAST_FIELD</code>
3168+    </dt>
3169
3170     <dd>Move to the last field.</dd>
3171
3172-    <dt><code>REQ_SNEXT_FIELD</code></dt>
3173+    <dt><code>REQ_SNEXT_FIELD</code>
3174+    </dt>
3175
3176     <dd>Move to sorted next field.</dd>
3177
3178-    <dt><code>REQ_SPREV_FIELD</code></dt>
3179+    <dt><code>REQ_SPREV_FIELD</code>
3180+    </dt>
3181
3182     <dd>Move to sorted previous field.</dd>
3183
3184-    <dt><code>REQ_SFIRST_FIELD</code></dt>
3185+    <dt><code>REQ_SFIRST_FIELD</code>
3186+    </dt>
3187
3188     <dd>Move to the sorted first field.</dd>
3189
3190-    <dt><code>REQ_SLAST_FIELD</code></dt>
3191+    <dt><code>REQ_SLAST_FIELD</code>
3192+    </dt>
3193
3194     <dd>Move to the sorted last field.</dd>
3195
3196-    <dt><code>REQ_LEFT_FIELD</code></dt>
3197+    <dt><code>REQ_LEFT_FIELD</code>
3198+    </dt>
3199
3200     <dd>Move left to field.</dd>
3201
3202-    <dt><code>REQ_RIGHT_FIELD</code></dt>
3203+    <dt><code>REQ_RIGHT_FIELD</code>
3204+    </dt>
3205
3206     <dd>Move right to field.</dd>
3207
3208-    <dt><code>REQ_UP_FIELD</code></dt>
3209+    <dt><code>REQ_UP_FIELD</code>
3210+    </dt>
3211
3212     <dd>Move up to field.</dd>
3213
3214-    <dt><code>REQ_DOWN_FIELD</code></dt>
3215+    <dt><code>REQ_DOWN_FIELD</code>
3216+    </dt>
3217
3218     <dd>Move down to field.</dd>
3219   </dl>
3220@@ -2738,59 +2798,73 @@
3221   currently selected field.</p>
3222
3223   <dl>
3224-    <dt><code>REQ_NEXT_CHAR</code></dt>
3225+    <dt><code>REQ_NEXT_CHAR</code>
3226+    </dt>
3227
3228     <dd>Move to next character.</dd>
3229
3230-    <dt><code>REQ_PREV_CHAR</code></dt>
3231+    <dt><code>REQ_PREV_CHAR</code>
3232+    </dt>
3233
3234     <dd>Move to previous character.</dd>
3235
3236-    <dt><code>REQ_NEXT_LINE</code></dt>
3237+    <dt><code>REQ_NEXT_LINE</code>
3238+    </dt>
3239
3240     <dd>Move to next line.</dd>
3241
3242-    <dt><code>REQ_PREV_LINE</code></dt>
3243+    <dt><code>REQ_PREV_LINE</code>
3244+    </dt>
3245
3246     <dd>Move to previous line.</dd>
3247
3248-    <dt><code>REQ_NEXT_WORD</code></dt>
3249+    <dt><code>REQ_NEXT_WORD</code>
3250+    </dt>
3251
3252     <dd>Move to next word.</dd>
3253
3254-    <dt><code>REQ_PREV_WORD</code></dt>
3255+    <dt><code>REQ_PREV_WORD</code>
3256+    </dt>
3257
3258     <dd>Move to previous word.</dd>
3259
3260-    <dt><code>REQ_BEG_FIELD</code></dt>
3261+    <dt><code>REQ_BEG_FIELD</code>
3262+    </dt>
3263
3264     <dd>Move to beginning of field.</dd>
3265
3266-    <dt><code>REQ_END_FIELD</code></dt>
3267+    <dt><code>REQ_END_FIELD</code>
3268+    </dt>
3269
3270     <dd>Move to end of field.</dd>
3271
3272-    <dt><code>REQ_BEG_LINE</code></dt>
3273+    <dt><code>REQ_BEG_LINE</code>
3274+    </dt>
3275
3276     <dd>Move to beginning of line.</dd>
3277
3278-    <dt><code>REQ_END_LINE</code></dt>
3279+    <dt><code>REQ_END_LINE</code>
3280+    </dt>
3281
3282     <dd>Move to end of line.</dd>
3283
3284-    <dt><code>REQ_LEFT_CHAR</code></dt>
3285+    <dt><code>REQ_LEFT_CHAR</code>
3286+    </dt>
3287
3288     <dd>Move left in field.</dd>
3289
3290-    <dt><code>REQ_RIGHT_CHAR</code></dt>
3291+    <dt><code>REQ_RIGHT_CHAR</code>
3292+    </dt>
3293
3294     <dd>Move right in field.</dd>
3295
3296-    <dt><code>REQ_UP_CHAR</code></dt>
3297+    <dt><code>REQ_UP_CHAR</code>
3298+    </dt>
3299
3300     <dd>Move up in field.</dd>
3301
3302-    <dt><code>REQ_DOWN_CHAR</code></dt>
3303+    <dt><code>REQ_DOWN_CHAR</code>
3304+    </dt>
3305
3306     <dd>Move down in field.</dd>
3307   </dl>
3308@@ -2811,51 +2885,63 @@
3309   requests:</p>
3310
3311   <dl>
3312-    <dt><code>REQ_SCR_FLINE</code></dt>
3313+    <dt><code>REQ_SCR_FLINE</code>
3314+    </dt>
3315
3316     <dd>Scroll vertically forward a line.</dd>
3317
3318-    <dt><code>REQ_SCR_BLINE</code></dt>
3319+    <dt><code>REQ_SCR_BLINE</code>
3320+    </dt>
3321
3322     <dd>Scroll vertically backward a line.</dd>
3323
3324-    <dt><code>REQ_SCR_FPAGE</code></dt>
3325+    <dt><code>REQ_SCR_FPAGE</code>
3326+    </dt>
3327
3328     <dd>Scroll vertically forward a page.</dd>
3329
3330-    <dt><code>REQ_SCR_BPAGE</code></dt>
3331+    <dt><code>REQ_SCR_BPAGE</code>
3332+    </dt>
3333
3334     <dd>Scroll vertically backward a page.</dd>
3335
3336-    <dt><code>REQ_SCR_FHPAGE</code></dt>
3337+    <dt><code>REQ_SCR_FHPAGE</code>
3338+    </dt>
3339
3340     <dd>Scroll vertically forward half a page.</dd>
3341
3342-    <dt><code>REQ_SCR_BHPAGE</code></dt>
3343+    <dt><code>REQ_SCR_BHPAGE</code>
3344+    </dt>
3345
3346     <dd>Scroll vertically backward half a page.</dd>
3347
3348-    <dt><code>REQ_SCR_FCHAR</code></dt>
3349+    <dt><code>REQ_SCR_FCHAR</code>
3350+    </dt>
3351
3352     <dd>Scroll horizontally forward a character.</dd>
3353
3354-    <dt><code>REQ_SCR_BCHAR</code></dt>
3355+    <dt><code>REQ_SCR_BCHAR</code>
3356+    </dt>
3357
3358     <dd>Scroll horizontally backward a character.</dd>
3359
3360-    <dt><code>REQ_SCR_HFLINE</code></dt>
3361+    <dt><code>REQ_SCR_HFLINE</code>
3362+    </dt>
3363
3364     <dd>Scroll horizontally one field width forward.</dd>
3365
3366-    <dt><code>REQ_SCR_HBLINE</code></dt>
3367+    <dt><code>REQ_SCR_HBLINE</code>
3368+    </dt>
3369
3370     <dd>Scroll horizontally one field width backward.</dd>
3371
3372-    <dt><code>REQ_SCR_HFHALF</code></dt>
3373+    <dt><code>REQ_SCR_HFHALF</code>
3374+    </dt>
3375
3376     <dd>Scroll horizontally one half field width forward.</dd>
3377
3378-    <dt><code>REQ_SCR_HBHALF</code></dt>
3379+    <dt><code>REQ_SCR_HBHALF</code>
3380+    </dt>
3381
3382     <dd>Scroll horizontally one half field width backward.</dd>
3383   </dl>
3384@@ -2874,51 +2960,63 @@
3385   the edit mode:</p>
3386
3387   <dl>
3388-    <dt><code>REQ_INS_MODE</code></dt>
3389+    <dt><code>REQ_INS_MODE</code>
3390+    </dt>
3391
3392     <dd>Set insertion mode.</dd>
3393
3394-    <dt><code>REQ_OVL_MODE</code></dt>
3395+    <dt><code>REQ_OVL_MODE</code>
3396+    </dt>
3397
3398     <dd>Set overlay mode.</dd>
3399
3400-    <dt><code>REQ_NEW_LINE</code></dt>
3401+    <dt><code>REQ_NEW_LINE</code>
3402+    </dt>
3403
3404     <dd>New line request (see below for explanation).</dd>
3405
3406-    <dt><code>REQ_INS_CHAR</code></dt>
3407+    <dt><code>REQ_INS_CHAR</code>
3408+    </dt>
3409
3410     <dd>Insert space at character location.</dd>
3411
3412-    <dt><code>REQ_INS_LINE</code></dt>
3413+    <dt><code>REQ_INS_LINE</code>
3414+    </dt>
3415
3416     <dd>Insert blank line at character location.</dd>
3417
3418-    <dt><code>REQ_DEL_CHAR</code></dt>
3419+    <dt><code>REQ_DEL_CHAR</code>
3420+    </dt>
3421
3422     <dd>Delete character at cursor.</dd>
3423
3424-    <dt><code>REQ_DEL_PREV</code></dt>
3425+    <dt><code>REQ_DEL_PREV</code>
3426+    </dt>
3427
3428     <dd>Delete previous word at cursor.</dd>
3429
3430-    <dt><code>REQ_DEL_LINE</code></dt>
3431+    <dt><code>REQ_DEL_LINE</code>
3432+    </dt>
3433
3434     <dd>Delete line at cursor.</dd>
3435
3436-    <dt><code>REQ_DEL_WORD</code></dt>
3437+    <dt><code>REQ_DEL_WORD</code>
3438+    </dt>
3439
3440     <dd>Delete word at cursor.</dd>
3441
3442-    <dt><code>REQ_CLR_EOL</code></dt>
3443+    <dt><code>REQ_CLR_EOL</code>
3444+    </dt>
3445
3446     <dd>Clear to end of line.</dd>
3447
3448-    <dt><code>REQ_CLR_EOF</code></dt>
3449+    <dt><code>REQ_CLR_EOF</code>
3450+    </dt>
3451
3452     <dd>Clear to end of field.</dd>
3453
3454-    <dt><code>REQ_CLEAR_FIELD</code></dt>
3455+    <dt><code>REQ_CLEAR_FIELD</code>
3456+    </dt>
3457
3458     <dd>Clear entire field.</dd>
3459   </dl>
3460@@ -2975,12 +3073,14 @@
3461   into the field buffer:</p>
3462
3463   <dl>
3464-    <dt><code>REQ_NEXT_CHOICE</code></dt>
3465+    <dt><code>REQ_NEXT_CHOICE</code>
3466+    </dt>
3467
3468     <dd>Place the successor value of the current value in the
3469     buffer.</dd>
3470
3471-    <dt><code>REQ_PREV_CHOICE</code></dt>
3472+    <dt><code>REQ_PREV_CHOICE</code>
3473+    </dt>
3474
3475     <dd>Place the predecessor value of the current value in the
3476     buffer.</dd>
3477@@ -2991,8 +3091,7 @@
3478   field type of your own (see <a href="#fcustom">Custom Validation
3479   Types</a>), you can associate our own ordering functions.</p>
3480
3481-  <h3><a name="fappcmds" id="fappcmds">Application
3482-  Commands</a></h3>
3483+  <h3><a name="fappcmds" id="fappcmds">Application Commands</a></h3>
3484
3485   <p>Form requests are represented as integers above the
3486   <code>curses</code> value greater than <code>KEY_MAX</code> and
3487@@ -3005,6 +3104,7 @@
3488   <p>It is possible to set function hooks to be executed whenever
3489   the current field or form changes. Here are the functions that
3490   support this:</p>
3491+
3492   <pre>
3493 typedef void    (*HOOK)();       /* pointer to function returning void */
3494
3495@@ -3086,6 +3186,7 @@
3496   move the focus for editing and viewing under control of your
3497   application, or ask which field it currently is in. The following
3498   functions help you accomplish this:</p>
3499+
3500   <pre>
3501 int set_current_field(FORM *form,         /* form to alter */
3502                       FIELD *field);      /* field to shift to */
3503@@ -3106,6 +3207,7 @@
3504   resets this.</p>
3505
3506   <p>It is also possible to move around by pages.</p>
3507+
3508   <pre>
3509 int set_form_page(FORM *form,             /* form to alter */
3510                   int page);              /* page to go to (0-origin) */
3511@@ -3120,6 +3222,7 @@
3512
3513   <p>Like fields, forms may have control option bits. They can be
3514   changed or queried with these functions:</p>
3515+
3516   <pre>
3517 int set_form_opts(FORM *form,             /* form to alter */
3518                   int attr);              /* attribute to set */
3519@@ -3155,8 +3258,7 @@
3520   <p>The option values are bit-masks and can be composed with
3521   logical-or in the obvious way.</p>
3522
3523-  <h2><a name="fcustom" id="fcustom">Custom Validation
3524-  Types</a></h2>
3525+  <h2><a name="fcustom" id="fcustom">Custom Validation Types</a></h2>
3526
3527   <p>The <code>form</code> library gives you the capability to
3528   define custom validation types of your own. Further, the optional
3529@@ -3170,6 +3272,7 @@
3530
3531   <p>The simplest way to create a custom data type is to compose it
3532   from two preexisting ones:</p>
3533+
3534   <pre>
3535 FIELD *link_fieldtype(FIELDTYPE *type1,
3536                       FIELDTYPE *type2);
3537@@ -3200,13 +3303,13 @@
3538   </ul>
3539
3540   <p>Here is how you do that:</p>
3541+
3542   <pre>
3543 typedef int     (*HOOK)();       /* pointer to function returning int */
3544
3545 FIELDTYPE *new_fieldtype(HOOK f_validate, /* field validator */
3546                          HOOK c_validate) /* character validator */
3547
3548-
3549 int free_fieldtype(FIELDTYPE *ftype);     /* type to free */
3550 </pre>
3551
3552@@ -3246,6 +3349,7 @@
3553   pile will be passed to the validation functions.</p>
3554
3555   <p>Here is how you make the association:</p>
3556+
3557   <pre>
3558 typedef char    *(*PTRHOOK)();    /* pointer to function returning (char *) */
3559 typedef void    (*VOIDHOOK)();    /* pointer to function returning void */
3560@@ -3259,7 +3363,8 @@
3561   <p>Here is how the storage-management hooks are used:</p>
3562
3563   <dl>
3564-    <dt><code>make_str</code></dt>
3565+    <dt><code>make_str</code>
3566+    </dt>
3567
3568     <dd>This function is called by <code>set_field_type()</code>.
3569     It gets one argument, a <code>va_list</code> of the
3570@@ -3268,14 +3373,16 @@
3571     pointer to a data structure that encapsulates those
3572     arguments.</dd>
3573
3574-    <dt><code>copy_str</code></dt>
3575+    <dt><code>copy_str</code>
3576+    </dt>
3577
3578     <dd>This function is called by form library functions that
3579     allocate new field instances. It is expected to take a pile
3580     pointer, copy the pile to allocated storage, and return the
3581     address of the pile copy.</dd>
3582
3583-    <dt><code>free_str</code></dt>
3584+    <dt><code>free_str</code>
3585+    </dt>
3586
3587     <dd>This function is called by field- and type-deallocation
3588     routines in the library. It takes a pile pointer argument, and
3589@@ -3296,6 +3403,7 @@
3590   it is possible to define successor and predecessor functions to
3591   support the <code>REQ_NEXT_CHOICE</code> and
3592   <code>REQ_PREV_CHOICE</code> requests. Here is how:</p>
3593+
3594   <pre>
3595 typedef int     (*INTHOOK)();     /* pointer to function returning int */
3596
3597@@ -3313,8 +3421,7 @@
3598   (a legal next or previous value was set) or FALSE to indicate
3599   failure.</p>
3600
3601-  <h3><a name="fcustprobs" id="fcustprobs">Avoiding
3602-  Problems</a></h3>
3603+  <h3><a name="fcustprobs" id="fcustprobs">Avoiding Problems</a></h3>
3604
3605   <p>The interface for defining custom types is complicated and
3606   tricky. Rather than attempting to create a custom type entirely
3607Index: doc/ncurses-intro.doc
3608--- ncurses-6.1-20190720+/doc/ncurses-intro.doc	2017-05-06 18:12:39.000000000 +0000
3609+++ ncurses-6.1-20190727/doc/ncurses-intro.doc	2019-07-27 11:47:44.000000000 +0000
3610@@ -132,20 +132,33 @@
3611 A Brief History of Curses
3612
3613    Historically, the first ancestor of curses was the routines written to
3614-   provide   screen-handling   for   the   game  rogue;  these  used  the
3615+   provide   screen-handling   for   the   vi   editor;  these  used  the
3616    already-existing  termcap  database  facility  for describing terminal
3617    capabilities. These routines were abstracted into a documented library
3618-   and first released with the early BSD UNIX versions.
3619+   and  first released with the early BSD UNIX versions. All of this work
3620+   was done by students at the University of California.
3621
3622-   System  III UNIX from Bell Labs featured a rewritten and much-improved
3623-   curses  library.  It introduced the terminfo format. Terminfo is based
3624-   on  Berkeley's termcap database, but contains a number of improvements
3625-   and  extensions.  Parameterized  capabilities strings were introduced,
3626-   making  it  possible to describe multiple video attributes, and colors
3627-   and  to  handle far more unusual terminals than possible with termcap.
3628-   In  the  later  AT&T  System  V  releases,  curses evolved to use more
3629-   facilities and offer more capabilities, going far beyond BSD curses in
3630-   power and flexibility.
3631+   After  graduation,  one  of  those  students went to work at AT&T Bell
3632+   Labs,  and  made  an  improved  termcap library called terminfo (i.e.,
3633+   "libterm").  That  was  subsequently  released  in System V Release 2.
3634+   Thereafter,  other  developers  added  to  the  terminfo  library. For
3635+   instance,  a  student at Cornell University wrote an improved terminfo
3636+   library  as well as a tool (tic) to compile the terminal descriptions.
3637+   As  a  general  rule,  AT&T  did  not  identify  the developers in the
3638+   source-code  or  documentation;  the  tic and infocmp programs are the
3639+   exceptions.
3640+
3641+   System  V  Release  3  (System  III  UNIX)  from  Bell Labs featured a
3642+   rewritten  and  much-improved  curses  library,l  along  with  the tic
3643+   program.
3644+
3645+   To  recap,  terminfo  is  based  on  Berkeley's  termcap database, but
3646+   contains  a  number  of  improvements  and  extensions.  Parameterized
3647+   capabilities  strings  were introduced, making it possible to describe
3648+   multiple  video  attributes, and colors and to handle far more unusual
3649+   terminals  than  possible  with  termcap.  In  the later AT&T System V
3650+   releases,  curses  evolved  to  use  more  facilities  and  offer more
3651+   capabilities, going far beyond BSD curses in power and flexibility.
3652
3653 Scope of This Document
3654
3655@@ -2395,7 +2408,6 @@
3656 FIELDTYPE *new_fieldtype(HOOK f_validate, /* field validator */
3657                          HOOK c_validate) /* character validator */
3658
3659-
3660 int free_fieldtype(FIELDTYPE *ftype);     /* type to free */
3661
3662    At least one of the arguments of new_fieldtype() must be non-NULL. The
3663Index: include/Caps
3664Prereq:  1.42
3665--- ncurses-6.1-20190720+/include/Caps	2019-04-13 19:54:05.000000000 +0000
3666+++ ncurses-6.1-20190727/include/Caps	2019-07-27 00:36:44.000000000 +0000
3667@@ -29,7 +29,7 @@
3668 # Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
3669 #    and: Eric S. Raymond <esr@snark.thyrsus.com>
3670 #
3671-# $Id: Caps,v 1.42 2019/04/13 19:54:05 tom Exp $
3672+# $Id: Caps,v 1.44 2019/07/27 00:36:44 tom Exp $
3673 #
3674 # This is the master termcap/terminfo capability table.
3675 #
3676@@ -843,9 +843,9 @@
3677 # comma-separated list of capabilities for which there are corresponding keys.
3678 # The `kn' code is accepted but ignored.
3679 #
3680-# The `ma' capability seems to have been designed to map between the rogue(2)
3681-# motion keys (including jkhl) and characters emitted by arrow keys on some
3682-# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
3683+# The `ma' capability was a 4.0BSD feature used by vi version 2.
3684+# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh.
3685+# Besides being obsolete, that interpretation conflicts with max_attributes.
3686 #
3687 # Here is a description of memory_lock_above and memory_unlock:
3688 # "You can 'freeze' data on the screen by turning on Memory Lock in a line of
3689@@ -871,7 +871,7 @@
3690 # vertical_tab_delay		OTdV	num	dV	-		-	-B---	padding required for ^V
3691 number_of_function_keys		OTkn	num	kn	-		-	-B-G-	count of function keys
3692 other_non_function_keys		OTko	str	ko	-		-	-B-G-	list of self-mapped keycaps
3693-arrow_key_map			OTma	str	ma	-		-	YBC--	map arrow keys rogue(1) motion keys
3694+arrow_key_map			OTma	str	ma	-		-	YBC--	map motion-keys for vi version 2
3695 # memory_lock_above		OTml	str	ml	-		-	-B---	lock visible screen memory above the current line
3696 # memory_unlock			OTmu	str	mu	-		-	-B---	unlock visible screen memory above the current line
3697 has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
3698Index: include/Caps.aix4
3699Prereq:  1.14
3700--- ncurses-6.1-20190720+/include/Caps.aix4	2019-04-13 22:14:57.000000000 +0000
3701+++ ncurses-6.1-20190727/include/Caps.aix4	2019-07-27 00:36:44.000000000 +0000
3702@@ -28,7 +28,7 @@
3703 #
3704 # Author: Thomas Dickey
3705 #
3706-# $Id: Caps.aix4,v 1.14 2019/04/13 22:14:57 tom Exp $
3707+# $Id: Caps.aix4,v 1.16 2019/07/27 00:36:44 tom Exp $
3708 #
3709 # This is an adaptation of ncurses' termcap/terminfo capability table, which
3710 # is designed to align with AIX 4.x's terminfo.
3711@@ -945,9 +945,9 @@
3712 # comma-separated list of capabilities for which there are corresponding keys.
3713 # The `kn' code is accepted but ignored.
3714 #
3715-# The `ma' capability seems to have been designed to map between the rogue(2)
3716-# motion keys (including jkhl) and characters emitted by arrow keys on some
3717-# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
3718+# The `ma' capability was a 4.0BSD feature used by vi version 2.
3719+# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh.
3720+# Besides being obsolete, that interpretation conflicts with max_attributes.
3721 #
3722 # Here is a description of memory_lock_above and memory_unlock:
3723 # "You can 'freeze' data on the screen by turning on Memory Lock in a line of
3724@@ -973,7 +973,7 @@
3725 # vertical_tab_delay		OTdV	num	dV	-		-	-B---	padding required for ^V
3726 number_of_function_keys		OTkn	num	kn	-		-	-B-G-	count of function keys
3727 other_non_function_keys		OTko	str	ko	-		-	-B-G-	list of self-mapped keycaps
3728-arrow_key_map			OTma	str	ma	-		-	YBC--	map arrow keys rogue(1) motion keys
3729+arrow_key_map			OTma	str	ma	-		-	YBC--	map motion-keys for vi version 2
3730 # memory_lock_above		OTml	str	ml	-		-	-B---	lock visible screen memory above the current line
3731 # memory_unlock			OTmu	str	mu	-		-	-B---	unlock visible screen memory above the current line
3732 has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
3733Index: include/Caps.hpux11
3734Prereq:  1.12
3735--- ncurses-6.1-20190720+/include/Caps.hpux11	2019-04-13 22:30:16.000000000 +0000
3736+++ ncurses-6.1-20190727/include/Caps.hpux11	2019-07-27 00:36:44.000000000 +0000
3737@@ -28,7 +28,7 @@
3738 #
3739 # Author: Thomas Dickey
3740 #
3741-# $Id: Caps.hpux11,v 1.12 2019/04/13 22:30:16 tom Exp $
3742+# $Id: Caps.hpux11,v 1.14 2019/07/27 00:36:44 tom Exp $
3743 #
3744 # This is an adaptation of ncurses' termcap/terminfo capability table, which
3745 # is designed to align with HPUX 11.x's terminfo.
3746@@ -859,9 +859,9 @@
3747 # comma-separated list of capabilities for which there are corresponding keys.
3748 # The `kn' code is accepted but ignored.
3749 #
3750-# The `ma' capability seems to have been designed to map between the rogue(2)
3751-# motion keys (including jkhl) and characters emitted by arrow keys on some
3752-# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
3753+# The `ma' capability was a 4.0BSD feature used by vi version 2.
3754+# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh.
3755+# Besides being obsolete, that interpretation conflicts with max_attributes.
3756 #
3757 # Here is a description of memory_lock_above and memory_unlock:
3758 # "You can 'freeze' data on the screen by turning on Memory Lock in a line of
3759@@ -887,7 +887,7 @@
3760 # vertical_tab_delay		OTdV	num	dV	-		-	-B---	padding required for ^V
3761 number_of_function_keys		OTkn	num	kn	-		-	-B-G-	count of function keys
3762 other_non_function_keys		OTko	str	ko	-		-	-B-G-	list of self-mapped keycaps
3763-arrow_key_map			OTma	str	ma	-		-	YBC--	map arrow keys rogue(1) motion keys
3764+arrow_key_map			OTma	str	ma	-		-	YBC--	map motion-keys for vi version 2
3765 # memory_lock_above		OTml	str	ml	-		-	-B---	lock visible screen memory above the current line
3766 # memory_unlock			OTmu	str	mu	-		-	-B---	unlock visible screen memory above the current line
3767 has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
3768Index: include/Caps.keys
3769Prereq:  1.11
3770--- ncurses-6.1-20190720+/include/Caps.keys	2019-04-13 19:57:03.000000000 +0000
3771+++ ncurses-6.1-20190727/include/Caps.keys	2019-07-27 00:36:44.000000000 +0000
3772@@ -29,7 +29,7 @@
3773 # Author: Thomas Dickey
3774 #    and: Ilya Zakharevich
3775 #
3776-# $Id: Caps.keys,v 1.11 2019/04/13 19:57:03 tom Exp $
3777+# $Id: Caps.keys,v 1.13 2019/07/27 00:36:44 tom Exp $
3778 #
3779 # This is an adaptation of ncurses' termcap/terminfo capability table, which
3780 # is illustrates an experimental extension to describe alt-, shift- and
3781@@ -933,9 +933,9 @@
3782 # comma-separated list of capabilities for which there are corresponding keys.
3783 # The `kn' code is accepted but ignored.
3784 #
3785-# The `ma' capability seems to have been designed to map between the rogue(2)
3786-# motion keys (including jkhl) and characters emitted by arrow keys on some
3787-# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
3788+# The `ma' capability was a 4.0BSD feature used by vi version 2.
3789+# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh.
3790+# Besides being obsolete, that interpretation conflicts with max_attributes.
3791 #
3792 # Here is a description of memory_lock_above and memory_unlock:
3793 # "You can 'freeze' data on the screen by turning on Memory Lock in a line of
3794@@ -961,7 +961,7 @@
3795 # vertical_tab_delay		OTdV	num	dV	-		-	-B---	padding required for ^V
3796 number_of_function_keys		OTkn	num	kn	-		-	-B-G-	count of function keys
3797 other_non_function_keys		OTko	str	ko	-		-	-B-G-	list of self-mapped keycaps
3798-arrow_key_map			OTma	str	ma	-		-	YBC--	map arrow keys rogue(1) motion keys
3799+arrow_key_map			OTma	str	ma	-		-	YBC--	map motion-keys for vi version 2
3800 # memory_lock_above		OTml	str	ml	-		-	-B---	lock visible screen memory above the current line
3801 # memory_unlock			OTmu	str	mu	-		-	-B---	unlock visible screen memory above the current line
3802 has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
3803Index: include/Caps.osf1r5
3804Prereq:  1.10
3805--- ncurses-6.1-20190720+/include/Caps.osf1r5	2019-04-13 19:56:20.000000000 +0000
3806+++ ncurses-6.1-20190727/include/Caps.osf1r5	2019-07-27 00:36:44.000000000 +0000
3807@@ -28,7 +28,7 @@
3808 #
3809 # Author: Thomas Dickey
3810 #
3811-# $Id: Caps.osf1r5,v 1.10 2019/04/13 19:56:20 tom Exp $
3812+# $Id: Caps.osf1r5,v 1.12 2019/07/27 00:36:44 tom Exp $
3813 #
3814 # This is an adaptation of ncurses' termcap/terminfo capability table, which
3815 # is designed to align with OSF/1 version 5 (Tru64) terminfo.
3816@@ -851,9 +851,9 @@
3817 # comma-separated list of capabilities for which there are corresponding keys.
3818 # The `kn' code is accepted but ignored.
3819 #
3820-# The `ma' capability seems to have been designed to map between the rogue(2)
3821-# motion keys (including jkhl) and characters emitted by arrow keys on some
3822-# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
3823+# The `ma' capability was a 4.0BSD feature used by vi version 2.
3824+# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh.
3825+# Besides being obsolete, that interpretation conflicts with max_attributes.
3826 #
3827 # Here is a description of memory_lock_above and memory_unlock:
3828 # "You can 'freeze' data on the screen by turning on Memory Lock in a line of
3829@@ -879,7 +879,7 @@
3830 # vertical_tab_delay		OTdV	num	dV	-		-	-B---	padding required for ^V
3831 number_of_function_keys		OTkn	num	kn	-		-	-B-G-	count of function keys
3832 other_non_function_keys		OTko	str	ko	-		-	-B-G-	list of self-mapped keycaps
3833-arrow_key_map			OTma	str	ma	-		-	YBC--	map arrow keys rogue(1) motion keys
3834+arrow_key_map			OTma	str	ma	-		-	YBC--	map motion-keys for vi version 2
3835 # memory_lock_above		OTml	str	ml	-		-	-B---	lock visible screen memory above the current line
3836 # memory_unlock			OTmu	str	mu	-		-	-B---	unlock visible screen memory above the current line
3837 has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
3838Index: include/Caps.uwin
3839Prereq:  1.9
3840--- ncurses-6.1-20190720+/include/Caps.uwin	2019-04-13 19:55:29.000000000 +0000
3841+++ ncurses-6.1-20190727/include/Caps.uwin	2019-07-27 00:36:44.000000000 +0000
3842@@ -28,7 +28,7 @@
3843 #
3844 # Author: Thomas Dickey
3845 #
3846-# $Id: Caps.uwin,v 1.9 2019/04/13 19:55:29 tom Exp $
3847+# $Id: Caps.uwin,v 1.11 2019/07/27 00:36:44 tom Exp $
3848 #
3849 # This is an adaptation of ncurses' termcap/terminfo capability table, which
3850 # is designed to align with U/Win's terminfo.
3851@@ -667,9 +667,9 @@
3852 # comma-separated list of capabilities for which there are corresponding keys.
3853 # The `kn' code is accepted but ignored.
3854 #
3855-# The `ma' capability seems to have been designed to map between the rogue(2)
3856-# motion keys (including jkhl) and characters emitted by arrow keys on some
3857-# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
3858+# The `ma' capability was a 4.0BSD feature used by vi version 2.
3859+# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh.
3860+# Besides being obsolete, that interpretation conflicts with max_attributes.
3861 #
3862 # Here is a description of memory_lock_above and memory_unlock:
3863 # "You can 'freeze' data on the screen by turning on Memory Lock in a line of
3864@@ -695,7 +695,7 @@
3865 # vertical_tab_delay		OTdV	num	dV	-		-	-B---	padding required for ^V
3866 number_of_function_keys		OTkn	num	kn	-		-	-B-G-	count of function keys
3867 other_non_function_keys		OTko	str	ko	-		-	-B-G-	list of self-mapped keycaps
3868-arrow_key_map			OTma	str	ma	-		-	YBC--	map arrow keys rogue(1) motion keys
3869+arrow_key_map			OTma	str	ma	-		-	YBC--	map motion-keys for vi version 2
3870 # memory_lock_above		OTml	str	ml	-		-	-B---	lock visible screen memory above the current line
3871 # memory_unlock			OTmu	str	mu	-		-	-B---	unlock visible screen memory above the current line
3872 has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
3873Index: man/manhtml.externs
3874Prereq:  1.10
3875--- ncurses-6.1-20190720+/man/manhtml.externs	2019-01-20 20:34:57.000000000 +0000
3876+++ ncurses-6.1-20190727/man/manhtml.externs	2019-07-27 11:30:24.000000000 +0000
3877@@ -1,4 +1,4 @@
3878-# $Id: manhtml.externs,v 1.10 2019/01/20 20:34:57 tom Exp $
3879+# $Id: manhtml.externs,v 1.12 2019/07/27 11:30:24 tom Exp $
3880 # Items in this list will not be linked by man2html
3881 #***************************************************************************
3882 # Copyright (c) 2013-2017,2019 Free Software Foundation, Inc.              *
3883@@ -39,7 +39,9 @@
3884 errno(3)
3885 file(1)
3886 getty(1)
3887+lynx(1)
3888 nvi(1)
3889+mutt(1)
3890 od(1)
3891 printf(3)
3892 profile(5)
3893@@ -47,7 +49,6 @@
3894 putchar(3)
3895 putwc(3)
3896 read(2)
3897-rogue(1)
3898 scanf(3)
3899 sh(1)
3900 sscanf(3)
3901Index: man/terminfo.head
3902Prereq:  1.36
3903--- ncurses-6.1-20190720+/man/terminfo.head	2019-07-13 23:17:33.000000000 +0000
3904+++ ncurses-6.1-20190727/man/terminfo.head	2019-07-27 11:51:04.000000000 +0000
3905@@ -26,7 +26,7 @@
3906 .\" authorization.                                                           *
3907 .\"***************************************************************************
3908 .\"
3909-.\" $Id: terminfo.head,v 1.36 2019/07/13 23:17:33 tom Exp $
3910+.\" $Id: terminfo.head,v 1.38 2019/07/27 11:51:04 tom Exp $
3911 .TH terminfo 5 "" "" "File Formats"
3912 .ds n 5
3913 .ds d @TERMINFO@
3914@@ -58,16 +58,23 @@
3915 \*d/*/*
3916 .SH DESCRIPTION
3917 .I Terminfo
3918-is a data base describing terminals, used by screen-oriented programs such as
3919+is a data base describing terminals,
3920+used by screen-oriented programs such as
3921 \fBnvi\fR(1),
3922-\fBrogue\fR(1)
3923-and libraries such as
3924-\fBcurses\fR(3X).
3925+\fBlynx\fR(1),
3926+\fBmutt\fR(1),
3927+and other curses applications,
3928+using high-level calls to libraries such as \fBcurses\fR(3X).
3929+It is also used via low-level calls by non-curses applications
3930+which may be screen-oriented (such as \fB@CLEAR@\fP(1))
3931+or non-screen (such as \fB@TABS@\fP(1)).
3932+.PP
3933 .I Terminfo
3934 describes terminals by giving a set of capabilities which they
3935 have, by specifying how to perform screen operations, and by
3936 specifying padding requirements and initialization sequences.
3937-This describes \fBncurses\fR
3938+.PP
3939+This manual describes \fBncurses\fR
3940 version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
3941 .SS Terminfo Entry Syntax
3942 .PP
3943Index: ncurses/tinfo/add_tries.c
3944Prereq:  1.10
3945--- ncurses-6.1-20190720+/ncurses/tinfo/add_tries.c	2010-12-19 01:31:14.000000000 +0000
3946+++ ncurses-6.1-20190727/ncurses/tinfo/add_tries.c	2019-07-27 22:59:11.000000000 +0000
3947@@ -1,5 +1,5 @@
3948 /****************************************************************************
3949- * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc.              *
3950+ * Copyright (c) 1998-2010,2019 Free Software Foundation, Inc.              *
3951  *                                                                          *
3952  * Permission is hereby granted, free of charge, to any person obtaining a  *
3953  * copy of this software and associated documentation files (the            *
3954@@ -39,7 +39,7 @@
3955
3956 #include <curses.priv.h>
3957
3958-MODULE_ID("$Id: add_tries.c,v 1.10 2010/12/19 01:31:14 tom Exp $")
3959+MODULE_ID("$Id: add_tries.c,v 1.11 2019/07/27 22:59:11 tom Exp $")
3960
3961 #define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0'
3962 #define CMP_TRY(a,b) ((a)? (a == b) : (b == 128))
3963@@ -109,6 +109,7 @@
3964 		savedptr = ptr->child;
3965 		free(ptr);
3966 	    }
3967+	    *tree = NULL;
3968 	    returnCode(ERR);
3969 	}
3970
3971Index: ncurses/tinfo/make_hash.c
3972Prereq:  1.27
3973--- ncurses-6.1-20190720+/ncurses/tinfo/make_hash.c	2019-07-20 20:14:46.000000000 +0000
3974+++ ncurses-6.1-20190727/ncurses/tinfo/make_hash.c	2019-07-27 23:06:54.000000000 +0000
3975@@ -43,7 +43,7 @@
3976
3977 #include <ctype.h>
3978
3979-MODULE_ID("$Id: make_hash.c,v 1.27 2019/07/20 20:14:46 tom Exp $")
3980+MODULE_ID("$Id: make_hash.c,v 1.28 2019/07/27 23:06:54 tom Exp $")
3981
3982 /*
3983  *	_nc_make_hash_table()
3984@@ -220,11 +220,17 @@
3985 static char *
3986 get_type(int type_mask)
3987 {
3988-    static char result[40];
3989+    static char result[80];
3990     unsigned n;
3991     _nc_STRCPY(result, L_PAREN, sizeof(result));
3992     for (n = 0; n < 3; ++n) {
3993 	if ((1 << n) & type_mask) {
3994+	    size_t want = 5 + strlen(typenames[n]);
3995+	    if (want > sizeof(result)) {
3996+		fprintf(stderr, "Buffer is not large enough for %s + %s\n",
3997+			result, typenames[n]);
3998+		exit(EXIT_FAILURE);
3999+	    }
4000 	    if (result[1])
4001 		_nc_STRCAT(result, "|", sizeof(result));
4002 	    _nc_STRCAT(result, "1<<", sizeof(result));
4003Index: package/debian-mingw/changelog
4004--- ncurses-6.1-20190720+/package/debian-mingw/changelog	2019-07-20 10:26:30.000000000 +0000
4005+++ ncurses-6.1-20190727/package/debian-mingw/changelog	2019-07-26 23:10:14.000000000 +0000
4006@@ -1,8 +1,8 @@
4007-ncurses6 (6.1+20190720) unstable; urgency=low
4008+ncurses6 (6.1+20190727) unstable; urgency=low
4009
4010   * latest weekly patch
4011
4012- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 20 Jul 2019 06:26:30 -0400
4013+ -- Thomas E. Dickey <dickey@invisible-island.net>  Fri, 26 Jul 2019 19:10:14 -0400
4014
4015 ncurses6 (5.9-20131005) unstable; urgency=low
4016
4017Index: package/debian-mingw64/changelog
4018--- ncurses-6.1-20190720+/package/debian-mingw64/changelog	2019-07-20 10:26:30.000000000 +0000
4019+++ ncurses-6.1-20190727/package/debian-mingw64/changelog	2019-07-26 23:10:14.000000000 +0000
4020@@ -1,8 +1,8 @@
4021-ncurses6 (6.1+20190720) unstable; urgency=low
4022+ncurses6 (6.1+20190727) unstable; urgency=low
4023
4024   * latest weekly patch
4025
4026- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 20 Jul 2019 06:26:30 -0400
4027+ -- Thomas E. Dickey <dickey@invisible-island.net>  Fri, 26 Jul 2019 19:10:14 -0400
4028
4029 ncurses6 (5.9-20131005) unstable; urgency=low
4030
4031Index: package/debian/changelog
4032--- ncurses-6.1-20190720+/package/debian/changelog	2019-07-20 10:26:30.000000000 +0000
4033+++ ncurses-6.1-20190727/package/debian/changelog	2019-07-26 23:10:14.000000000 +0000
4034@@ -1,8 +1,8 @@
4035-ncurses6 (6.1+20190720) unstable; urgency=low
4036+ncurses6 (6.1+20190727) unstable; urgency=low
4037
4038   * latest weekly patch
4039
4040- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 20 Jul 2019 06:26:30 -0400
4041+ -- Thomas E. Dickey <dickey@invisible-island.net>  Fri, 26 Jul 2019 19:10:14 -0400
4042
4043 ncurses6 (5.9-20120608) unstable; urgency=low
4044
4045Index: package/mingw-ncurses.nsi
4046Prereq:  1.342
4047--- ncurses-6.1-20190720+/package/mingw-ncurses.nsi	2019-07-20 10:26:30.000000000 +0000
4048+++ ncurses-6.1-20190727/package/mingw-ncurses.nsi	2019-07-26 23:10:14.000000000 +0000
4049@@ -1,4 +1,4 @@
4050-; $Id: mingw-ncurses.nsi,v 1.342 2019/07/20 10:26:30 tom Exp $
4051+; $Id: mingw-ncurses.nsi,v 1.343 2019/07/26 23:10:14 tom Exp $
4052
4053 ; TODO add examples
4054 ; TODO bump ABI to 6
4055@@ -10,7 +10,7 @@
4056 !define VERSION_MAJOR "6"
4057 !define VERSION_MINOR "1"
4058 !define VERSION_YYYY  "2019"
4059-!define VERSION_MMDD  "0720"
4060+!define VERSION_MMDD  "0727"
4061 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
4062
4063 !define MY_ABI   "5"
4064Index: package/mingw-ncurses.spec
4065--- ncurses-6.1-20190720+/package/mingw-ncurses.spec	2019-07-20 10:26:30.000000000 +0000
4066+++ ncurses-6.1-20190727/package/mingw-ncurses.spec	2019-07-26 23:10:14.000000000 +0000
4067@@ -3,7 +3,7 @@
4068 Summary: shared libraries for terminal handling
4069 Name: mingw32-ncurses6
4070 Version: 6.1
4071-Release: 20190720
4072+Release: 20190727
4073 License: X11
4074 Group: Development/Libraries
4075 Source: ncurses-%{version}-%{release}.tgz
4076Index: package/ncurses.spec
4077--- ncurses-6.1-20190720+/package/ncurses.spec	2019-07-20 10:26:30.000000000 +0000
4078+++ ncurses-6.1-20190727/package/ncurses.spec	2019-07-26 23:10:14.000000000 +0000
4079@@ -1,7 +1,7 @@
4080 Summary: shared libraries for terminal handling
4081 Name: ncurses6
4082 Version: 6.1
4083-Release: 20190720
4084+Release: 20190727
4085 License: X11
4086 Group: Development/Libraries
4087 Source: ncurses-%{version}-%{release}.tgz
4088Index: package/ncursest.spec
4089--- ncurses-6.1-20190720+/package/ncursest.spec	2019-07-20 10:26:30.000000000 +0000
4090+++ ncurses-6.1-20190727/package/ncursest.spec	2019-07-26 23:10:14.000000000 +0000
4091@@ -1,7 +1,7 @@
4092 Summary: Curses library with POSIX thread support.
4093 Name: ncursest6
4094 Version: 6.1
4095-Release: 20190720
4096+Release: 20190727
4097 License: X11
4098 Group: Development/Libraries
4099 Source: ncurses-%{version}-%{release}.tgz
4100Index: progs/ktrace.out
4101Binary files /dev/null and ncurses-6.1-20190727/progs/ktrace.out differ
4102Index: progs/tic.c
4103Prereq:  1.277
4104--- ncurses-6.1-20190720+/progs/tic.c	2019-06-29 23:23:22.000000000 +0000
4105+++ ncurses-6.1-20190727/progs/tic.c	2019-07-27 22:44:21.000000000 +0000
4106@@ -48,7 +48,7 @@
4107 #include <parametrized.h>
4108 #include <transform.h>
4109
4110-MODULE_ID("$Id: tic.c,v 1.277 2019/06/29 23:23:22 tom Exp $")
4111+MODULE_ID("$Id: tic.c,v 1.278 2019/07/27 22:44:21 tom Exp $")
4112
4113 #define STDIN_NAME "<stdin>"
4114
4115@@ -1024,10 +1024,14 @@
4116 		    if (!quiet) {
4117 			(void) fseek(tmp_fp, qp->cstart, SEEK_SET);
4118 			while (j-- > 0) {
4119-			    if (infodump)
4120-				(void) putchar(fgetc(tmp_fp));
4121-			    else
4122-				put_translate(fgetc(tmp_fp));
4123+			    int ch = fgetc(tmp_fp);
4124+			    if (ch == EOF || ferror(tmp_fp)) {
4125+				break;
4126+			    } else if (infodump) {
4127+				(void) putchar(ch);
4128+			    } else {
4129+				put_translate(ch);
4130+			    }
4131 			}
4132 		    }
4133
4134