xref: /freebsd/contrib/ncurses/announce.html.in (revision 21817992b3314c908ab50f0bb88d2ee750b9c4ac)
10e3d5408SPeter Wemm<!--
2*21817992SBaptiste Daroussin  $Id: announce.html.in,v 1.107 2024/04/27 16:45:27 tom Exp $
34a1a9510SRong-En Fan  ****************************************************************************
4*21817992SBaptiste Daroussin  * Copyright 2018-2023,2024 Thomas E. Dickey                                *
54a1a9510SRong-En Fan  *                                                                          *
64a1a9510SRong-En Fan  * Permission is hereby granted, free of charge, to any person obtaining a  *
74a1a9510SRong-En Fan  * copy of this software and associated documentation files (the            *
84a1a9510SRong-En Fan  * "Software"), to deal in the Software without restriction, including      *
94a1a9510SRong-En Fan  * without limitation the rights to use, copy, modify, merge, publish,      *
104a1a9510SRong-En Fan  * distribute, distribute with modifications, sublicense, and/or sell       *
114a1a9510SRong-En Fan  * copies of the Software, and to permit persons to whom the Software is    *
124a1a9510SRong-En Fan  * furnished to do so, subject to the following conditions:                 *
134a1a9510SRong-En Fan  *                                                                          *
144a1a9510SRong-En Fan  * The above copyright notice and this permission notice shall be included  *
154a1a9510SRong-En Fan  * in all copies or substantial portions of the Software.                   *
164a1a9510SRong-En Fan  *                                                                          *
174a1a9510SRong-En Fan  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
184a1a9510SRong-En Fan  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
194a1a9510SRong-En Fan  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
204a1a9510SRong-En Fan  * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
214a1a9510SRong-En Fan  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
224a1a9510SRong-En Fan  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
234a1a9510SRong-En Fan  * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
244a1a9510SRong-En Fan  *                                                                          *
254a1a9510SRong-En Fan  * Except as contained in this notice, the name(s) of the above copyright   *
264a1a9510SRong-En Fan  * holders shall not be used in advertising or otherwise to promote the     *
274a1a9510SRong-En Fan  * sale, use or other dealings in this Software without prior written       *
284a1a9510SRong-En Fan  * authorization.                                                           *
294a1a9510SRong-En Fan  ****************************************************************************
300e3d5408SPeter Wemm-->
3173f0a83dSXin LI<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
3206bfebdeSXin LI<html>
3306bfebdeSXin LI<head>
3406bfebdeSXin LI  <meta name="generator" content=
35*21817992SBaptiste Daroussin  "HTML Tidy for HTML5 for Linux version 5.6.0">
3606bfebdeSXin LI  <title>Announcing ncurses @VERSION@</title>
37e1865124SBaptiste Daroussin  <link rel="author" href="mailto:bug-ncurses@gnu.org">
3806bfebdeSXin LI  <meta http-equiv="Content-Type" content=
3906bfebdeSXin LI  "text/html; charset=us-ascii">
40aae38d10SBaptiste Daroussin  <style type="text/css">
41aae38d10SBaptiste Daroussin  p,li { max-width:700px; }
42aae38d10SBaptiste Daroussin  dd { max-width:630px; }
43aae38d10SBaptiste Daroussin  *.main-name {
44aae38d10SBaptiste Daroussin        font-style: italic;
45aae38d10SBaptiste Daroussin        font-variant: small-caps;
46aae38d10SBaptiste Daroussin  }
47aae38d10SBaptiste Daroussin  *.part-name {
48aae38d10SBaptiste Daroussin        font-family: "Andale Mono", "Monotype.com", monospace;
49aae38d10SBaptiste Daroussin        font-size: 12pt;
50aae38d10SBaptiste Daroussin        font-weight: bold;
51aae38d10SBaptiste Daroussin  }
52e1865124SBaptiste Daroussin  *.demo-name {
53e1865124SBaptiste Daroussin        font-family: "Andale Mono", "Monotype.com", monospace;
54e1865124SBaptiste Daroussin        font-size: 10pt;
55e1865124SBaptiste Daroussin  }
56aae38d10SBaptiste Daroussin  </style>
5706bfebdeSXin LI</head>
5806bfebdeSXin LI<body>
59aae38d10SBaptiste Daroussin  <h1 class="no-header">Announcing ncurses @VERSION@</h1>
6073f0a83dSXin LI
61aae38d10SBaptiste Daroussin  <h2><a name="h2-overview" id="h2-overview">Overview</a></h2>
62aae38d10SBaptiste Daroussin
63aae38d10SBaptiste Daroussin  <p>The <span class="main-name">ncurses</span> (new curses)
64aae38d10SBaptiste Daroussin  library is a free software emulation of curses in System V
65aae38d10SBaptiste Daroussin  Release 4.0 (SVr4), and more. It uses terminfo format, supports
66aae38d10SBaptiste Daroussin  pads and color and multiple highlights and forms characters and
67aae38d10SBaptiste Daroussin  function-key mapping, and has all the other SVr4-curses
68aae38d10SBaptiste Daroussin  enhancements over BSD curses. SVr4 curses became the basis of
69aae38d10SBaptiste Daroussin  X/Open Curses.</p>
700e3d5408SPeter Wemm
7106bfebdeSXin LI  <p>In mid-June 1995, the maintainer of 4.4BSD curses declared
7206bfebdeSXin LI  that he considered 4.4BSD curses obsolete, and encouraged the
73aae38d10SBaptiste Daroussin  keepers of <span class="main-name">unix</span> releases such as
74aae38d10SBaptiste Daroussin  BSD/OS, FreeBSD and NetBSD to switch over to <span class=
75aae38d10SBaptiste Daroussin  "main-name">ncurses</span>.</p>
760e3d5408SPeter Wemm
77aae38d10SBaptiste Daroussin  <p>Since 1995, <span class="main-name">ncurses</span> has been
78aae38d10SBaptiste Daroussin  ported to many systems:</p>
79aae38d10SBaptiste Daroussin
80aae38d10SBaptiste Daroussin  <ul>
81aae38d10SBaptiste Daroussin    <li>It is used in almost every system based on the Linux kernel
82aae38d10SBaptiste Daroussin    (aside from some embedded applications).</li>
83aae38d10SBaptiste Daroussin
84aae38d10SBaptiste Daroussin    <li>It is used as the system curses library on OpenBSD, FreeBSD
85e1865124SBaptiste Daroussin    and MacOS.</li>
86aae38d10SBaptiste Daroussin
87aae38d10SBaptiste Daroussin    <li>It is used in environments such as Cygwin and MinGW. The
88aae38d10SBaptiste Daroussin    first of these was EMX on OS/2 Warp.</li>
89aae38d10SBaptiste Daroussin
90aae38d10SBaptiste Daroussin    <li>It is used (though usually not as the <em>system</em>
91aae38d10SBaptiste Daroussin    curses) on all of the vendor <span class=
92aae38d10SBaptiste Daroussin    "main-name">unix</span> systems, e.g., AIX, HP-UX, IRIX64, SCO,
93aae38d10SBaptiste Daroussin    Solaris, Tru64.</li>
94aae38d10SBaptiste Daroussin
95aae38d10SBaptiste Daroussin    <li>It should work readily on any ANSI/POSIX-conforming
96aae38d10SBaptiste Daroussin    <span class="main-name">unix</span>.</li>
97aae38d10SBaptiste Daroussin  </ul>
980e3d5408SPeter Wemm
9906bfebdeSXin LI  <p>The distribution includes the library and support utilities,
100aae38d10SBaptiste Daroussin  including</p>
10173f0a83dSXin LI
1020e3d5408SPeter Wemm  <ul>
103e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/man/captoinfo.1m.html"><span class=
104e1865124SBaptiste Daroussin    "part-name">captoinfo</span></a>, a termcap conversion
105e1865124SBaptiste Daroussin    tool</li>
10673f0a83dSXin LI
107e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/man/clear.1.html"><span class=
108e1865124SBaptiste Daroussin    "part-name">clear</span></a>, utility for clearing the
109e1865124SBaptiste Daroussin    screen</li>
11073f0a83dSXin LI
111e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/man/infocmp.1m.html"><span class=
112e1865124SBaptiste Daroussin    "part-name">infocmp</span></a>, the terminfo decompiler</li>
113aae38d10SBaptiste Daroussin
114e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/man/tabs.1.html"><span class=
115e1865124SBaptiste Daroussin    "part-name">tabs</span></a>, set tabs on a terminal</li>
116aae38d10SBaptiste Daroussin
117e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/man/tic.1m.html"><span class=
118e1865124SBaptiste Daroussin    "part-name">tic</span></a>, the terminfo compiler</li>
119aae38d10SBaptiste Daroussin
120e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/man/toe.1m.html"><span class=
121e1865124SBaptiste Daroussin    "part-name">toe</span></a>, list (table of) terminfo
122e1865124SBaptiste Daroussin    entries</li>
123aae38d10SBaptiste Daroussin
124e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/man/tput.1.html"><span class=
125e1865124SBaptiste Daroussin    "part-name">tput</span></a>, utility for retrieving terminal
126e1865124SBaptiste Daroussin    capabilities in shell scripts</li>
127aae38d10SBaptiste Daroussin
128e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/man/tset.1.html"><span class=
129e1865124SBaptiste Daroussin    "part-name">tset</span></a>, to initialize the terminal</li>
130aae38d10SBaptiste Daroussin  </ul>
131aae38d10SBaptiste Daroussin
132aae38d10SBaptiste Daroussin  <p>Full manual pages are provided for the library and tools.</p>
133aae38d10SBaptiste Daroussin
134aae38d10SBaptiste Daroussin  <p>The <span class="main-name">ncurses</span> distribution is
135aae38d10SBaptiste Daroussin  available at <span class="main-name">ncurses</span>' <a href=
136e1865124SBaptiste Daroussin  "@HOMEPAGE@/">homepage</a>:</p>
137aae38d10SBaptiste Daroussin
138aae38d10SBaptiste Daroussin  <blockquote>
139aae38d10SBaptiste Daroussin    <p><a href=
140*21817992SBaptiste Daroussin    "https://invisible-island.net/archives/ncurses/">https://invisible-island.net/archives/ncurses/</a>
141aae38d10SBaptiste Daroussin    or<br>
142aae38d10SBaptiste Daroussin    <a href=
143aae38d10SBaptiste Daroussin    "https://invisible-mirror.net/archives/ncurses/">https://invisible-mirror.net/archives/ncurses/</a>&nbsp;.</p>
144aae38d10SBaptiste Daroussin  </blockquote>
145aae38d10SBaptiste Daroussin
146*21817992SBaptiste Daroussin  <p>It is also available at the GNU distribution site</p>
147aae38d10SBaptiste Daroussin
148aae38d10SBaptiste Daroussin  <blockquote>
149aae38d10SBaptiste Daroussin    <p><a href=
150*21817992SBaptiste Daroussin    "https://ftp.gnu.org/gnu/ncurses/">https://ftp.gnu.org/gnu/ncurses/</a>&nbsp;.</p>
151aae38d10SBaptiste Daroussin  </blockquote>
152aae38d10SBaptiste Daroussin
153aae38d10SBaptiste Daroussin  <h2><a name="h2-release-notes" id="h2-release-notes">Release
154aae38d10SBaptiste Daroussin  Notes</a></h2>
155aae38d10SBaptiste Daroussin
156aae38d10SBaptiste Daroussin  <p>These notes are for <span class="main-name">ncurses</span>
157*21817992SBaptiste Daroussin  @VERSION@, released <strong>April 27, 2024</strong>.</p>
158aae38d10SBaptiste Daroussin
159aae38d10SBaptiste Daroussin  <p>This release is designed to be source-compatible with
160*21817992SBaptiste Daroussin  <span class="main-name">ncurses</span> 5.0 through 6.4; providing
161aae38d10SBaptiste Daroussin  extensions to the application binary interface (ABI). Although
162aae38d10SBaptiste Daroussin  the source can still be configured to support the <span class=
163e1865124SBaptiste Daroussin  "main-name">ncurses</span> 5 ABI, the reason for the release is
164e1865124SBaptiste Daroussin  to reflect improvements to the <span class=
165e1865124SBaptiste Daroussin  "main-name">ncurses</span> 6 ABI and the supporting utility
166e1865124SBaptiste Daroussin  programs.</p>
1670e3d5408SPeter Wemm
168aae38d10SBaptiste Daroussin  <p>There are, of course, numerous other improvements, listed in
169aae38d10SBaptiste Daroussin  this announcement.</p>
17073f0a83dSXin LI
171e1865124SBaptiste Daroussin  <p>The most <a href="#h3-bug-fixes">important
172*21817992SBaptiste Daroussin  bug-fixes/improvements</a> dealt with robustness issues. The
173*21817992SBaptiste Daroussin  release notes also mention some other bug-fixes, but are focused
174*21817992SBaptiste Daroussin  on new features and improvements to existing features since
175*21817992SBaptiste Daroussin  <span class="main-name">ncurses</span> 6.4 release.</p>
176aae38d10SBaptiste Daroussin
177e1865124SBaptiste Daroussin  <h3><a name="h3-library" id="h3-library">Library improvements</a></h3>
178aae38d10SBaptiste Daroussin
179e1865124SBaptiste Daroussin  <h4><a name="h4-new-library" id="h4-new-library">New features</a></h4>
180aae38d10SBaptiste Daroussin
181*21817992SBaptiste Daroussin  <p>These are new features:</p>
18206bfebdeSXin LI
18315589c42SPeter Wemm  <ul>
184aae38d10SBaptiste Daroussin    <li>
185*21817992SBaptiste Daroussin      <p>The low-level terminfo and termcap interfaces are used
186*21817992SBaptiste Daroussin      both by the higher-level curses library, as well as by many
187*21817992SBaptiste Daroussin      applications.</p>
1887a69bbfbSPeter Wemm
189*21817992SBaptiste Daroussin      <p>The functions which convert parameterized terminal
190*21817992SBaptiste Daroussin      capability strings for output to the terminal
191*21817992SBaptiste Daroussin      (<code>tiparm</code> and <code>tparm</code>) analyze the
192*21817992SBaptiste Daroussin      capability string to determine which parameters are strings
193*21817992SBaptiste Daroussin      (i.e., addresses), versus numbers (not addresses).</p>
1940e3d5408SPeter Wemm
195*21817992SBaptiste Daroussin      <p>The library's analysis of a capability string may differ
196*21817992SBaptiste Daroussin      from the calling application's design if environment
197*21817992SBaptiste Daroussin      variables are used to point to an invalid terminal database.
198*21817992SBaptiste Daroussin      This is a longstanding problem with <em>all</em>
199*21817992SBaptiste Daroussin      implementations of terminfo, dating from the early 1980s.</p>
2000e3d5408SPeter Wemm
201*21817992SBaptiste Daroussin      <p>Two new functions address this problem: by providing a
202*21817992SBaptiste Daroussin      function which allows the calling application to tell ncurses
203*21817992SBaptiste Daroussin      how many string-parameters to expect:</p>
20473f0a83dSXin LI
205aae38d10SBaptiste Daroussin      <ul>
206*21817992SBaptiste Daroussin        <li><code>tiscan_s</code> helps applications check
207*21817992SBaptiste Daroussin        formatting capabilities that would be passed to
208*21817992SBaptiste Daroussin        <code>tiparm_s</code>.</li>
20906bfebdeSXin LI
210*21817992SBaptiste Daroussin        <li><code>tiparm_s</code> provides applications a way to
211*21817992SBaptiste Daroussin        tell ncurses what the expected parameters are for a
212*21817992SBaptiste Daroussin        capability.</li>
213e1865124SBaptiste Daroussin      </ul>
214aae38d10SBaptiste Daroussin    </li>
215*21817992SBaptiste Daroussin
216*21817992SBaptiste Daroussin    <li>
217*21817992SBaptiste Daroussin      <p>The ncurses library supports a compile-time feature
218*21817992SBaptiste Daroussin      (enabled with the configure <code>--enable-check-size</code>
219*21817992SBaptiste Daroussin      option) which simplifies initialization with terminals which
220*21817992SBaptiste Daroussin      do not negotiate window (screen) size. This is done in
221*21817992SBaptiste Daroussin      <code>setupterm</code>, by providing for using ANSI
222*21817992SBaptiste Daroussin      cursor-position report (in user6/user7 terminfo capabilities)
223*21817992SBaptiste Daroussin      to obtain the screen size if neither environment variables or
224*21817992SBaptiste Daroussin      ioctl is used.</p>
225*21817992SBaptiste Daroussin
226*21817992SBaptiste Daroussin      <p>The ncurses test-program with options
227*21817992SBaptiste Daroussin      &ldquo;<code>-E&nbsp;-T</code>&rdquo; demonstrates this
228*21817992SBaptiste Daroussin      feature.</p>
229*21817992SBaptiste Daroussin    </li>
230*21817992SBaptiste Daroussin
231*21817992SBaptiste Daroussin    <li>add functions to query tty-flags in
232*21817992SBaptiste Daroussin    <code>SCREEN</code></li>
233aae38d10SBaptiste Daroussin  </ul>
234aae38d10SBaptiste Daroussin
235*21817992SBaptiste Daroussin  <p>This release drops compatibility with obsolete versions of
236*21817992SBaptiste Daroussin  <a href="@HOMEPAGE@/tack/">tack</a>, e.g., pre-1.08</p>
237*21817992SBaptiste Daroussin
238aae38d10SBaptiste Daroussin  <h4><a name="h4-fixes-library" id="h4-fixes-library">Other
239aae38d10SBaptiste Daroussin  improvements</a></h4>
240aae38d10SBaptiste Daroussin
241aae38d10SBaptiste Daroussin  <p>These are improvements to existing features:</p>
242aae38d10SBaptiste Daroussin
243aae38d10SBaptiste Daroussin  <ul>
244aae38d10SBaptiste Daroussin    <li>
245*21817992SBaptiste Daroussin      <p>In addition to the new, safer function
246*21817992SBaptiste Daroussin      <code>tiparm_s</code>, ncurses adds checks to make the older
247*21817992SBaptiste Daroussin      <code>tiparm</code>, <code>tparm</code> and
248*21817992SBaptiste Daroussin      <code>tgoto</code> functions safer:</p>
249aae38d10SBaptiste Daroussin
250aae38d10SBaptiste Daroussin      <ul>
251aae38d10SBaptiste Daroussin        <li>
252*21817992SBaptiste Daroussin          <p>the terminfo functions <code>tiparm</code> and
253*21817992SBaptiste Daroussin          <code>tparm</code> ensure that the capability string
254*21817992SBaptiste Daroussin          comes from the terminal description which ncurses loads,
255*21817992SBaptiste Daroussin          rather than from random data which the application
256*21817992SBaptiste Daroussin          happens to have.</p>
257aae38d10SBaptiste Daroussin        </li>
258aae38d10SBaptiste Daroussin
259aae38d10SBaptiste Daroussin        <li>
260*21817992SBaptiste Daroussin          <p>the <code>tgoto</code> function disallows capabilities
261*21817992SBaptiste Daroussin          which its analysis shows will attempt to use string
262*21817992SBaptiste Daroussin          parameters.</p>
263*21817992SBaptiste Daroussin        </li>
264*21817992SBaptiste Daroussin
265*21817992SBaptiste Daroussin        <li>
266*21817992SBaptiste Daroussin          <p>ncurses uses internal functions which correspond to
267*21817992SBaptiste Daroussin          <code>tiparm</code>, and <code>tgoto</code> which ensure
268*21817992SBaptiste Daroussin          that the capability strings which are passed to these
269*21817992SBaptiste Daroussin          functions come from the loaded terminal description.</p>
270aae38d10SBaptiste Daroussin        </li>
271aae38d10SBaptiste Daroussin      </ul>
272aae38d10SBaptiste Daroussin    </li>
273aae38d10SBaptiste Daroussin
274aae38d10SBaptiste Daroussin    <li>
275*21817992SBaptiste Daroussin      <p>improve check in <code>lib_tparm.c</code>, ensuring that a
276*21817992SBaptiste Daroussin      char* fits into a <code>TPARM_ARG</code></p>
277aae38d10SBaptiste Daroussin    </li>
278aae38d10SBaptiste Daroussin
279aae38d10SBaptiste Daroussin    <li>
280*21817992SBaptiste Daroussin      <p>modify <code>_nc_syserr_abort</code> to use
281*21817992SBaptiste Daroussin      <code>_nc_env_access</code>, rather than only checking root
282*21817992SBaptiste Daroussin      uid</p>
283aae38d10SBaptiste Daroussin    </li>
284aae38d10SBaptiste Daroussin
285aae38d10SBaptiste Daroussin    <li>
286*21817992SBaptiste Daroussin      <p>improve thread lock in <code>lib_trace.c</code></p>
287*21817992SBaptiste Daroussin    </li>
288*21817992SBaptiste Daroussin
289*21817992SBaptiste Daroussin    <li>
290*21817992SBaptiste Daroussin      <p>modify <code>flushinp</code> to use file descriptors in
291*21817992SBaptiste Daroussin      <code>SCREEN</code>, rather than from <code>TERMINAL</code>,
292*21817992SBaptiste Daroussin      and check if they are for a terminal, like SVr4</p>
293*21817992SBaptiste Daroussin    </li>
294*21817992SBaptiste Daroussin
295*21817992SBaptiste Daroussin    <li>
296*21817992SBaptiste Daroussin      <p>modify <code>mcprint</code> to use file descriptor in
297*21817992SBaptiste Daroussin      <code>SCREEN</code>, for consistency</p>
298*21817992SBaptiste Daroussin    </li>
299*21817992SBaptiste Daroussin
300*21817992SBaptiste Daroussin    <li>
301*21817992SBaptiste Daroussin      <p>modify internal function <code>_nc_read_file_entry</code>
302*21817992SBaptiste Daroussin      to show relevant filename in warnings</p>
303*21817992SBaptiste Daroussin    </li>
304*21817992SBaptiste Daroussin
305*21817992SBaptiste Daroussin    <li>
306*21817992SBaptiste Daroussin      <p>improve checks in internal function
307*21817992SBaptiste Daroussin      <code>convert_string</code> for corrupt terminfo entry</p>
308*21817992SBaptiste Daroussin    </li>
309*21817992SBaptiste Daroussin
310*21817992SBaptiste Daroussin    <li>
311*21817992SBaptiste Daroussin      <p>review/improve handling of out-of-memory conditions</p>
312*21817992SBaptiste Daroussin    </li>
313*21817992SBaptiste Daroussin
314*21817992SBaptiste Daroussin    <li>
315*21817992SBaptiste Daroussin      <p>limit delays to 30 seconds, i.e., padding delays in
316*21817992SBaptiste Daroussin      terminfo, as well as <code>napms</code> and
317*21817992SBaptiste Daroussin      <code>delay_output</code> functions</p>
318*21817992SBaptiste Daroussin    </li>
319*21817992SBaptiste Daroussin
320*21817992SBaptiste Daroussin    <li>
321*21817992SBaptiste Daroussin      <p>fix reallocation loop for <code>vsnprintf</code> in
322*21817992SBaptiste Daroussin      <code>_nc_sprintf_string</code> by copying the va_list
323*21817992SBaptiste Daroussin      variable</p>
324*21817992SBaptiste Daroussin    </li>
325*21817992SBaptiste Daroussin
326*21817992SBaptiste Daroussin    <li>
327*21817992SBaptiste Daroussin      <p>modify <code>delscreen</code> to limit the windows which
328*21817992SBaptiste Daroussin      it creates to just those associated with the screen</p>
329*21817992SBaptiste Daroussin    </li>
330*21817992SBaptiste Daroussin
331*21817992SBaptiste Daroussin    <li>
332*21817992SBaptiste Daroussin      <p>modify <code>endwin</code> to return an error if it is
333*21817992SBaptiste Daroussin      called again without an intervening screen update</p>
334*21817992SBaptiste Daroussin    </li>
335*21817992SBaptiste Daroussin
336*21817992SBaptiste Daroussin    <li>
337*21817992SBaptiste Daroussin      <p>modify <code>wenclose</code> to handle pads</p>
338*21817992SBaptiste Daroussin    </li>
339*21817992SBaptiste Daroussin
340*21817992SBaptiste Daroussin    <li>
341*21817992SBaptiste Daroussin      <p>eliminate use of <code>PATH_MAX</code> in
342*21817992SBaptiste Daroussin      <code>lib_trace.c</code></p>
343*21817992SBaptiste Daroussin    </li>
344*21817992SBaptiste Daroussin
345*21817992SBaptiste Daroussin    <li>
346*21817992SBaptiste Daroussin      <p>provide for any <code>CCHARW_MAX</code> greater than 1</p>
347aae38d10SBaptiste Daroussin    </li>
348aae38d10SBaptiste Daroussin  </ul>
349aae38d10SBaptiste Daroussin
350aae38d10SBaptiste Daroussin  <p>These are corrections to existing features:</p>
351aae38d10SBaptiste Daroussin
352aae38d10SBaptiste Daroussin  <ul>
353aae38d10SBaptiste Daroussin    <li>
354*21817992SBaptiste Daroussin      <p>correct loop termination condition in
355*21817992SBaptiste Daroussin      <code>waddnstr</code> and <code>waddnwstr</code></p>
356aae38d10SBaptiste Daroussin    </li>
357aae38d10SBaptiste Daroussin
358aae38d10SBaptiste Daroussin    <li>
359*21817992SBaptiste Daroussin      <p>improve parsing in internal function
360*21817992SBaptiste Daroussin      <code>_nc_msec_cost</code>, allowing a single decimal
361*21817992SBaptiste Daroussin      point</p>
362aae38d10SBaptiste Daroussin    </li>
363aae38d10SBaptiste Daroussin
364aae38d10SBaptiste Daroussin    <li>
365*21817992SBaptiste Daroussin      <p>amend parameter check for entire string versus specific
366*21817992SBaptiste Daroussin      length in <code>winsnstr</code> and <code>wins_nwstr</code>
367*21817992SBaptiste Daroussin      to match Solaris; make similar correction to
368*21817992SBaptiste Daroussin      <code>wins_nwstr</code></p>
369aae38d10SBaptiste Daroussin    </li>
370aae38d10SBaptiste Daroussin
371aae38d10SBaptiste Daroussin    <li>
372*21817992SBaptiste Daroussin      <p>correct internal function <code>wadd_wch_literal</code>
373*21817992SBaptiste Daroussin      when adding a non-spacing character to a double-width
374*21817992SBaptiste Daroussin      character</p>
375aae38d10SBaptiste Daroussin    </li>
376aae38d10SBaptiste Daroussin
377aae38d10SBaptiste Daroussin    <li>
378*21817992SBaptiste Daroussin      <p>correct definition of <code>Charable</code> macro for
379*21817992SBaptiste Daroussin      non-wide ncurses library .</p>
380aae38d10SBaptiste Daroussin    </li>
381aae38d10SBaptiste Daroussin  </ul>
382aae38d10SBaptiste Daroussin
383aae38d10SBaptiste Daroussin  <h3><a name="h3-programs" id="h3-programs">Program
384aae38d10SBaptiste Daroussin  improvements</a></h3>
385aae38d10SBaptiste Daroussin
386*21817992SBaptiste Daroussin  <p id="h4-utilities">Several improvements were made to the
387*21817992SBaptiste Daroussin  utility programs. Some were done to make the <code>infocmp</code>
388*21817992SBaptiste Daroussin  option &ldquo;<tt>-u</tt>&rdquo; option help refactor the
389*21817992SBaptiste Daroussin  terminal database.</p>
390aae38d10SBaptiste Daroussin
391e1865124SBaptiste Daroussin  <dl>
392*21817992SBaptiste Daroussin    <dt><span class="part-name"><a href=
393*21817992SBaptiste Daroussin    "@HOMEPAGE@/man/infocmp.1m.html">infocmp</a></span>
394e1865124SBaptiste Daroussin    </dt>
395e1865124SBaptiste Daroussin
396e1865124SBaptiste Daroussin    <dd>
397aae38d10SBaptiste Daroussin      <ul>
398*21817992SBaptiste Daroussin        <li>
399*21817992SBaptiste Daroussin          <p>add limit checks for processing extended capabilities
400*21817992SBaptiste Daroussin          with the &ldquo;<code>-u</code>&rdquo; option</p>
401*21817992SBaptiste Daroussin        </li>
402*21817992SBaptiste Daroussin
403*21817992SBaptiste Daroussin        <li>
404*21817992SBaptiste Daroussin          <p>correct initial alignment of extended capabilities, so
405*21817992SBaptiste Daroussin          that the &ldquo;<code>-u</code>&rdquo; option can be used
406*21817992SBaptiste Daroussin          for more than two terminal types</p>
407*21817992SBaptiste Daroussin        </li>
408*21817992SBaptiste Daroussin
409*21817992SBaptiste Daroussin        <li>
410*21817992SBaptiste Daroussin          <p>modify &ldquo;<code>-u</code>&rdquo; option to not
411*21817992SBaptiste Daroussin          report cancels for strings which were already cancelled
412*21817992SBaptiste Daroussin          in a use'd chunk.</p>
413*21817992SBaptiste Daroussin        </li>
414*21817992SBaptiste Daroussin
415*21817992SBaptiste Daroussin        <li>
416*21817992SBaptiste Daroussin          <p>correct an assignment &ldquo;<code>-u</code>&rdquo;
417*21817992SBaptiste Daroussin          for detecting if a boolean is unset in a base entry and
418*21817992SBaptiste Daroussin          set in a use'd chunk, i.e., if it was cancelled.</p>
419*21817992SBaptiste Daroussin        </li>
420aae38d10SBaptiste Daroussin      </ul>
421e1865124SBaptiste Daroussin    </dd>
422aae38d10SBaptiste Daroussin
423*21817992SBaptiste Daroussin    <dt><span class="part-name"><a href=
424*21817992SBaptiste Daroussin    "@HOMEPAGE@/man/tic.1m.html">tic</a></span>
425e1865124SBaptiste Daroussin    </dt>
426aae38d10SBaptiste Daroussin
427e1865124SBaptiste Daroussin    <dd>
428aae38d10SBaptiste Daroussin      <ul>
429*21817992SBaptiste Daroussin        <li>
430*21817992SBaptiste Daroussin          <p>correct limit-check when dumping tc/use clause via
431*21817992SBaptiste Daroussin          &ldquo;<code>-I</code>&rdquo;</p>
432*21817992SBaptiste Daroussin        </li>
433*21817992SBaptiste Daroussin
434*21817992SBaptiste Daroussin        <li>
435*21817992SBaptiste Daroussin          <p>check return value of <code>_nc_save_str</code>, in
436*21817992SBaptiste Daroussin          special case where extended capabilities are processed
437*21817992SBaptiste Daroussin          but the terminal description was not initialized</p>
438*21817992SBaptiste Daroussin        </li>
439*21817992SBaptiste Daroussin
440*21817992SBaptiste Daroussin        <li>
441*21817992SBaptiste Daroussin          <p>modify check for multiply defined aliases to report
442*21817992SBaptiste Daroussin          problems within the current runtime rather than for
443*21817992SBaptiste Daroussin          conflicts with pre-existing terminal descriptions.</p>
444*21817992SBaptiste Daroussin        </li>
445*21817992SBaptiste Daroussin
446*21817992SBaptiste Daroussin        <li>
447*21817992SBaptiste Daroussin          <p>disallow using <code>$TERMINFO</code> or
448*21817992SBaptiste Daroussin          <code>$HOME/.terminfo</code> when
449*21817992SBaptiste Daroussin          &ldquo;<code>-o</code>&rdquo; option is used</p>
450*21817992SBaptiste Daroussin        </li>
451aae38d10SBaptiste Daroussin      </ul>
452e1865124SBaptiste Daroussin    </dd>
453aae38d10SBaptiste Daroussin
454*21817992SBaptiste Daroussin    <dt><span class="part-name"><a href=
455*21817992SBaptiste Daroussin    "@HOMEPAGE@/man/tput.1.html">tput</a></span> and <span class=
456*21817992SBaptiste Daroussin    "part-name"><a href=
457*21817992SBaptiste Daroussin    "@HOMEPAGE@/man/tset.1.html">tset</a></span></dt>
458aae38d10SBaptiste Daroussin
459e1865124SBaptiste Daroussin    <dd>
460aae38d10SBaptiste Daroussin      <ul>
461*21817992SBaptiste Daroussin        <li>
462*21817992SBaptiste Daroussin          <p>add &ldquo;<code>-v</code>&rdquo; option to tput, to
463*21817992SBaptiste Daroussin          show warnings</p>
464*21817992SBaptiste Daroussin        </li>
465aae38d10SBaptiste Daroussin
466*21817992SBaptiste Daroussin        <li>
467*21817992SBaptiste Daroussin          <p>modify <em>reset</em> command to avoid altering clocal
468*21817992SBaptiste Daroussin          if the terminal uses a modem</p>
469*21817992SBaptiste Daroussin        </li>
470aae38d10SBaptiste Daroussin
471*21817992SBaptiste Daroussin        <li>
472*21817992SBaptiste Daroussin          <p>modify <em>reset</em> feature to avoid 1-second sleep
473*21817992SBaptiste Daroussin          if running in a pseudo-terminal</p>
474*21817992SBaptiste Daroussin        </li>
475e1865124SBaptiste Daroussin      </ul>
476e1865124SBaptiste Daroussin    </dd>
477e1865124SBaptiste Daroussin  </dl>
478e1865124SBaptiste Daroussin
479aae38d10SBaptiste Daroussin  <h4><a name="h4-examples" id="h4-examples">Examples</a></h4>
480aae38d10SBaptiste Daroussin
481e1865124SBaptiste Daroussin  <p>Along with the library and utilities, improvements were made
482e1865124SBaptiste Daroussin  to the <a href=
483*21817992SBaptiste Daroussin  "@HOMEPAGE@/ncurses-examples.html">ncurses-examples</a>:</p>
484aae38d10SBaptiste Daroussin
485aae38d10SBaptiste Daroussin  <ul>
486aae38d10SBaptiste Daroussin    <li>
487*21817992SBaptiste Daroussin      <p>modify <code>test_tparm</code> to account for extended
488*21817992SBaptiste Daroussin      capabilities</p>
489aae38d10SBaptiste Daroussin    </li>
490aae38d10SBaptiste Daroussin
491aae38d10SBaptiste Daroussin    <li>
492*21817992SBaptiste Daroussin      <p>corrected mouse mask in <code>test/testcurs.c</code></p>
493aae38d10SBaptiste Daroussin    </li>
494aae38d10SBaptiste Daroussin
495aae38d10SBaptiste Daroussin    <li>
496*21817992SBaptiste Daroussin      <p>modify <code>test/clip_printw.c</code> to optionally test
497*21817992SBaptiste Daroussin      non-wrapped updates</p>
498e1865124SBaptiste Daroussin    </li>
499aae38d10SBaptiste Daroussin
500e1865124SBaptiste Daroussin    <li>
501*21817992SBaptiste Daroussin      <p>modify <code>test/test_mouse.c</code> to use curses api
502*21817992SBaptiste Daroussin      for raw/noraw</p>
503e1865124SBaptiste Daroussin    </li>
504aae38d10SBaptiste Daroussin
505e1865124SBaptiste Daroussin    <li>
506*21817992SBaptiste Daroussin      <p>modify <code>test/clip_printw.c</code> to optionally test
507*21817992SBaptiste Daroussin      non-wrapped updates</p>
508aae38d10SBaptiste Daroussin    </li>
509aae38d10SBaptiste Daroussin  </ul>
510aae38d10SBaptiste Daroussin
511*21817992SBaptiste Daroussin  <p>There is one new demo/test programs:</p>
512aae38d10SBaptiste Daroussin
513e1865124SBaptiste Daroussin  <dl>
514*21817992SBaptiste Daroussin    <dt><span class="part-name"><em>test/test_endwin.c</em></span>
515e1865124SBaptiste Daroussin    </dt>
516aae38d10SBaptiste Daroussin
517*21817992SBaptiste Daroussin    <dd>
518*21817992SBaptiste Daroussin      <p>This program shows the return-status from
519*21817992SBaptiste Daroussin      <code>endwin</code> with different combinations of
520*21817992SBaptiste Daroussin      <code>endwin</code> (repeated), <code>initscr</code>,
521*21817992SBaptiste Daroussin      <code>newterm</code>.</p>
522*21817992SBaptiste Daroussin    </dd>
523e1865124SBaptiste Daroussin  </dl>
524aae38d10SBaptiste Daroussin
525e1865124SBaptiste Daroussin  <h3><a name="h3-database" id="h3-database">Terminal database</a></h3>
526aae38d10SBaptiste Daroussin
527aae38d10SBaptiste Daroussin  <p>There are several new terminal descriptions:</p>
528aae38d10SBaptiste Daroussin
529*21817992SBaptiste Daroussin  <ul>
530*21817992SBaptiste Daroussin    <li>
531*21817992SBaptiste Daroussin      <p><a href=
532*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-ansi_apparrows"><tt>ansi+apparrows</tt></a></p>
533*21817992SBaptiste Daroussin    </li>
534*21817992SBaptiste Daroussin
535*21817992SBaptiste Daroussin    <li>
536*21817992SBaptiste Daroussin      <p><a href=
537*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-contour"><tt>contour</tt></a></p>
538*21817992SBaptiste Daroussin    </li>
539*21817992SBaptiste Daroussin
540*21817992SBaptiste Daroussin    <li>
541*21817992SBaptiste Daroussin      <p><a href=
542*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-linux_kbs"><tt>linux+kbs</tt></a>
543*21817992SBaptiste Daroussin      for terminals which imitate xterm's behavior with Linux</p>
544*21817992SBaptiste Daroussin    </li>
545*21817992SBaptiste Daroussin
546*21817992SBaptiste Daroussin    <li>
547*21817992SBaptiste Daroussin      <p><a href=
548*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-rio"><tt>rio</tt></a>,
549*21817992SBaptiste Daroussin      <a href=
550*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-rio-direct"><tt>rio-direct</tt></a></p>
551*21817992SBaptiste Daroussin    </li>
552*21817992SBaptiste Daroussin
553*21817992SBaptiste Daroussin    <li>
554*21817992SBaptiste Daroussin      <p><a href=
555*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-mostlike"><tt>mostlike</tt></a></p>
556*21817992SBaptiste Daroussin    </li>
557*21817992SBaptiste Daroussin
558*21817992SBaptiste Daroussin    <li>
559*21817992SBaptiste Daroussin      <p><a href=
560*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-ms-vt100-16color"><tt>ms-vt100-16color</tt></a>,
561*21817992SBaptiste Daroussin      <a href=
562*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-winconsole"><tt>winconsole</tt></a></p>
563*21817992SBaptiste Daroussin    </li>
564*21817992SBaptiste Daroussin
565*21817992SBaptiste Daroussin    <li>
566*21817992SBaptiste Daroussin      <p><a href=
567*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-vt100_noapp"><tt>vt100+noapp</tt></a>,
568*21817992SBaptiste Daroussin      <a href=
569*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-vt100_noapp_pc"><tt>vt100+noapp+pc</tt></a>,
570*21817992SBaptiste Daroussin      <a href=
571*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-xterm_app_pc"><tt>xterm+app+pc</tt></a>,
572*21817992SBaptiste Daroussin      <a href=
573*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-xterm_decedit"><tt>xterm+decedit</tt></a>
574*21817992SBaptiste Daroussin      from <a href="@WEBSITE@/xterm/xterm.log.html#xterm_389">xterm
575*21817992SBaptiste Daroussin      #389</a></p>
576*21817992SBaptiste Daroussin    </li>
577*21817992SBaptiste Daroussin
578*21817992SBaptiste Daroussin    <li>
579*21817992SBaptiste Daroussin      <p><a href=
580*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-putty_cursor"><tt>putty+cursor</tt></a>
581*21817992SBaptiste Daroussin      to reflect amending of modified cursor-keys in 2021</p>
582*21817992SBaptiste Daroussin    </li>
583*21817992SBaptiste Daroussin
584*21817992SBaptiste Daroussin    <li>
585*21817992SBaptiste Daroussin      <p><a href=
586*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-wezterm"><tt>wezterm</tt></a></p>
587*21817992SBaptiste Daroussin    </li>
588*21817992SBaptiste Daroussin  </ul>
589aae38d10SBaptiste Daroussin
590aae38d10SBaptiste Daroussin  <p>There are many changes to existing terminal descriptions. Some
591*21817992SBaptiste Daroussin  were updates to several descriptions, using the
592*21817992SBaptiste Daroussin  <code>infocmp</code> &ldquo;<code>-u</code>&rdquo; option in a
593*21817992SBaptiste Daroussin  script to determine which <em>building-block</em> entries could
594*21817992SBaptiste Daroussin  be used to replace multiple capability settings (and trim
595*21817992SBaptiste Daroussin  redundant information).</p>
596*21817992SBaptiste Daroussin
597*21817992SBaptiste Daroussin  <p>Other changes include:</p>
598aae38d10SBaptiste Daroussin
599aae38d10SBaptiste Daroussin  <ul>
600*21817992SBaptiste Daroussin    <li>
601*21817992SBaptiste Daroussin      <p><a href=
602*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#toc-_X_T_E_R_M__Extensions_">document</a>
603*21817992SBaptiste Daroussin      XF, kxIN and kxOUT</p>
604*21817992SBaptiste Daroussin    </li>
605aae38d10SBaptiste Daroussin
606*21817992SBaptiste Daroussin    <li>
607*21817992SBaptiste Daroussin      <p>add note on <a href=
608*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-sun"><tt>sun</tt></a>
609*21817992SBaptiste Daroussin      regarding wscons/cmdtool/shelltool</p>
610*21817992SBaptiste Daroussin    </li>
611aae38d10SBaptiste Daroussin
612*21817992SBaptiste Daroussin    <li>
613*21817992SBaptiste Daroussin      <p>remove DECCOLM+DECSCLM from <a href=
614*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-foot"><tt>foot</tt></a></p>
615*21817992SBaptiste Daroussin    </li>
616e1865124SBaptiste Daroussin
617*21817992SBaptiste Daroussin    <li>
618*21817992SBaptiste Daroussin      <p>add xterm+focus to <a href=
619*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-foot_base"><tt>foot+base</tt></a></p>
620*21817992SBaptiste Daroussin    </li>
621e1865124SBaptiste Daroussin
622*21817992SBaptiste Daroussin    <li>
623*21817992SBaptiste Daroussin      <p>add ecma+strikeout to <a href=
624*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-putty"><tt>putty</tt></a></p>
625*21817992SBaptiste Daroussin    </li>
626e1865124SBaptiste Daroussin
627*21817992SBaptiste Daroussin    <li>
628*21817992SBaptiste Daroussin      <p>use CSI 3J in <a href=
629*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-vte-2017"><tt>vte-2017</tt></a></p>
630*21817992SBaptiste Daroussin    </li>
631e1865124SBaptiste Daroussin
632*21817992SBaptiste Daroussin    <li>
633*21817992SBaptiste Daroussin      <p>use oldxterm+sm+1006 in <a href=
634*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-vte-2014"><tt>vte-2014</tt></a></p>
635*21817992SBaptiste Daroussin    </li>
636*21817992SBaptiste Daroussin
637*21817992SBaptiste Daroussin    <li>
638*21817992SBaptiste Daroussin      <p>modify <a href=
639*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-xgterm"><tt>xgterm</tt></a>
640*21817992SBaptiste Daroussin      to work around line-drawing bug</p>
641*21817992SBaptiste Daroussin    </li>
642*21817992SBaptiste Daroussin
643*21817992SBaptiste Daroussin    <li>
644*21817992SBaptiste Daroussin      <p>add xterm focus mode 1004 to <a href=
645*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-xterm_focus"><tt>xterm+focus</tt></a>
646*21817992SBaptiste Daroussin      as fe/fd capabilities, like vim.</p>
647*21817992SBaptiste Daroussin    </li>
648*21817992SBaptiste Daroussin
649*21817992SBaptiste Daroussin    <li>
650*21817992SBaptiste Daroussin      <p>add xterm+focus to <a href=
651*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-alacritty_common"><tt>alacritty+common</tt></a></p>
652*21817992SBaptiste Daroussin    </li>
653*21817992SBaptiste Daroussin
654*21817992SBaptiste Daroussin    <li>
655*21817992SBaptiste Daroussin      <p>add XR/xr, to work with vim, and use RV/rv to denote DA2
656*21817992SBaptiste Daroussin      and its response</p>
657*21817992SBaptiste Daroussin    </li>
658*21817992SBaptiste Daroussin
659*21817992SBaptiste Daroussin    <li>
660*21817992SBaptiste Daroussin      <p>add XF flag to <a href=
661*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-xterm_focus"><tt>xterm+focus</tt></a>
662*21817992SBaptiste Daroussin      so that termcap applications can be aware of terminals which
663*21817992SBaptiste Daroussin      may support focus in/out</p>
664*21817992SBaptiste Daroussin    </li>
665*21817992SBaptiste Daroussin
666*21817992SBaptiste Daroussin    <li>
667*21817992SBaptiste Daroussin      <p>use xterm+focus in <a href=
668*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-xterm-p370"><tt>xterm-p370</tt></a>
669e1865124SBaptiste Daroussin      and <a href=
670*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-tmux"><tt>tmux</tt></a></p>
671*21817992SBaptiste Daroussin    </li>
672aae38d10SBaptiste Daroussin
673*21817992SBaptiste Daroussin    <li>
674*21817992SBaptiste Daroussin      <p>remove xterm+sm+1006 from <a href=
675*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-tmux"><tt>tmux</tt></a></p>
676*21817992SBaptiste Daroussin    </li>
677aae38d10SBaptiste Daroussin
678*21817992SBaptiste Daroussin    <li>
679*21817992SBaptiste Daroussin      <p>NetBSD-related fixes for <a href=
680*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-x68k"><tt>x68k</tt></a> and
681*21817992SBaptiste Daroussin      <a href=
682*21817992SBaptiste Daroussin      "@HOMEPAGE@/terminfo.src.html#tic-wsvt25"><tt>wsvt25</tt></a></p>
683*21817992SBaptiste Daroussin    </li>
684aae38d10SBaptiste Daroussin  </ul>
685aae38d10SBaptiste Daroussin
686aae38d10SBaptiste Daroussin  <h3><a name="h3-documentation" id=
687aae38d10SBaptiste Daroussin  "h3-documentation">Documentation</a></h3>
688aae38d10SBaptiste Daroussin
689aae38d10SBaptiste Daroussin  <p>As usual, this release</p>
690aae38d10SBaptiste Daroussin
691aae38d10SBaptiste Daroussin  <ul>
692aae38d10SBaptiste Daroussin    <li>
693aae38d10SBaptiste Daroussin      <p>improves documentation by describing new features,</p>
694aae38d10SBaptiste Daroussin    </li>
695aae38d10SBaptiste Daroussin
696aae38d10SBaptiste Daroussin    <li>
697aae38d10SBaptiste Daroussin      <p>attempts to improve the description of features which
698aae38d10SBaptiste Daroussin      users have found confusing</p>
699aae38d10SBaptiste Daroussin    </li>
700aae38d10SBaptiste Daroussin
701aae38d10SBaptiste Daroussin    <li>
702aae38d10SBaptiste Daroussin      <p>fills in overlooked descriptions of features which were
703e1865124SBaptiste Daroussin      described in the <a href="@HOMEPAGE@/NEWS.html">NEWS</a> file
704e1865124SBaptiste Daroussin      but treated sketchily in manual pages.</p>
705aae38d10SBaptiste Daroussin    </li>
706aae38d10SBaptiste Daroussin  </ul>
707aae38d10SBaptiste Daroussin
708aae38d10SBaptiste Daroussin  <p>In addition to providing background information to explain
709aae38d10SBaptiste Daroussin  these features and show how they evolved, there are corrections,
710aae38d10SBaptiste Daroussin  clarifications, etc.:</p>
711aae38d10SBaptiste Daroussin
712aae38d10SBaptiste Daroussin  <ul>
713aae38d10SBaptiste Daroussin    <li>
714e1865124SBaptiste Daroussin      <p>Corrections:</p>
715aae38d10SBaptiste Daroussin
716e1865124SBaptiste Daroussin      <ul>
717*21817992SBaptiste Daroussin        <li>
718*21817992SBaptiste Daroussin          <p>add assignment in <code>CF_MAN_PAGES</code> to fill in
719*21817992SBaptiste Daroussin          value for <code>TERMINFO_DIRS</code> in ncurses, terminfo
720*21817992SBaptiste Daroussin          and tic manpages.</p>
721e1865124SBaptiste Daroussin        </li>
722aae38d10SBaptiste Daroussin
723e1865124SBaptiste Daroussin        <li>
724*21817992SBaptiste Daroussin          <p>clarify interaction of <code>-R</code> option versus
725*21817992SBaptiste Daroussin          <code>-C</code>, <code>-I</code> and <code>-r</code> in
726*21817992SBaptiste Daroussin          <code>infocmp</code> manpage.</p>
727*21817992SBaptiste Daroussin        </li>
728*21817992SBaptiste Daroussin
729*21817992SBaptiste Daroussin        <li>
730*21817992SBaptiste Daroussin          <p>correct manpage description of panel_hidden.</p>
731*21817992SBaptiste Daroussin        </li>
732*21817992SBaptiste Daroussin
733*21817992SBaptiste Daroussin        <li>
734*21817992SBaptiste Daroussin          <p>improve manpage description for addch versus unctrl
735*21817992SBaptiste Daroussin          format used for non-printable characters.</p>
736*21817992SBaptiste Daroussin        </li>
737*21817992SBaptiste Daroussin
738*21817992SBaptiste Daroussin        <li>
739*21817992SBaptiste Daroussin          <p>improve manpages discussing file descriptors in
740*21817992SBaptiste Daroussin          low-level functions.</p>
741*21817992SBaptiste Daroussin        </li>
742*21817992SBaptiste Daroussin
743*21817992SBaptiste Daroussin        <li>
744*21817992SBaptiste Daroussin          <p>improve description of search rules for terminal
745*21817992SBaptiste Daroussin          descriptions in terminfo manpage.</p>
746*21817992SBaptiste Daroussin        </li>
747*21817992SBaptiste Daroussin
748*21817992SBaptiste Daroussin        <li>
749*21817992SBaptiste Daroussin          <p>modify dist.mk to avoid passing developer's comments
750*21817992SBaptiste Daroussin          in manpages into the generated html documentation.</p>
751*21817992SBaptiste Daroussin        </li>
752*21817992SBaptiste Daroussin
753*21817992SBaptiste Daroussin        <li>
754*21817992SBaptiste Daroussin          <p>modify test-package "ncurses6-doc" to use
755*21817992SBaptiste Daroussin          manpage-aliases, which in turn required a change to the
756*21817992SBaptiste Daroussin          configure script to factor in the extra-suffix option
757*21817992SBaptiste Daroussin          when deriving alias names.</p>
758*21817992SBaptiste Daroussin        </li>
759*21817992SBaptiste Daroussin      </ul>
760e1865124SBaptiste Daroussin    </li>
761e1865124SBaptiste Daroussin
762e1865124SBaptiste Daroussin    <li>
763e1865124SBaptiste Daroussin      <p>New/improved history and portability sections:</p>
764aae38d10SBaptiste Daroussin
765aae38d10SBaptiste Daroussin      <ul>
766*21817992SBaptiste Daroussin        <li>
767*21817992SBaptiste Daroussin          <p>add information about "ttycap", termcap's forerunner,
768*21817992SBaptiste Daroussin          to tset.1</p>
769e1865124SBaptiste Daroussin        </li>
770aae38d10SBaptiste Daroussin
771aae38d10SBaptiste Daroussin        <li>
772*21817992SBaptiste Daroussin          <p>document limitations of tparm, and error-returns in
773*21817992SBaptiste Daroussin          curs_terminfo.3x</p>
774*21817992SBaptiste Daroussin        </li>
775aae38d10SBaptiste Daroussin
776*21817992SBaptiste Daroussin        <li>
777*21817992SBaptiste Daroussin          <p>document limitations of tgoto, and error-returns in
778*21817992SBaptiste Daroussin          curs_termcap.3x</p>
779*21817992SBaptiste Daroussin        </li>
780e1865124SBaptiste Daroussin      </ul>
781aae38d10SBaptiste Daroussin    </li>
782aae38d10SBaptiste Daroussin
783aae38d10SBaptiste Daroussin    <li>
784e1865124SBaptiste Daroussin      <p>Other improvements:</p>
785aae38d10SBaptiste Daroussin
786e1865124SBaptiste Daroussin      <ul>
787*21817992SBaptiste Daroussin        <li>
788*21817992SBaptiste Daroussin          <p>This release has many changes to improve the
789*21817992SBaptiste Daroussin          formatting and style of the manpages.</p>
790*21817992SBaptiste Daroussin        </li>
791e1865124SBaptiste Daroussin
792*21817992SBaptiste Daroussin        <li>
793*21817992SBaptiste Daroussin          <p>Manpages now use consistent section-naming, page
794*21817992SBaptiste Daroussin          headers and footers (including the modification date for
795*21817992SBaptiste Daroussin          each page).</p>
796*21817992SBaptiste Daroussin        </li>
797e1865124SBaptiste Daroussin
798*21817992SBaptiste Daroussin        <li>
799*21817992SBaptiste Daroussin          <p>Table layout has been revised.</p>
800*21817992SBaptiste Daroussin        </li>
801e1865124SBaptiste Daroussin      </ul>
802aae38d10SBaptiste Daroussin    </li>
803aae38d10SBaptiste Daroussin  </ul>
804aae38d10SBaptiste Daroussin
805e1865124SBaptiste Daroussin  <p>There are no new manual pages (all of the manual page updates
806e1865124SBaptiste Daroussin  are to existing pages).</p>
807e1865124SBaptiste Daroussin
808aae38d10SBaptiste Daroussin  <h3><a name="h3-bug-fixes" id="h3-bug-fixes">Interesting
809aae38d10SBaptiste Daroussin  bug-fixes</a></h3>
810aae38d10SBaptiste Daroussin
811*21817992SBaptiste Daroussin  <p>The changes to <tt>tparm</tt>, <tt>tgoto</tt> which improve
812*21817992SBaptiste Daroussin  the design of the low-level interfaces are <em>interesting</em>,
813*21817992SBaptiste Daroussin  but are not bug-fixes <em>per se</em>.</p>
814e1865124SBaptiste Daroussin
815aae38d10SBaptiste Daroussin  <h3><a name="h3-config-config" id=
816aae38d10SBaptiste Daroussin  "h3-config-config">Configuration changes</a></h3>
817aae38d10SBaptiste Daroussin
818aae38d10SBaptiste Daroussin  <h4><a name="h4-config-major" id="h4-config-major">Major
819aae38d10SBaptiste Daroussin  changes</a></h4>
820aae38d10SBaptiste Daroussin
821*21817992SBaptiste Daroussin  <p>These are the major changes (aside from introducing <a href=
822*21817992SBaptiste Daroussin  "#h4-new-library"><tt>tiparm_s</tt></a>):</p>
823*21817992SBaptiste Daroussin
824*21817992SBaptiste Daroussin  <ul>
825*21817992SBaptiste Daroussin    <li>
826*21817992SBaptiste Daroussin      <p>use wide-character (ncursesw) by default</p>
827*21817992SBaptiste Daroussin    </li>
828*21817992SBaptiste Daroussin
829*21817992SBaptiste Daroussin    <li>
830*21817992SBaptiste Daroussin      <p>use opaque typedefs by default</p>
831*21817992SBaptiste Daroussin    </li>
832*21817992SBaptiste Daroussin  </ul>
833*21817992SBaptiste Daroussin
834*21817992SBaptiste Daroussin  <p>However, most of the work on configure scripts was done to
835*21817992SBaptiste Daroussin  reduce warnings within the configure script:</p>
836*21817992SBaptiste Daroussin
837*21817992SBaptiste Daroussin  <ul>
838*21817992SBaptiste Daroussin    <li>
839*21817992SBaptiste Daroussin      <p>intrusive warnings from GNU grep regarding fgrep and
840*21817992SBaptiste Daroussin      egrep</p>
841*21817992SBaptiste Daroussin    </li>
842*21817992SBaptiste Daroussin
843*21817992SBaptiste Daroussin    <li>
844*21817992SBaptiste Daroussin      <p>fatal errors in compile-checks, arising from recent
845*21817992SBaptiste Daroussin      &ldquo;Modern&nbsp;C&rdquo; efforts by some developers which
846*21817992SBaptiste Daroussin      caused longstanding configure checks to fail.</p>
847*21817992SBaptiste Daroussin
848*21817992SBaptiste Daroussin      <p>After repairing the configure script, none of that
849*21817992SBaptiste Daroussin      activity affected ncurses because stricter warnings are used
850*21817992SBaptiste Daroussin      routinely in development.</p>
851*21817992SBaptiste Daroussin    </li>
852*21817992SBaptiste Daroussin  </ul>
853*21817992SBaptiste Daroussin
854*21817992SBaptiste Daroussin  <p>Other improvements made to configure checks include</p>
855*21817992SBaptiste Daroussin
856*21817992SBaptiste Daroussin  <ul>
857*21817992SBaptiste Daroussin    <li>
858*21817992SBaptiste Daroussin      <p>use <a href=
859*21817992SBaptiste Daroussin      "@HOMEPAGE@/INSTALL.html#option:enable-string-hacks">string-hacks</a>
860*21817992SBaptiste Daroussin      in alloc_entry.c, alloc_type.c and hardscroll.c, overlooked
861*21817992SBaptiste Daroussin      due to compiler changes in recent OpenBSD releases</p>
862*21817992SBaptiste Daroussin    </li>
863*21817992SBaptiste Daroussin
864*21817992SBaptiste Daroussin    <li>
865*21817992SBaptiste Daroussin      <p>revise progs.priv.h to provide for NC_ISATTY reuse</p>
866*21817992SBaptiste Daroussin    </li>
867*21817992SBaptiste Daroussin
868*21817992SBaptiste Daroussin    <li>
869*21817992SBaptiste Daroussin      <p>configure check for MB_LEN_MAX provides warning as
870*21817992SBaptiste Daroussin      needed</p>
871*21817992SBaptiste Daroussin    </li>
872*21817992SBaptiste Daroussin
873*21817992SBaptiste Daroussin    <li>
874*21817992SBaptiste Daroussin      <p>trim a space after some "-R" options, fixing builds for
875*21817992SBaptiste Daroussin      applications built using clang and ncurses on Solaris</p>
876*21817992SBaptiste Daroussin    </li>
877*21817992SBaptiste Daroussin
878*21817992SBaptiste Daroussin    <li>
879*21817992SBaptiste Daroussin      <p>work around misconfiguration of MacPorts gcc13, which
880*21817992SBaptiste Daroussin      exposes invalid definition of <tt>MB_LEN_MAX</tt> in gcc's
881*21817992SBaptiste Daroussin      fallback copy of <tt>limits.h</tt></p>
882*21817992SBaptiste Daroussin    </li>
883*21817992SBaptiste Daroussin
884*21817992SBaptiste Daroussin    <li>
885*21817992SBaptiste Daroussin      <p>modified experimental Windows driver works with xterm
886*21817992SBaptiste Daroussin      mouse protocol</p>
887*21817992SBaptiste Daroussin    </li>
888*21817992SBaptiste Daroussin  </ul>
889aae38d10SBaptiste Daroussin
890aae38d10SBaptiste Daroussin  <h4><a name="h4-config-options" id=
891aae38d10SBaptiste Daroussin  "h4-config-options">Configuration options</a></h4>
892aae38d10SBaptiste Daroussin
893*21817992SBaptiste Daroussin  <p>There are a few new configure options:</p>
894aae38d10SBaptiste Daroussin
895e1865124SBaptiste Daroussin  <dl>
896*21817992SBaptiste Daroussin    <dt><a href=
897*21817992SBaptiste Daroussin    "@HOMEPAGE@/INSTALL.html#option:disable-setuid-environ"><tt>--disable-setuid-environ</tt></a>
898e1865124SBaptiste Daroussin    </dt>
899aae38d10SBaptiste Daroussin
900e1865124SBaptiste Daroussin    <dd>
901*21817992SBaptiste Daroussin      <p>Compile with environment restriction, so certain
902*21817992SBaptiste Daroussin      environment variables are not available when running via a
903*21817992SBaptiste Daroussin      setuid/setgid application. These are (for example
904*21817992SBaptiste Daroussin      <tt>$TERMINFO</tt>) those that allow the search path for the
905*21817992SBaptiste Daroussin      terminfo or termcap entry to be customized.</p>
906*21817992SBaptiste Daroussin
907*21817992SBaptiste Daroussin      <p>A setuid/setgid application inherits its environment
908*21817992SBaptiste Daroussin      variables from the current user, in contrast to sudo which
909*21817992SBaptiste Daroussin      may limit the environment variables that ncurses uses.</p>
910e1865124SBaptiste Daroussin    </dd>
911aae38d10SBaptiste Daroussin
912*21817992SBaptiste Daroussin    <dt><a href=
913*21817992SBaptiste Daroussin    "@HOMEPAGE@/INSTALL.html#option:enable-check-size"><tt>--enable-check-size</tt></a>
914e1865124SBaptiste Daroussin    </dt>
915aae38d10SBaptiste Daroussin
916e1865124SBaptiste Daroussin    <dd>
917*21817992SBaptiste Daroussin      <p>Compile-in feature to detect screensize for terminals
918*21817992SBaptiste Daroussin      which do not advertise their screensize, e.g., serial
919*21817992SBaptiste Daroussin      terminals.</p>
920e1865124SBaptiste Daroussin    </dd>
921aae38d10SBaptiste Daroussin
922*21817992SBaptiste Daroussin    <dt><a href=
923*21817992SBaptiste Daroussin    "@HOMEPAGE@/INSTALL.html#option:with-abi-altered"><tt>--with-abi-altered=<em>NUM</em></tt></a>
924e1865124SBaptiste Daroussin    </dt>
925aae38d10SBaptiste Daroussin
926e1865124SBaptiste Daroussin    <dd>
927*21817992SBaptiste Daroussin      <p>Override the displayed (rather than compiled-in) ABI. Only
928*21817992SBaptiste Daroussin      packagers who have created configurations where the ABI
929*21817992SBaptiste Daroussin      differs from ncurses should be interested in this option.</p>
930e1865124SBaptiste Daroussin    </dd>
931aae38d10SBaptiste Daroussin
932*21817992SBaptiste Daroussin    <dt><a href=
933*21817992SBaptiste Daroussin    "@HOMEPAGE@/INSTALL.html#option:with-strip-program"><tt>--with-strip-program=<em>XXX</em></tt></a>
934e1865124SBaptiste Daroussin    </dt>
935aae38d10SBaptiste Daroussin
936e1865124SBaptiste Daroussin    <dd>
937*21817992SBaptiste Daroussin      <p>When stripping executables during install, use the
938*21817992SBaptiste Daroussin      specified program rather than &ldquo;strip&rdquo; overriding
939*21817992SBaptiste Daroussin      program chosen by the install program for stripping
940*21817992SBaptiste Daroussin      executables.</p>
941*21817992SBaptiste Daroussin    </dd>
942*21817992SBaptiste Daroussin  </dl>
943*21817992SBaptiste Daroussin
944*21817992SBaptiste Daroussin  <p>These configure options are modified:</p>
945*21817992SBaptiste Daroussin
946*21817992SBaptiste Daroussin  <dl>
947*21817992SBaptiste Daroussin    <dt><a href=
948*21817992SBaptiste Daroussin    "@HOMEPAGE@/INSTALL.html#option:with-pkg-config-libdir"><tt>--with-pkg-config-libdir[=<em>DIR</em>]</tt></a>
949*21817992SBaptiste Daroussin    </dt>
950*21817992SBaptiste Daroussin
951*21817992SBaptiste Daroussin    <dd>
952*21817992SBaptiste Daroussin      <p>The optional <em>DIR</em> parameter can now be
953*21817992SBaptiste Daroussin      &ldquo;auto&rdquo; to automatically use pkg-config's library
954*21817992SBaptiste Daroussin      directory.</p>
955*21817992SBaptiste Daroussin
956*21817992SBaptiste Daroussin      <p>The default is <tt>$(libdir)</tt>.</p>
957e1865124SBaptiste Daroussin    </dd>
958aae38d10SBaptiste Daroussin
959*21817992SBaptiste Daroussin    <dt><a href=
960*21817992SBaptiste Daroussin    "@HOMEPAGE@/INSTALL.html#option:with-xterm-kbs"><tt>--with-xterm-kbs[=<em>XXX</em>]</tt></a>
961e1865124SBaptiste Daroussin    </dt>
962aae38d10SBaptiste Daroussin
963e1865124SBaptiste Daroussin    <dd>
964*21817992SBaptiste Daroussin      <p>The default is &ldquo;auto&rdquo; which tells the
965*21817992SBaptiste Daroussin      configure script to choose BS or DEL according to platform
966*21817992SBaptiste Daroussin      defaults.</p>
967e1865124SBaptiste Daroussin    </dd>
968e1865124SBaptiste Daroussin  </dl>
969aae38d10SBaptiste Daroussin
970e1865124SBaptiste Daroussin  <h3><a name="h3-portability" id="h3-portability">Portability</a></h3>
971aae38d10SBaptiste Daroussin
972aae38d10SBaptiste Daroussin  <p>Many of the portability changes are implemented via the
973aae38d10SBaptiste Daroussin  configure script:</p>
974aae38d10SBaptiste Daroussin
975aae38d10SBaptiste Daroussin  <ul>
976aae38d10SBaptiste Daroussin    <li>
977*21817992SBaptiste Daroussin      <p>add/use configure check for <code>clock_gettime</code>, to
978*21817992SBaptiste Daroussin      supersede <code>gettimeofday</code>.</p>
979aae38d10SBaptiste Daroussin    </li>
980aae38d10SBaptiste Daroussin
981aae38d10SBaptiste Daroussin    <li>
982*21817992SBaptiste Daroussin      <p>modify configure script check for pkg-config library
983*21817992SBaptiste Daroussin      directory to take into account an older version 0.15.0 which
984*21817992SBaptiste Daroussin      used PKG_CONFIG_PATH but not PKG_CONFIG_LIBDIR</p>
985aae38d10SBaptiste Daroussin    </li>
986aae38d10SBaptiste Daroussin
987aae38d10SBaptiste Daroussin    <li>
988*21817992SBaptiste Daroussin      <p>allow for MinGW32-/64-bit configurations to use
989*21817992SBaptiste Daroussin      _DEFAULT_SOURCE</p>
990aae38d10SBaptiste Daroussin    </li>
991aae38d10SBaptiste Daroussin
992aae38d10SBaptiste Daroussin    <li>
993*21817992SBaptiste Daroussin      <p>modify CF_XOPEN_SOURCE macro's amend default case to avoid
994*21817992SBaptiste Daroussin      undefining _XOPEN_SOURCE if _POSIX_C_SOURCE is defined</p>
995*21817992SBaptiste Daroussin    </li>
996*21817992SBaptiste Daroussin
997*21817992SBaptiste Daroussin    <li>
998*21817992SBaptiste Daroussin      <p>updated configure script macro CF_XOPEN_SOURCE, for
999*21817992SBaptiste Daroussin      uClibc-ng</p>
1000*21817992SBaptiste Daroussin    </li>
1001*21817992SBaptiste Daroussin
1002*21817992SBaptiste Daroussin    <li>
1003*21817992SBaptiste Daroussin      <p>modify version-check for gcc/g++, now works for msys2</p>
1004*21817992SBaptiste Daroussin    </li>
1005*21817992SBaptiste Daroussin
1006*21817992SBaptiste Daroussin    <li>
1007*21817992SBaptiste Daroussin      <p>build-fixes related to configure-options and/or
1008*21817992SBaptiste Daroussin      platform:</p>
1009e1865124SBaptiste Daroussin
1010e1865124SBaptiste Daroussin      <ul>
1011*21817992SBaptiste Daroussin        <li>fix for <tt>--enable-fvisibility</tt></li>
1012e1865124SBaptiste Daroussin
1013*21817992SBaptiste Daroussin        <li>fix for unusual values of
1014*21817992SBaptiste Daroussin        <tt>--with-rel-version</tt></li>
1015*21817992SBaptiste Daroussin
1016*21817992SBaptiste Daroussin        <li>fix for unusual values of
1017*21817992SBaptiste Daroussin        <tt>--with-abi-version</tt></li>
1018*21817992SBaptiste Daroussin
1019*21817992SBaptiste Daroussin        <li>fix for <tt>--disable-tcap-names</tt></li>
1020*21817992SBaptiste Daroussin
1021*21817992SBaptiste Daroussin        <li>fix for termcap in <tt>nc_access.h</tt></li>
1022e1865124SBaptiste Daroussin      </ul>
1023aae38d10SBaptiste Daroussin    </li>
1024aae38d10SBaptiste Daroussin
1025aae38d10SBaptiste Daroussin    <li>
1026*21817992SBaptiste Daroussin      <p>other configure-script improvements:</p>
1027e1865124SBaptiste Daroussin
1028e1865124SBaptiste Daroussin      <ul>
1029*21817992SBaptiste Daroussin        <li>recent msys2 headers work with
1030*21817992SBaptiste Daroussin        <tt>_DEFAULT_SOURCE</tt>; amend check</li>
1031e1865124SBaptiste Daroussin
1032*21817992SBaptiste Daroussin        <li>use <tt>$ac_includes_default</tt> in most cases where
1033*21817992SBaptiste Daroussin        stdlib.h should work</li>
1034aae38d10SBaptiste Daroussin
1035*21817992SBaptiste Daroussin        <li>use <tt>#error</tt> consistently vs "make an
1036*21817992SBaptiste Daroussin        error"</li>
1037e1865124SBaptiste Daroussin
1038*21817992SBaptiste Daroussin        <li>add configure macro for <tt>gettimeofday</tt> vs inline
1039*21817992SBaptiste Daroussin        check</li>
1040e1865124SBaptiste Daroussin      </ul>
1041e1865124SBaptiste Daroussin    </li>
1042e1865124SBaptiste Daroussin  </ul>
1043e1865124SBaptiste Daroussin
1044e1865124SBaptiste Daroussin  <p>Here are some of the other portability fixes:</p>
1045aae38d10SBaptiste Daroussin
1046aae38d10SBaptiste Daroussin  <ul>
1047aae38d10SBaptiste Daroussin    <li>
1048*21817992SBaptiste Daroussin      <p>modify configure scripts/makefiles to omit
1049*21817992SBaptiste Daroussin      <tt>KEY_RESIZE</tt> if the corresponding <tt>SIGWINCH</tt>
1050*21817992SBaptiste Daroussin      feature is disabled</p>
1051aae38d10SBaptiste Daroussin    </li>
1052aae38d10SBaptiste Daroussin
1053aae38d10SBaptiste Daroussin    <li>
1054*21817992SBaptiste Daroussin      <p>increase <tt>MB_CUR_MAX</tt> to 16, matching glibc's
1055*21817992SBaptiste Daroussin      <tt>MB_LEN_MAX</tt></p>
1056e1865124SBaptiste Daroussin    </li>
1057e1865124SBaptiste Daroussin
1058e1865124SBaptiste Daroussin    <li>
1059*21817992SBaptiste Daroussin      <p>add BSD <tt>erase2</tt> to characters handled by
1060*21817992SBaptiste Daroussin      tset/reset</p>
1061e1865124SBaptiste Daroussin    </li>
1062e1865124SBaptiste Daroussin
1063e1865124SBaptiste Daroussin    <li>
1064*21817992SBaptiste Daroussin      <p>use <tt>getauxval</tt> when available, to improve
1065*21817992SBaptiste Daroussin      <tt>setuid</tt>/<tt>setgid</tt> checks</p>
1066e1865124SBaptiste Daroussin    </li>
1067e1865124SBaptiste Daroussin
1068e1865124SBaptiste Daroussin    <li>
1069*21817992SBaptiste Daroussin      <p>set <tt>dwShareMode</tt> in calls to
1070*21817992SBaptiste Daroussin      <tt>CreateConsoleScreenBuffer</tt></p>
1071*21817992SBaptiste Daroussin    </li>
1072*21817992SBaptiste Daroussin
1073*21817992SBaptiste Daroussin    <li>
1074*21817992SBaptiste Daroussin      <p>use <tt>CreateFile</tt> with "<tt>CONIN$</tt>",
1075*21817992SBaptiste Daroussin      "<tt>CONOUT$</tt>" rather than <tt>GetStdHandle</tt> to
1076*21817992SBaptiste Daroussin      obtain a handle on the actual console, avoiding redirection
1077*21817992SBaptiste Daroussin      in the MinGW/Win32 configurations</p>
1078*21817992SBaptiste Daroussin    </li>
1079*21817992SBaptiste Daroussin
1080*21817992SBaptiste Daroussin    <li>
1081*21817992SBaptiste Daroussin      <p>modify MinGW driver to return <tt>KEY_BACKSPACE</tt> when
1082*21817992SBaptiste Daroussin      an unmodified <tt>VK_BACK</tt> virtual key is entered</p>
1083*21817992SBaptiste Daroussin    </li>
1084*21817992SBaptiste Daroussin
1085*21817992SBaptiste Daroussin    <li>
1086*21817992SBaptiste Daroussin      <p>modify MinGW configuration to provide for running in
1087*21817992SBaptiste Daroussin      MSYS/MSYS2 shells, assuming ConPTY support</p>
1088aae38d10SBaptiste Daroussin    </li>
1089aae38d10SBaptiste Daroussin  </ul>
1090aae38d10SBaptiste Daroussin
1091aae38d10SBaptiste Daroussin  <hr>
1092aae38d10SBaptiste Daroussin
1093aae38d10SBaptiste Daroussin  <h2><a name="h2-features" id="h2-features">Features of
1094aae38d10SBaptiste Daroussin  <span class="main-name">ncurses</span></a></h2>
1095aae38d10SBaptiste Daroussin
1096aae38d10SBaptiste Daroussin  <p>The <span class="main-name">ncurses</span> package is fully
1097aae38d10SBaptiste Daroussin  upward-compatible with SVr4 (System V Release 4) curses:</p>
1098aae38d10SBaptiste Daroussin
1099aae38d10SBaptiste Daroussin  <ul>
1100aae38d10SBaptiste Daroussin    <li>
1101aae38d10SBaptiste Daroussin      <p>All of the SVr4 calls have been implemented (and are
1102aae38d10SBaptiste Daroussin      documented).</p>
1103aae38d10SBaptiste Daroussin    </li>
1104aae38d10SBaptiste Daroussin
1105aae38d10SBaptiste Daroussin    <li>
1106*21817992SBaptiste Daroussin      <p><span class="main-name">ncurses</span> supports the
1107*21817992SBaptiste Daroussin      features of SVr4 curses including keyboard mapping, color,
1108*21817992SBaptiste Daroussin      form drawing with ACS characters, and automatic recognition
1109aae38d10SBaptiste Daroussin      of keypad and function keys.</p>
1110aae38d10SBaptiste Daroussin    </li>
1111aae38d10SBaptiste Daroussin
1112aae38d10SBaptiste Daroussin    <li>
1113*21817992SBaptiste Daroussin      <p><span class="main-name">ncurses</span> provides work-alike
1114*21817992SBaptiste Daroussin      replacements of SVr4 supplemental libraries based on curses,
1115*21817992SBaptiste Daroussin      but which were not specified by X/Open Curses:</p>
1116aae38d10SBaptiste Daroussin
1117aae38d10SBaptiste Daroussin      <ul>
1118aae38d10SBaptiste Daroussin        <li>
1119*21817992SBaptiste Daroussin          <p>the panel library, supporting a stack of windows with
1120*21817992SBaptiste Daroussin          backing store</p>
1121aae38d10SBaptiste Daroussin        </li>
1122aae38d10SBaptiste Daroussin
1123aae38d10SBaptiste Daroussin        <li>
1124*21817992SBaptiste Daroussin          <p>the menu library, supporting a uniform but flexible
1125*21817992SBaptiste Daroussin          interface for menu programming</p>
1126aae38d10SBaptiste Daroussin        </li>
1127aae38d10SBaptiste Daroussin
1128aae38d10SBaptiste Daroussin        <li>
1129aae38d10SBaptiste Daroussin          <p>the form library, supporting data collection through
1130*21817992SBaptiste Daroussin          on-screen forms</p>
1131aae38d10SBaptiste Daroussin        </li>
1132aae38d10SBaptiste Daroussin      </ul>
1133aae38d10SBaptiste Daroussin    </li>
1134aae38d10SBaptiste Daroussin
1135aae38d10SBaptiste Daroussin    <li>
1136aae38d10SBaptiste Daroussin      <p><span class="main-name">ncurses</span>'s terminal database
1137aae38d10SBaptiste Daroussin      is fully compatible with that used by SVr4 curses.</p>
1138aae38d10SBaptiste Daroussin
1139aae38d10SBaptiste Daroussin      <ul>
1140aae38d10SBaptiste Daroussin        <li>
1141aae38d10SBaptiste Daroussin          <p><span class="main-name">ncurses</span> supports
1142*21817992SBaptiste Daroussin          user-defined capabilities that it can see, but which are
1143aae38d10SBaptiste Daroussin          hidden from SVr4 curses applications using the
1144aae38d10SBaptiste Daroussin          <em>same</em> terminal database.</p>
1145aae38d10SBaptiste Daroussin        </li>
1146aae38d10SBaptiste Daroussin
1147aae38d10SBaptiste Daroussin        <li>
1148aae38d10SBaptiste Daroussin          <p>It can be optionally configured to match the format
1149aae38d10SBaptiste Daroussin          used in related systems such as AIX and Tru64.</p>
1150aae38d10SBaptiste Daroussin        </li>
1151aae38d10SBaptiste Daroussin
1152aae38d10SBaptiste Daroussin        <li>
1153aae38d10SBaptiste Daroussin          <p>Alternatively, <span class="main-name">ncurses</span>
1154aae38d10SBaptiste Daroussin          can be configured to use hashed databases rather than the
1155aae38d10SBaptiste Daroussin          directory of files used by SVr4 curses.</p>
1156aae38d10SBaptiste Daroussin        </li>
1157aae38d10SBaptiste Daroussin      </ul>
1158aae38d10SBaptiste Daroussin    </li>
1159aae38d10SBaptiste Daroussin
1160aae38d10SBaptiste Daroussin    <li>
1161aae38d10SBaptiste Daroussin      <p>The <span class="main-name">ncurses</span> utilities have
1162aae38d10SBaptiste Daroussin      options to allow you to filter terminfo entries for use with
1163aae38d10SBaptiste Daroussin      less capable <em>curses</em>/<em>terminfo</em> versions such
1164*21817992SBaptiste Daroussin      as the HP-UX and AIX ports.</p>
1165aae38d10SBaptiste Daroussin    </li>
1166aae38d10SBaptiste Daroussin  </ul>
1167aae38d10SBaptiste Daroussin
1168aae38d10SBaptiste Daroussin  <p>The <span class="main-name">ncurses</span> package also has
1169aae38d10SBaptiste Daroussin  many useful extensions over SVr4:</p>
1170aae38d10SBaptiste Daroussin
1171aae38d10SBaptiste Daroussin  <ul>
1172aae38d10SBaptiste Daroussin    <li>
1173aae38d10SBaptiste Daroussin      <p>The API is 8-bit clean and base-level conformant with the
1174*21817992SBaptiste Daroussin      X/Open Curses specification, XSI curses (that is, it
1175*21817992SBaptiste Daroussin      implements all <em>BASE</em> level features, and almost all
1176*21817992SBaptiste Daroussin      <em>EXTENDED</em> features). It includes many function calls
1177*21817992SBaptiste Daroussin      not supported under SVr4 curses (but portability of all calls
1178*21817992SBaptiste Daroussin      is documented so you can use the SVr4 subset only).</p>
1179aae38d10SBaptiste Daroussin    </li>
1180aae38d10SBaptiste Daroussin
1181aae38d10SBaptiste Daroussin    <li>
1182aae38d10SBaptiste Daroussin      <p>Unlike SVr3 curses, <span class="main-name">ncurses</span>
1183aae38d10SBaptiste Daroussin      can write to the rightmost-bottommost corner of the screen if
1184aae38d10SBaptiste Daroussin      your terminal has an insert-character capability.</p>
1185aae38d10SBaptiste Daroussin    </li>
1186aae38d10SBaptiste Daroussin
1187aae38d10SBaptiste Daroussin    <li>
1188aae38d10SBaptiste Daroussin      <p>Ada95 and C++ bindings.</p>
1189aae38d10SBaptiste Daroussin    </li>
1190aae38d10SBaptiste Daroussin
1191aae38d10SBaptiste Daroussin    <li>
1192aae38d10SBaptiste Daroussin      <p>Support for mouse event reporting with X Window xterm and
1193aae38d10SBaptiste Daroussin      FreeBSD and OS/2 console windows.</p>
1194aae38d10SBaptiste Daroussin    </li>
1195aae38d10SBaptiste Daroussin
1196aae38d10SBaptiste Daroussin    <li>
1197aae38d10SBaptiste Daroussin      <p>Extended mouse support via Alessandro Rubini's gpm
1198aae38d10SBaptiste Daroussin      package.</p>
1199aae38d10SBaptiste Daroussin    </li>
1200aae38d10SBaptiste Daroussin
1201aae38d10SBaptiste Daroussin    <li>
1202aae38d10SBaptiste Daroussin      <p>The function <code>wresize</code> allows you to resize
1203aae38d10SBaptiste Daroussin      windows, preserving their data.</p>
1204aae38d10SBaptiste Daroussin    </li>
1205aae38d10SBaptiste Daroussin
1206aae38d10SBaptiste Daroussin    <li>
1207aae38d10SBaptiste Daroussin      <p>The function <code>use_default_colors</code> allows you to
1208aae38d10SBaptiste Daroussin      use the terminal's default colors for the default color pair,
1209aae38d10SBaptiste Daroussin      achieving the effect of transparent colors.</p>
1210aae38d10SBaptiste Daroussin    </li>
1211aae38d10SBaptiste Daroussin
1212aae38d10SBaptiste Daroussin    <li>
1213aae38d10SBaptiste Daroussin      <p>The functions <code>keyok</code> and
1214aae38d10SBaptiste Daroussin      <code>define_key</code> allow you to better control the use
1215aae38d10SBaptiste Daroussin      of function keys, e.g., disabling the <span class=
1216aae38d10SBaptiste Daroussin      "main-name">ncurses</span> KEY_MOUSE, or by defining more
1217aae38d10SBaptiste Daroussin      than one control sequence to map to a given key code.</p>
1218aae38d10SBaptiste Daroussin    </li>
1219aae38d10SBaptiste Daroussin
1220aae38d10SBaptiste Daroussin    <li>
1221*21817992SBaptiste Daroussin      <p>Support for direct-color terminals, such as modern
1222*21817992SBaptiste Daroussin      xterm.</p>
1223*21817992SBaptiste Daroussin    </li>
1224*21817992SBaptiste Daroussin
1225*21817992SBaptiste Daroussin    <li>
1226aae38d10SBaptiste Daroussin      <p>Support for 256-color terminals, such as modern xterm.</p>
1227aae38d10SBaptiste Daroussin    </li>
1228aae38d10SBaptiste Daroussin
1229aae38d10SBaptiste Daroussin    <li>
1230aae38d10SBaptiste Daroussin      <p>Support for 16-color terminals, such as <em>aixterm</em>
1231aae38d10SBaptiste Daroussin      and <em>modern xterm</em>.</p>
1232aae38d10SBaptiste Daroussin    </li>
1233aae38d10SBaptiste Daroussin
1234aae38d10SBaptiste Daroussin    <li>
1235aae38d10SBaptiste Daroussin      <p>Better cursor-movement optimization. The package now
1236aae38d10SBaptiste Daroussin      features a cursor-local-movement computation more efficient
1237aae38d10SBaptiste Daroussin      than either BSD's or System V's.</p>
1238aae38d10SBaptiste Daroussin    </li>
1239aae38d10SBaptiste Daroussin
1240aae38d10SBaptiste Daroussin    <li>
1241aae38d10SBaptiste Daroussin      <p>Super hardware scrolling support. The screen-update code
1242aae38d10SBaptiste Daroussin      incorporates a novel, simple, and cheap algorithm that
1243aae38d10SBaptiste Daroussin      enables it to make optimal use of hardware scrolling,
1244aae38d10SBaptiste Daroussin      line-insertion, and line-deletion for screen-line movements.
1245aae38d10SBaptiste Daroussin      This algorithm is more powerful than the 4.4BSD curses
1246aae38d10SBaptiste Daroussin      <code>quickch</code> routine.</p>
1247aae38d10SBaptiste Daroussin    </li>
1248aae38d10SBaptiste Daroussin
1249aae38d10SBaptiste Daroussin    <li>
1250aae38d10SBaptiste Daroussin      <p>Real support for terminals with the magic-cookie glitch.
1251aae38d10SBaptiste Daroussin      The screen-update code will refrain from drawing a highlight
1252aae38d10SBaptiste Daroussin      if the magic- cookie unattributed spaces required just before
1253aae38d10SBaptiste Daroussin      the beginning and after the end would step on a non-space
1254aae38d10SBaptiste Daroussin      character. It will automatically shift highlight boundaries
1255aae38d10SBaptiste Daroussin      when doing so would make it possible to draw the highlight
1256aae38d10SBaptiste Daroussin      without changing the visual appearance of the screen.</p>
1257aae38d10SBaptiste Daroussin    </li>
1258aae38d10SBaptiste Daroussin
1259aae38d10SBaptiste Daroussin    <li>
1260aae38d10SBaptiste Daroussin      <p>It is possible to generate the library with a list of
1261aae38d10SBaptiste Daroussin      pre-loaded fallback entries linked to it so that it can serve
1262aae38d10SBaptiste Daroussin      those terminal types even when no terminfo tree or termcap
1263aae38d10SBaptiste Daroussin      file is accessible (this may be useful for support of
1264aae38d10SBaptiste Daroussin      screen-oriented programs that must run in single-user
1265aae38d10SBaptiste Daroussin      mode).</p>
1266aae38d10SBaptiste Daroussin    </li>
1267aae38d10SBaptiste Daroussin
1268aae38d10SBaptiste Daroussin    <li>
1269e1865124SBaptiste Daroussin      <p>The <a href="@HOMEPAGE@/man/tic.1m.html"><span class=
1270e1865124SBaptiste Daroussin      "part-name">tic</span></a>/<a href=
1271e1865124SBaptiste Daroussin      "@HOMEPAGE@/man/captoinfo.1m.html">captoinfo</a> utility
1272e1865124SBaptiste Daroussin      provided with <span class="main-name">ncurses</span> has the
1273e1865124SBaptiste Daroussin      ability to translate many termcaps from the XENIX, IBM and
1274e1865124SBaptiste Daroussin      AT&amp;T extension sets.</p>
1275aae38d10SBaptiste Daroussin    </li>
1276aae38d10SBaptiste Daroussin
1277aae38d10SBaptiste Daroussin    <li>
1278aae38d10SBaptiste Daroussin      <p>A BSD-like <a href=
1279e1865124SBaptiste Daroussin      "@HOMEPAGE@/man/tset.1.html"><span class=
1280e1865124SBaptiste Daroussin      "part-name">tset</span></a> utility is provided.</p>
1281aae38d10SBaptiste Daroussin    </li>
1282aae38d10SBaptiste Daroussin
1283aae38d10SBaptiste Daroussin    <li>
1284aae38d10SBaptiste Daroussin      <p>The <span class="main-name">ncurses</span> library and
1285aae38d10SBaptiste Daroussin      utilities will automatically read terminfo entries from
1286aae38d10SBaptiste Daroussin      $HOME/.terminfo if it exists, and compile to that directory
1287aae38d10SBaptiste Daroussin      if it exists and the user has no write access to the system
1288aae38d10SBaptiste Daroussin      directory. This feature makes it easier for users to have
1289aae38d10SBaptiste Daroussin      personal terminfo entries without giving up access to the
1290aae38d10SBaptiste Daroussin      system terminfo directory.</p>
1291aae38d10SBaptiste Daroussin    </li>
1292aae38d10SBaptiste Daroussin
1293aae38d10SBaptiste Daroussin    <li>
1294aae38d10SBaptiste Daroussin      <p>You may specify a path of directories to search for
1295aae38d10SBaptiste Daroussin      compiled descriptions with the environment variable
1296aae38d10SBaptiste Daroussin      TERMINFO_DIRS (this generalizes the feature provided by
1297aae38d10SBaptiste Daroussin      TERMINFO under stock System V.)</p>
1298aae38d10SBaptiste Daroussin    </li>
1299aae38d10SBaptiste Daroussin
1300aae38d10SBaptiste Daroussin    <li>
1301aae38d10SBaptiste Daroussin      <p>In terminfo source files, use capabilities may refer not
1302aae38d10SBaptiste Daroussin      just to other entries in the same source file (as in System
1303aae38d10SBaptiste Daroussin      V) but also to compiled entries in either the system terminfo
1304aae38d10SBaptiste Daroussin      directory or the user's $HOME/.terminfo directory.</p>
1305aae38d10SBaptiste Daroussin    </li>
1306aae38d10SBaptiste Daroussin
1307aae38d10SBaptiste Daroussin    <li>
1308aae38d10SBaptiste Daroussin      <p>The table-of-entries utility <a href=
1309e1865124SBaptiste Daroussin      "@HOMEPAGE@/man/toe.1m.html"><span class=
1310e1865124SBaptiste Daroussin      "part-name">toe</span></a> makes it easy for users to see
1311e1865124SBaptiste Daroussin      exactly what terminal types are available on the system.</p>
1312aae38d10SBaptiste Daroussin    </li>
1313aae38d10SBaptiste Daroussin
1314aae38d10SBaptiste Daroussin    <li>
1315*21817992SBaptiste Daroussin      <p>X/Open Curses permits most functions it specifies to be
1316*21817992SBaptiste Daroussin      made available as macros as well. ncurses does this</p>
1317*21817992SBaptiste Daroussin
1318*21817992SBaptiste Daroussin      <ul>
1319*21817992SBaptiste Daroussin        <li>to improve performance, e.g., for operations composed
1320*21817992SBaptiste Daroussin        of simpler functions such as cursor movement following by
1321*21817992SBaptiste Daroussin        adding text to the screen,</li>
1322*21817992SBaptiste Daroussin
1323*21817992SBaptiste Daroussin        <li>to simplify the implementation by reusing functions
1324*21817992SBaptiste Daroussin        which use common parameters, e.g., the standard screen
1325*21817992SBaptiste Daroussin        <code>stdscr</code>, and</li>
1326*21817992SBaptiste Daroussin
1327*21817992SBaptiste Daroussin        <li>to provide functions that return values via their
1328*21817992SBaptiste Daroussin        parameters</li>
1329*21817992SBaptiste Daroussin      </ul>
1330*21817992SBaptiste Daroussin
1331*21817992SBaptiste Daroussin      <p>Except for the last case, ncurses provides a non-macro
1332*21817992SBaptiste Daroussin      implementation of the function. If the macro definition is
1333*21817992SBaptiste Daroussin      disabled with <code>#undef</code>, or by defining
1334*21817992SBaptiste Daroussin      <code>NCURSES_NOMACROS</code> the function may be linked (and
1335*21817992SBaptiste Daroussin      its calls will be checked against the prototype).</p>
1336aae38d10SBaptiste Daroussin    </li>
1337aae38d10SBaptiste Daroussin
1338aae38d10SBaptiste Daroussin    <li>
1339aae38d10SBaptiste Daroussin      <p>Extensive documentation is provided (see the <em><a href=
1340e1865124SBaptiste Daroussin      "@HOMEPAGE@/ncurses.faq.html#additional_reading">Additional
1341e1865124SBaptiste Daroussin      Reading</a></em> section of the <em><a href=
1342e1865124SBaptiste Daroussin      "@HOMEPAGE@/ncurses.faq.html"><span class=
1343e1865124SBaptiste Daroussin      "main-name">ncurses</span> FAQ</a></em> for online
1344e1865124SBaptiste Daroussin      documentation).</p>
1345aae38d10SBaptiste Daroussin    </li>
1346aae38d10SBaptiste Daroussin  </ul>
1347aae38d10SBaptiste Daroussin
1348aae38d10SBaptiste Daroussin  <h2><a name="h2-who-uses" id="h2-who-uses">Applications using
1349aae38d10SBaptiste Daroussin  <span class="main-name">ncurses</span></a></h2>
1350aae38d10SBaptiste Daroussin
1351aae38d10SBaptiste Daroussin  <p>The <span class="main-name">ncurses</span> distribution
1352aae38d10SBaptiste Daroussin  includes a selection of test programs (including a few games).
1353aae38d10SBaptiste Daroussin  These are available separately as <a href=
1354e1865124SBaptiste Daroussin  "@HOMEPAGE@/ncurses-examples.html">ncurses-examples</a></p>
1355aae38d10SBaptiste Daroussin
1356aae38d10SBaptiste Daroussin  <p>The ncurses library has been tested with a wide variety of
1357aae38d10SBaptiste Daroussin  applications including:</p>
1358aae38d10SBaptiste Daroussin
1359aae38d10SBaptiste Daroussin  <blockquote>
136006bfebdeSXin LI    <dl>
1361e1865124SBaptiste Daroussin      <dt><span class="part-name">aptitude</span>
1362e1865124SBaptiste Daroussin      </dt>
136306bfebdeSXin LI
1364aae38d10SBaptiste Daroussin      <dd>
1365aae38d10SBaptiste Daroussin        <p>FrontEnd to Apt, the debian package manager</p>
136606bfebdeSXin LI
1367aae38d10SBaptiste Daroussin        <p><a href=
1368aae38d10SBaptiste Daroussin        "https://wiki.debian.org/Aptitude">https://wiki.debian.org/Aptitude</a></p>
1369aae38d10SBaptiste Daroussin      </dd>
137006bfebdeSXin LI
1371e1865124SBaptiste Daroussin      <dt><span class="part-name">cdk</span>
1372e1865124SBaptiste Daroussin      </dt>
1373aae38d10SBaptiste Daroussin
1374aae38d10SBaptiste Daroussin      <dd>
1375aae38d10SBaptiste Daroussin        <p>Curses Development Kit</p>
1376aae38d10SBaptiste Daroussin
1377e1865124SBaptiste Daroussin        <p><a href="@WEBSITE@/cdk/">@WEBSITE@/cdk/</a><br>
1378aae38d10SBaptiste Daroussin        </p>
1379aae38d10SBaptiste Daroussin      </dd>
1380aae38d10SBaptiste Daroussin
1381e1865124SBaptiste Daroussin      <dt><span class="part-name">ded</span>
1382e1865124SBaptiste Daroussin      </dt>
1383aae38d10SBaptiste Daroussin
1384aae38d10SBaptiste Daroussin      <dd>
1385aae38d10SBaptiste Daroussin        <p>directory-editor</p>
1386aae38d10SBaptiste Daroussin
1387e1865124SBaptiste Daroussin        <p><a href="@WEBSITE@/ded/">@WEBSITE@/ded/</a></p>
1388aae38d10SBaptiste Daroussin      </dd>
1389aae38d10SBaptiste Daroussin
1390e1865124SBaptiste Daroussin      <dt><span class="part-name">dialog</span>
1391e1865124SBaptiste Daroussin      </dt>
1392aae38d10SBaptiste Daroussin
1393aae38d10SBaptiste Daroussin      <dd>
1394aae38d10SBaptiste Daroussin        <p>the underlying application used in Slackware's setup,
1395aae38d10SBaptiste Daroussin        and the basis for similar install/configure applications on
1396aae38d10SBaptiste Daroussin        many systems.</p>
1397aae38d10SBaptiste Daroussin
1398e1865124SBaptiste Daroussin        <p><a href="@WEBSITE@/dialog/">@WEBSITE@/dialog/</a></p>
1399aae38d10SBaptiste Daroussin      </dd>
1400aae38d10SBaptiste Daroussin
1401e1865124SBaptiste Daroussin      <dt><span class="part-name">lynx</span>
1402e1865124SBaptiste Daroussin      </dt>
1403aae38d10SBaptiste Daroussin
1404aae38d10SBaptiste Daroussin      <dd>
1405aae38d10SBaptiste Daroussin        <p>the text WWW browser</p>
1406aae38d10SBaptiste Daroussin
1407aae38d10SBaptiste Daroussin        <p><a href=
1408aae38d10SBaptiste Daroussin        "https://lynx.invisible-island.net/">https://lynx.invisible-island.net/</a></p>
1409aae38d10SBaptiste Daroussin      </dd>
1410aae38d10SBaptiste Daroussin
1411e1865124SBaptiste Daroussin      <dt><span class="part-name">mutt</span>
1412e1865124SBaptiste Daroussin      </dt>
1413aae38d10SBaptiste Daroussin
1414aae38d10SBaptiste Daroussin      <dd>
1415aae38d10SBaptiste Daroussin        <p>mail utility</p>
1416aae38d10SBaptiste Daroussin
1417e1865124SBaptiste Daroussin        <p><a href="http://www.mutt.org/">http://www.mutt.org/</a></p>
1418aae38d10SBaptiste Daroussin      </dd>
1419aae38d10SBaptiste Daroussin
1420e1865124SBaptiste Daroussin      <dt><span class="part-name">ncftp</span>
1421e1865124SBaptiste Daroussin      </dt>
1422aae38d10SBaptiste Daroussin
1423aae38d10SBaptiste Daroussin      <dd>
1424aae38d10SBaptiste Daroussin        <p>file-transfer utility</p>
1425aae38d10SBaptiste Daroussin
1426aae38d10SBaptiste Daroussin        <p><a href=
1427aae38d10SBaptiste Daroussin        "https://www.ncftp.com/">https://www.ncftp.com/</a></p>
1428aae38d10SBaptiste Daroussin      </dd>
1429aae38d10SBaptiste Daroussin
1430e1865124SBaptiste Daroussin      <dt><span class="part-name">nvi</span>
1431e1865124SBaptiste Daroussin      </dt>
1432aae38d10SBaptiste Daroussin
1433aae38d10SBaptiste Daroussin      <dd>
1434aae38d10SBaptiste Daroussin        <p>New vi uses ncurses.</p>
1435aae38d10SBaptiste Daroussin
1436aae38d10SBaptiste Daroussin        <p><a href=
1437*21817992SBaptiste Daroussin        "https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page">
1438*21817992SBaptiste Daroussin        https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page</a><br>
1439e1865124SBaptiste Daroussin
1440aae38d10SBaptiste Daroussin        </p>
1441aae38d10SBaptiste Daroussin      </dd>
1442aae38d10SBaptiste Daroussin
1443e1865124SBaptiste Daroussin      <dt><span class="part-name">ranger</span>
1444e1865124SBaptiste Daroussin      </dt>
1445aae38d10SBaptiste Daroussin
1446aae38d10SBaptiste Daroussin      <dd>
1447aae38d10SBaptiste Daroussin        <p>A console file manager with VI key bindings in
1448aae38d10SBaptiste Daroussin        <em>Python</em>.</p>
1449aae38d10SBaptiste Daroussin
1450aae38d10SBaptiste Daroussin        <p><a href=
1451aae38d10SBaptiste Daroussin        "https://ranger.github.io/">https://ranger.github.io/</a></p>
1452aae38d10SBaptiste Daroussin      </dd>
1453aae38d10SBaptiste Daroussin
1454e1865124SBaptiste Daroussin      <dt><span class="part-name">tin</span>
1455e1865124SBaptiste Daroussin      </dt>
1456aae38d10SBaptiste Daroussin
1457aae38d10SBaptiste Daroussin      <dd>
1458aae38d10SBaptiste Daroussin        <p>newsreader, supporting color, MIME</p>
1459aae38d10SBaptiste Daroussin
1460e1865124SBaptiste Daroussin        <p><a href="http://www.tin.org/">http://www.tin.org/</a></p>
1461aae38d10SBaptiste Daroussin      </dd>
1462aae38d10SBaptiste Daroussin
1463e1865124SBaptiste Daroussin      <dt><span class="part-name">vifm</span>
1464e1865124SBaptiste Daroussin      </dt>
1465aae38d10SBaptiste Daroussin
1466aae38d10SBaptiste Daroussin      <dd>
1467aae38d10SBaptiste Daroussin        <p>File manager with vi like keybindings</p>
1468aae38d10SBaptiste Daroussin
1469aae38d10SBaptiste Daroussin        <p><a href="https://vifm.info/">https://vifm.info/</a></p>
1470aae38d10SBaptiste Daroussin      </dd>
147106bfebdeSXin LI    </dl>
1472aae38d10SBaptiste Daroussin  </blockquote>
147306bfebdeSXin LI
1474aae38d10SBaptiste Daroussin  <p>as well as some that use <span class=
1475aae38d10SBaptiste Daroussin  "main-name">ncurses</span> for the terminfo support alone:</p>
147606bfebdeSXin LI
1477aae38d10SBaptiste Daroussin  <blockquote>
1478aae38d10SBaptiste Daroussin    <dl>
1479e1865124SBaptiste Daroussin      <dt><span class="part-name">minicom</span>
1480e1865124SBaptiste Daroussin      </dt>
148173f0a83dSXin LI
1482aae38d10SBaptiste Daroussin      <dd>
1483aae38d10SBaptiste Daroussin        <p>terminal emulator for serial modem connections</p>
148406bfebdeSXin LI
1485aae38d10SBaptiste Daroussin        <p><a href=
1486*21817992SBaptiste Daroussin        "https://salsa.debian.org/minicom-team/minicom">https://salsa.debian.org/minicom-team/minicom</a></p>
1487aae38d10SBaptiste Daroussin      </dd>
1488aae38d10SBaptiste Daroussin
1489e1865124SBaptiste Daroussin      <dt><span class="part-name">mosh</span>
1490e1865124SBaptiste Daroussin      </dt>
1491aae38d10SBaptiste Daroussin
1492aae38d10SBaptiste Daroussin      <dd>
1493aae38d10SBaptiste Daroussin        <p>a replacement for <code>ssh</code>.</p>
1494aae38d10SBaptiste Daroussin
1495*21817992SBaptiste Daroussin        <p><a href="https://mosh.org/">https://mosh.org/</a></p>
1496aae38d10SBaptiste Daroussin      </dd>
1497aae38d10SBaptiste Daroussin
1498e1865124SBaptiste Daroussin      <dt><span class="part-name">tack</span>
1499e1865124SBaptiste Daroussin      </dt>
1500aae38d10SBaptiste Daroussin
1501aae38d10SBaptiste Daroussin      <dd>
1502aae38d10SBaptiste Daroussin        <p>terminfo action checker</p>
1503aae38d10SBaptiste Daroussin
1504e1865124SBaptiste Daroussin        <p><a href="@HOMEPAGE@/tack.html">@HOMEPAGE@/tack.html</a></p>
1505aae38d10SBaptiste Daroussin      </dd>
1506aae38d10SBaptiste Daroussin
1507e1865124SBaptiste Daroussin      <dt><span class="part-name">tmux</span>
1508e1865124SBaptiste Daroussin      </dt>
1509aae38d10SBaptiste Daroussin
1510aae38d10SBaptiste Daroussin      <dd>
1511aae38d10SBaptiste Daroussin        <p>terminal multiplexor</p>
1512aae38d10SBaptiste Daroussin
1513aae38d10SBaptiste Daroussin        <p><a href=
1514aae38d10SBaptiste Daroussin        "https://github.com/tmux/tmux/wiki">https://github.com/tmux/tmux/wiki</a></p>
1515aae38d10SBaptiste Daroussin      </dd>
1516aae38d10SBaptiste Daroussin
1517e1865124SBaptiste Daroussin      <dt><span class="part-name">vile</span>
1518e1865124SBaptiste Daroussin      </dt>
1519aae38d10SBaptiste Daroussin
1520aae38d10SBaptiste Daroussin      <dd>
1521e1865124SBaptiste Daroussin        <p><em>vi-like-emacs</em> may be built to use the terminfo,
1522e1865124SBaptiste Daroussin        termcap or curses interfaces.</p>
1523aae38d10SBaptiste Daroussin
1524e1865124SBaptiste Daroussin        <p><a href="@WEBSITE@/vile/">@WEBSITE@/vile/</a></p>
1525aae38d10SBaptiste Daroussin      </dd>
1526aae38d10SBaptiste Daroussin    </dl>
1527aae38d10SBaptiste Daroussin  </blockquote>
1528aae38d10SBaptiste Daroussin
1529aae38d10SBaptiste Daroussin  <p>and finally, those which use only the termcap interface:</p>
1530aae38d10SBaptiste Daroussin
1531aae38d10SBaptiste Daroussin  <blockquote>
1532aae38d10SBaptiste Daroussin    <dl>
1533e1865124SBaptiste Daroussin      <dt><span class="part-name">emacs</span>
1534e1865124SBaptiste Daroussin      </dt>
1535aae38d10SBaptiste Daroussin
1536aae38d10SBaptiste Daroussin      <dd>
1537aae38d10SBaptiste Daroussin        <p>text editor</p>
1538aae38d10SBaptiste Daroussin
1539aae38d10SBaptiste Daroussin        <p><a href=
1540aae38d10SBaptiste Daroussin        "https://www.gnu.org/software/emacs/">https://www.gnu.org/software/emacs/</a></p>
1541aae38d10SBaptiste Daroussin      </dd>
1542aae38d10SBaptiste Daroussin
1543e1865124SBaptiste Daroussin      <dt><span class="part-name">less</span>
1544e1865124SBaptiste Daroussin      </dt>
1545aae38d10SBaptiste Daroussin
1546aae38d10SBaptiste Daroussin      <dd>
1547aae38d10SBaptiste Daroussin        <p>The most commonly used <em>pager</em> (a program that
1548aae38d10SBaptiste Daroussin        displays text files).</p>
1549aae38d10SBaptiste Daroussin
1550aae38d10SBaptiste Daroussin        <p><a href=
1551aae38d10SBaptiste Daroussin        "http://www.greenwoodsoftware.com/less/">http://www.greenwoodsoftware.com/less/</a></p>
1552aae38d10SBaptiste Daroussin      </dd>
1553aae38d10SBaptiste Daroussin
1554e1865124SBaptiste Daroussin      <dt><span class="part-name">screen</span>
1555e1865124SBaptiste Daroussin      </dt>
1556aae38d10SBaptiste Daroussin
1557aae38d10SBaptiste Daroussin      <dd>
1558aae38d10SBaptiste Daroussin        <p>terminal multiplexor</p>
1559aae38d10SBaptiste Daroussin
1560aae38d10SBaptiste Daroussin        <p><a href=
1561aae38d10SBaptiste Daroussin        "https://www.gnu.org/software/screen/">https://www.gnu.org/software/screen/</a></p>
1562aae38d10SBaptiste Daroussin      </dd>
1563aae38d10SBaptiste Daroussin
1564e1865124SBaptiste Daroussin      <dt><span class="part-name">vim</span>
1565e1865124SBaptiste Daroussin      </dt>
1566aae38d10SBaptiste Daroussin
1567aae38d10SBaptiste Daroussin      <dd>
1568aae38d10SBaptiste Daroussin        <p>text editor</p>
1569aae38d10SBaptiste Daroussin
1570e1865124SBaptiste Daroussin        <p><a href="https://www.vim.org/">https://www.vim.org/</a></p>
1571aae38d10SBaptiste Daroussin      </dd>
1572aae38d10SBaptiste Daroussin    </dl>
1573aae38d10SBaptiste Daroussin  </blockquote>
1574aae38d10SBaptiste Daroussin
1575aae38d10SBaptiste Daroussin  <h2><a name="h2-development" id="h2-development">Development
1576aae38d10SBaptiste Daroussin  activities</a></h2>
1577aae38d10SBaptiste Daroussin
1578aae38d10SBaptiste Daroussin  <p>Zeyd Ben-Halim started <span class="main-name">ncurses</span>
1579aae38d10SBaptiste Daroussin  from a previous package pcurses, written by Pavel Curtis. Eric S.
1580aae38d10SBaptiste Daroussin  Raymond continued development. J&uuml;rgen Pfeifer wrote most of
1581e1865124SBaptiste Daroussin  the form and menu libraries.</p>
1582e1865124SBaptiste Daroussin
1583e1865124SBaptiste Daroussin  <p>Ongoing development work is done by <a href=
1584e1865124SBaptiste Daroussin  "mailto:dickey@invisible-island.net">Thomas E. Dickey</a>. Thomas
1585e1865124SBaptiste Daroussin  E. Dickey has acted as the maintainer for the Free Software
1586*21817992SBaptiste Daroussin  Foundation, which held a <a href=
1587e1865124SBaptiste Daroussin  "@HOMEPAGE@/ncurses-license.html">copyright on ncurses</a> for
1588e1865124SBaptiste Daroussin  releases 4.2 through 6.1. Following the release of ncurses 6.1,
1589e1865124SBaptiste Daroussin  effective as of release 6.2, copyright for ncurses reverted to
1590e1865124SBaptiste Daroussin  Thomas E. Dickey (see the <a href=
1591e1865124SBaptiste Daroussin  "@HOMEPAGE@/ncurses.faq.html#relicensed">ncurses FAQ</a> for
1592e1865124SBaptiste Daroussin  additional information).</p>
1593aae38d10SBaptiste Daroussin
1594aae38d10SBaptiste Daroussin  <p>Contact the current maintainers at</p>
1595aae38d10SBaptiste Daroussin
1596aae38d10SBaptiste Daroussin  <blockquote>
1597aae38d10SBaptiste Daroussin    <a href="mailto:bug-ncurses@gnu.org">bug-ncurses@gnu.org</a>
1598aae38d10SBaptiste Daroussin  </blockquote>
1599aae38d10SBaptiste Daroussin
1600aae38d10SBaptiste Daroussin  <p>To join the ncurses mailing list, please write email to</p>
1601aae38d10SBaptiste Daroussin
1602aae38d10SBaptiste Daroussin  <blockquote>
1603aae38d10SBaptiste Daroussin    <a href=
1604aae38d10SBaptiste Daroussin    "mailto:bug-ncurses-request@gnu.org">bug-ncurses-request@gnu.org</a>
1605e1865124SBaptiste Daroussin  </blockquote>
1606e1865124SBaptiste Daroussin  containing the line:
1607aae38d10SBaptiste Daroussin  <blockquote>
1608aae38d10SBaptiste Daroussin    <p><code>subscribe</code>
1609aae38d10SBaptiste Daroussin    <em>&lt;name&gt;@&lt;host.domain&gt;</em></p>
1610aae38d10SBaptiste Daroussin  </blockquote>
16110e3d5408SPeter Wemm
161206bfebdeSXin LI  <p>This list is open to anyone interested in helping with the
161306bfebdeSXin LI  development and testing of this package.</p>
16140e3d5408SPeter Wemm
1615e1865124SBaptiste Daroussin  <p>Beta versions of <span class="main-name">ncurses</span> are
1616e1865124SBaptiste Daroussin  made available at</p>
1617aae38d10SBaptiste Daroussin
1618aae38d10SBaptiste Daroussin  <blockquote>
1619aae38d10SBaptiste Daroussin    <p><a href=
1620*21817992SBaptiste Daroussin    "https://invisible-island.net/archives/ncurses/current/">https://invisible-island.net/archives/ncurses/current/</a>
1621aae38d10SBaptiste Daroussin    and<br>
1622aae38d10SBaptiste Daroussin    <a href=
1623e1865124SBaptiste Daroussin    "https://invisible-mirror.net/archives/ncurses/current/">https://invisible-mirror.net/archives/ncurses/current/</a>&nbsp;.</p>
1624e1865124SBaptiste Daroussin  </blockquote>
1625e1865124SBaptiste Daroussin
1626e1865124SBaptiste Daroussin  <p>Patches to the current release are made available at</p>
1627e1865124SBaptiste Daroussin
1628e1865124SBaptiste Daroussin  <blockquote>
1629e1865124SBaptiste Daroussin    <p><a href=
1630*21817992SBaptiste Daroussin    "https://invisible-island.net/archives/ncurses/6.4/">https://invisible-island.net/archives/ncurses/6.4/</a>
1631e1865124SBaptiste Daroussin    and<br>
1632e1865124SBaptiste Daroussin    <a href=
1633*21817992SBaptiste Daroussin    "https://invisible-mirror.net/archives/ncurses/6.4/">https://invisible-mirror.net/archives/ncurses/6.4/</a>&nbsp;.</p>
1634aae38d10SBaptiste Daroussin  </blockquote>
16350e3d5408SPeter Wemm
163673f0a83dSXin LI  <p>There is an archive of the mailing list here:</p>
163773f0a83dSXin LI
1638aae38d10SBaptiste Daroussin  <blockquote>
163973f0a83dSXin LI    <p><a href=
1640*21817992SBaptiste Daroussin    "https://lists.gnu.org/archive/html/bug-ncurses">https://lists.gnu.org/archive/html/bug-ncurses</a>&nbsp;.</p>
1641aae38d10SBaptiste Daroussin  </blockquote>
164273f0a83dSXin LI
1643aae38d10SBaptiste Daroussin  <h2><a name="h2-this-stuff" id="h2-this-stuff">Related
1644aae38d10SBaptiste Daroussin  resources</a></h2>
1645aae38d10SBaptiste Daroussin
1646aae38d10SBaptiste Daroussin  <p>The release notes make scattered references to these pages,
1647aae38d10SBaptiste Daroussin  which may be interesting by themselves:</p>
16480e3d5408SPeter Wemm
164906bfebdeSXin LI  <ul>
1650e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/ncurses-license.html"><span class=
1651e1865124SBaptiste Daroussin    "main-name">ncurses</span> licensing</a></li>
16520e3d5408SPeter Wemm
1653e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/ncurses-mapsyms.html">Symbol versioning
1654e1865124SBaptiste Daroussin    in <span class="main-name">ncurses</span></a></li>
1655aae38d10SBaptiste Daroussin
1656e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/ncurses-slang.html">Comments on
1657e1865124SBaptiste Daroussin    <span class="main-name">ncurses</span> versus <span class=
1658aae38d10SBaptiste Daroussin    "main-name">slang</span> (S-Lang)</a></li>
1659aae38d10SBaptiste Daroussin
1660*21817992SBaptiste Daroussin    <li><a href="@HOMEPAGE@/ncurses-openbsd.html">Comments on
1661*21817992SBaptiste Daroussin    <span class="main-name">OpenBSD</span></a></li>
1662*21817992SBaptiste Daroussin
1663e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/tack.html">tack &ndash; terminfo action
1664e1865124SBaptiste Daroussin    checker</a></li>
1665e1865124SBaptiste Daroussin
1666e1865124SBaptiste Daroussin    <li><a href="@HOMEPAGE@/tctest.html">tctest &ndash; termcap
1667e1865124SBaptiste Daroussin    library checker</a></li>
1668aae38d10SBaptiste Daroussin
1669aae38d10SBaptiste Daroussin    <li><a href=
1670e1865124SBaptiste Daroussin    "@HOMEPAGE@/ncurses.html#download_database">Terminal
1671e1865124SBaptiste Daroussin    Database</a></li>
167273f0a83dSXin LI  </ul>
16730e3d5408SPeter Wemm
1674aae38d10SBaptiste Daroussin  <h2><a name="h2-other-stuff" id="h2-other-stuff">Other
1675aae38d10SBaptiste Daroussin  resources</a></h2>
167673f0a83dSXin LI
167773f0a83dSXin LI  <p>The distribution provides a newer version of the
167873f0a83dSXin LI  terminfo-format terminal description file once maintained by
167973f0a83dSXin LI  <a href="http://www.catb.org/~esr/terminfo/">Eric
168006bfebdeSXin LI  Raymond</a>&nbsp;. Unlike the older version, the termcap and
1681aae38d10SBaptiste Daroussin  terminfo data are provided in the same file, which also provides
1682*21817992SBaptiste Daroussin  several user-definable extensions beyond the X/Open Curses
1683aae38d10SBaptiste Daroussin  specification.</p>
168406bfebdeSXin LI
168506bfebdeSXin LI  <p>You can find lots of information on terminal-related topics
1686*21817992SBaptiste Daroussin  not covered in the terminfo file in <a href=
1687*21817992SBaptiste Daroussin  "https://shuford.invisible-island.net/">Richard Shuford's
1688*21817992SBaptiste Daroussin  archive</a> (<a href=
1689*21817992SBaptiste Daroussin  "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">original</a>).
1690*21817992SBaptiste Daroussin  The collection of computer manuals at <a href=
1691e1865124SBaptiste Daroussin  "http://www.bitsavers.org/pdf/">bitsavers.org</a> has also been
1692e1865124SBaptiste Daroussin  useful.</p>
1693aae38d10SBaptiste Daroussin
1694aae38d10SBaptiste Daroussin  <div class="nav">
1695aae38d10SBaptiste Daroussin    <ul>
1696aae38d10SBaptiste Daroussin      <li><a href="#h2-overview">Overview</a></li>
1697aae38d10SBaptiste Daroussin
1698aae38d10SBaptiste Daroussin      <li>
1699aae38d10SBaptiste Daroussin        <a href="#h2-release-notes">Release Notes</a>
1700aae38d10SBaptiste Daroussin        <ul>
1701aae38d10SBaptiste Daroussin          <li>
1702aae38d10SBaptiste Daroussin            <a href="#h3-library">Library improvements</a>
1703aae38d10SBaptiste Daroussin            <ul>
1704aae38d10SBaptiste Daroussin              <li><a href="#h4-new-library">New features</a></li>
1705aae38d10SBaptiste Daroussin
1706aae38d10SBaptiste Daroussin              <li><a href="#h4-fixes-library">Other
1707aae38d10SBaptiste Daroussin              improvements</a></li>
1708aae38d10SBaptiste Daroussin            </ul>
1709aae38d10SBaptiste Daroussin          </li>
1710aae38d10SBaptiste Daroussin
1711aae38d10SBaptiste Daroussin          <li>
1712aae38d10SBaptiste Daroussin            <a href="#h3-programs">Program improvements</a>
1713aae38d10SBaptiste Daroussin            <ul>
1714aae38d10SBaptiste Daroussin              <li><a href="#h4-utilities">Utilities</a></li>
1715aae38d10SBaptiste Daroussin
1716aae38d10SBaptiste Daroussin              <li><a href="#h4-examples">Examples</a></li>
1717aae38d10SBaptiste Daroussin            </ul>
1718aae38d10SBaptiste Daroussin          </li>
1719aae38d10SBaptiste Daroussin
1720aae38d10SBaptiste Daroussin          <li><a href="#h3-database">Terminal database</a></li>
1721aae38d10SBaptiste Daroussin
1722aae38d10SBaptiste Daroussin          <li><a href="#h3-documentation">Documentation</a></li>
1723aae38d10SBaptiste Daroussin
1724e1865124SBaptiste Daroussin          <li><a href="#h3-bug-fixes">Interesting bug-fixes</a></li>
1725aae38d10SBaptiste Daroussin
1726aae38d10SBaptiste Daroussin          <li>
1727aae38d10SBaptiste Daroussin            <a href="#h3-config-config">Configuration changes</a>
1728aae38d10SBaptiste Daroussin            <ul>
1729aae38d10SBaptiste Daroussin              <li><a href="#h4-config-major">Major changes</a></li>
1730aae38d10SBaptiste Daroussin
1731aae38d10SBaptiste Daroussin              <li><a href="#h4-config-options">Configuration
1732aae38d10SBaptiste Daroussin              options</a></li>
1733aae38d10SBaptiste Daroussin            </ul>
1734aae38d10SBaptiste Daroussin          </li>
1735aae38d10SBaptiste Daroussin
1736aae38d10SBaptiste Daroussin          <li><a href="#h3-portability">Portability</a></li>
1737aae38d10SBaptiste Daroussin        </ul>
1738aae38d10SBaptiste Daroussin      </li>
1739aae38d10SBaptiste Daroussin
1740aae38d10SBaptiste Daroussin      <li><a href="#h2-features">Features of <span class=
1741aae38d10SBaptiste Daroussin      "main-name">ncurses</span></a></li>
1742aae38d10SBaptiste Daroussin
1743aae38d10SBaptiste Daroussin      <li><a href="#h2-who-uses">Applications using <span class=
1744aae38d10SBaptiste Daroussin      "main-name">ncurses</span></a></li>
1745aae38d10SBaptiste Daroussin
1746aae38d10SBaptiste Daroussin      <li><a href="#h2-development">Development activities</a></li>
1747aae38d10SBaptiste Daroussin
1748aae38d10SBaptiste Daroussin      <li><a href="#h2-this-stuff">Related resources</a></li>
1749aae38d10SBaptiste Daroussin
1750aae38d10SBaptiste Daroussin      <li><a href="#h2-other-stuff">Other resources</a></li>
1751aae38d10SBaptiste Daroussin    </ul>
1752aae38d10SBaptiste Daroussin  </div>
175306bfebdeSXin LI</body>
175406bfebdeSXin LI</html>
1755