xref: /freebsd/contrib/ncurses/ANNOUNCE (revision 21817992b3314c908ab50f0bb88d2ee750b9c4ac)
1*21817992SBaptiste Daroussin                            Announcing ncurses 6.5
2aae38d10SBaptiste Daroussin
3aae38d10SBaptiste DaroussinOverview
40e3d5408SPeter Wemm
50e3d5408SPeter Wemm   The  ncurses  (new  curses)  library  is  a free software emulation of
6aae38d10SBaptiste Daroussin   curses  in  System  V  Release  4.0 (SVr4), and more. It uses terminfo
7aae38d10SBaptiste Daroussin   format,  supports  pads  and  color  and multiple highlights and forms
8aae38d10SBaptiste Daroussin   characters and function-key mapping, and has all the other SVr4-curses
9aae38d10SBaptiste Daroussin   enhancements  over  BSD curses. SVr4 curses became the basis of X/Open
10aae38d10SBaptiste Daroussin   Curses.
110e3d5408SPeter Wemm
120e3d5408SPeter Wemm   In  mid-June  1995,  the  maintainer of 4.4BSD curses declared that he
13aae38d10SBaptiste Daroussin   considered  4.4BSD curses obsolete, and encouraged the keepers of unix
144a1a9510SRong-En Fan   releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.
150e3d5408SPeter Wemm
16aae38d10SBaptiste Daroussin   Since 1995, ncurses has been ported to many systems:
17aae38d10SBaptiste Daroussin     * It is used in almost every system based on the Linux kernel (aside
18aae38d10SBaptiste Daroussin       from some embedded applications).
19aae38d10SBaptiste Daroussin     * It  is  used  as the system curses library on OpenBSD, FreeBSD and
20e1865124SBaptiste Daroussin       MacOS.
21aae38d10SBaptiste Daroussin     * It  is used in environments such as Cygwin and MinGW. The first of
22aae38d10SBaptiste Daroussin       these was EMX on OS/2 Warp.
23aae38d10SBaptiste Daroussin     * It is used (though usually not as the system curses) on all of the
24aae38d10SBaptiste Daroussin       vendor  unix  systems,  e.g.,  AIX,  HP-UX,  IRIX64, SCO, Solaris,
25aae38d10SBaptiste Daroussin       Tru64.
26aae38d10SBaptiste Daroussin     * It should work readily on any ANSI/POSIX-conforming unix.
270e3d5408SPeter Wemm
280e3d5408SPeter Wemm   The distribution includes the library and support utilities, including
29e1865124SBaptiste Daroussin     * captoinfo, a termcap conversion tool
30e1865124SBaptiste Daroussin     * clear, utility for clearing the screen
31e1865124SBaptiste Daroussin     * infocmp, the terminfo decompiler
32e1865124SBaptiste Daroussin     * tabs, set tabs on a terminal
33e1865124SBaptiste Daroussin     * tic, the terminfo compiler
34e1865124SBaptiste Daroussin     * toe, list (table of) terminfo entries
35e1865124SBaptiste Daroussin     * tput,  utility  for  retrieving  terminal  capabilities  in  shell
36aae38d10SBaptiste Daroussin       scripts
37e1865124SBaptiste Daroussin     * tset, to initialize the terminal
380e3d5408SPeter Wemm
39aae38d10SBaptiste Daroussin   Full manual pages are provided for the library and tools.
40aae38d10SBaptiste Daroussin
41e1865124SBaptiste Daroussin   The ncurses distribution is available at ncurses' homepage:
42aae38d10SBaptiste Daroussin
43*21817992SBaptiste Daroussin     https://invisible-island.net/archives/ncurses/ or
44e1865124SBaptiste Daroussin     https://invisible-mirror.net/archives/ncurses/ .
45aae38d10SBaptiste Daroussin
46*21817992SBaptiste Daroussin   It is also available at the GNU distribution site
47aae38d10SBaptiste Daroussin
48*21817992SBaptiste Daroussin     https://ftp.gnu.org/gnu/ncurses/ .
490e3d5408SPeter Wemm
500e3d5408SPeter WemmRelease Notes
510e3d5408SPeter Wemm
52*21817992SBaptiste Daroussin   These notes are for ncurses 6.5, released April 27, 2024.
530e3d5408SPeter Wemm
54aae38d10SBaptiste Daroussin   This  release  is  designed  to  be source-compatible with ncurses 5.0
55*21817992SBaptiste Daroussin   through  6.4; providing extensions to the application binary interface
56aae38d10SBaptiste Daroussin   (ABI).  Although  the  source  can  still be configured to support the
57e1865124SBaptiste Daroussin   ncurses  5  ABI, the reason for the release is to reflect improvements
58e1865124SBaptiste Daroussin   to the ncurses 6 ABI and the supporting utility programs.
590e3d5408SPeter Wemm
60aae38d10SBaptiste Daroussin   There  are,  of  course,  numerous  other improvements, listed in this
61aae38d10SBaptiste Daroussin   announcement.
620e3d5408SPeter Wemm
63*21817992SBaptiste Daroussin   The   most  important  bug-fixes/improvements  dealt  with  robustness
64*21817992SBaptiste Daroussin   issues.  The  release notes also mention some other bug-fixes, but are
65*21817992SBaptiste Daroussin   focused  on  new  features and improvements to existing features since
66*21817992SBaptiste Daroussin   ncurses 6.4 release.
670e3d5408SPeter Wemm
68aae38d10SBaptiste Daroussin  Library improvements
69aae38d10SBaptiste Daroussin
70aae38d10SBaptiste Daroussin    New features
71aae38d10SBaptiste Daroussin
72*21817992SBaptiste Daroussin   These are new features:
73*21817992SBaptiste Daroussin     * The low-level terminfo and termcap interfaces are used both by the
74*21817992SBaptiste Daroussin       higher-level curses library, as well as by many applications.
75*21817992SBaptiste Daroussin       The  functions  which  convert  parameterized  terminal capability
76*21817992SBaptiste Daroussin       strings  for output to the terminal (tiparm and tparm) analyze the
77*21817992SBaptiste Daroussin       capability string to determine which parameters are strings (i.e.,
78*21817992SBaptiste Daroussin       addresses), versus numbers (not addresses).
79*21817992SBaptiste Daroussin       The  library's analysis of a capability string may differ from the
80*21817992SBaptiste Daroussin       calling  application's design if environment variables are used to
81*21817992SBaptiste Daroussin       point  to  an  invalid  terminal  database. This is a longstanding
82*21817992SBaptiste Daroussin       problem  with  all  implementations  of  terminfo, dating from the
83*21817992SBaptiste Daroussin       early 1980s.
84*21817992SBaptiste Daroussin       Two  new  functions  address this problem: by providing a function
85*21817992SBaptiste Daroussin       which  allows  the  calling  application  to tell ncurses how many
86*21817992SBaptiste Daroussin       string-parameters to expect:
87*21817992SBaptiste Daroussin          + tiscan_s  helps  applications  check  formatting capabilities
88*21817992SBaptiste Daroussin            that would be passed to tiparm_s.
89*21817992SBaptiste Daroussin          + tiparm_s provides applications a way to tell ncurses what the
90*21817992SBaptiste Daroussin            expected parameters are for a capability.
91*21817992SBaptiste Daroussin     * The  ncurses library supports a compile-time feature (enabled with
92*21817992SBaptiste Daroussin       the   configure   --enable-check-size   option)  which  simplifies
93*21817992SBaptiste Daroussin       initialization  with  terminals  which  do  not  negotiate  window
94*21817992SBaptiste Daroussin       (screen)  size.  This is done in setupterm, by providing for using
95*21817992SBaptiste Daroussin       ANSI cursor-position report (in user6/user7 terminfo capabilities)
96*21817992SBaptiste Daroussin       to  obtain  the  screen  size  if neither environment variables or
97*21817992SBaptiste Daroussin       ioctl is used.
98*21817992SBaptiste Daroussin       The  ncurses  test-program  with options "-E -T" demonstrates this
99*21817992SBaptiste Daroussin       feature.
100*21817992SBaptiste Daroussin     * add functions to query tty-flags in SCREEN
101aae38d10SBaptiste Daroussin
102*21817992SBaptiste Daroussin   This release drops compatibility with obsolete versions of tack, e.g.,
103*21817992SBaptiste Daroussin   pre-1.08
104aae38d10SBaptiste Daroussin
105aae38d10SBaptiste Daroussin    Other improvements
106aae38d10SBaptiste Daroussin
107aae38d10SBaptiste Daroussin   These are improvements to existing features:
108*21817992SBaptiste Daroussin     * In  addition  to  the  new,  safer function tiparm_s, ncurses adds
109*21817992SBaptiste Daroussin       checks to make the older tiparm, tparm and tgoto functions safer:
110*21817992SBaptiste Daroussin          + the  terminfo  functions  tiparm  and  tparm  ensure that the
111*21817992SBaptiste Daroussin            capability  string  comes from the terminal description which
112*21817992SBaptiste Daroussin            ncurses  loads,  rather  than  from  random  data  which  the
113*21817992SBaptiste Daroussin            application happens to have.
114*21817992SBaptiste Daroussin          + the  tgoto function disallows capabilities which its analysis
115*21817992SBaptiste Daroussin            shows will attempt to use string parameters.
116*21817992SBaptiste Daroussin          + ncurses  uses  internal functions which correspond to tiparm,
117*21817992SBaptiste Daroussin            and  tgoto which ensure that the capability strings which are
118*21817992SBaptiste Daroussin            passed  to  these  functions  come  from  the loaded terminal
119*21817992SBaptiste Daroussin            description.
120*21817992SBaptiste Daroussin     * improve  check  in  lib_tparm.c, ensuring that a char* fits into a
121*21817992SBaptiste Daroussin       TPARM_ARG
122*21817992SBaptiste Daroussin     * modify  _nc_syserr_abort  to  use _nc_env_access, rather than only
123*21817992SBaptiste Daroussin       checking root uid
124*21817992SBaptiste Daroussin     * improve thread lock in lib_trace.c
125*21817992SBaptiste Daroussin     * modify  flushinp  to  use  file descriptors in SCREEN, rather than
126*21817992SBaptiste Daroussin       from TERMINAL, and check if they are for a terminal, like SVr4
127*21817992SBaptiste Daroussin     * modify mcprint to use file descriptor in SCREEN, for consistency
128*21817992SBaptiste Daroussin     * modify  internal  function  _nc_read_file_entry  to  show relevant
129*21817992SBaptiste Daroussin       filename in warnings
130*21817992SBaptiste Daroussin     * improve  checks  in  internal  function convert_string for corrupt
131*21817992SBaptiste Daroussin       terminfo entry
132*21817992SBaptiste Daroussin     * review/improve handling of out-of-memory conditions
133*21817992SBaptiste Daroussin     * limit  delays  to 30 seconds, i.e., padding delays in terminfo, as
134*21817992SBaptiste Daroussin       well as napms and delay_output functions
135*21817992SBaptiste Daroussin     * fix  reallocation  loop  for  vsnprintf  in  _nc_sprintf_string by
136*21817992SBaptiste Daroussin       copying the va_list variable
137*21817992SBaptiste Daroussin     * modify  delscreen  to  limit  the windows which it creates to just
138*21817992SBaptiste Daroussin       those associated with the screen
139*21817992SBaptiste Daroussin     * modify  endwin to return an error if it is called again without an
140*21817992SBaptiste Daroussin       intervening screen update
141*21817992SBaptiste Daroussin     * modify wenclose to handle pads
142*21817992SBaptiste Daroussin     * eliminate use of PATH_MAX in lib_trace.c
143*21817992SBaptiste Daroussin     * provide for any CCHARW_MAX greater than 1
144aae38d10SBaptiste Daroussin
145aae38d10SBaptiste Daroussin   These are corrections to existing features:
146*21817992SBaptiste Daroussin     * correct loop termination condition in waddnstr and waddnwstr
147*21817992SBaptiste Daroussin     * improve  parsing  in  internal  function _nc_msec_cost, allowing a
148*21817992SBaptiste Daroussin       single decimal point
149*21817992SBaptiste Daroussin     * amend  parameter check for entire string versus specific length in
150*21817992SBaptiste Daroussin       winsnstr  and wins_nwstr to match Solaris; make similar correction
151*21817992SBaptiste Daroussin       to wins_nwstr
152*21817992SBaptiste Daroussin     * correct   internal   function   wadd_wch_literal   when  adding  a
153*21817992SBaptiste Daroussin       non-spacing character to a double-width character
154*21817992SBaptiste Daroussin     * correct  definition of Charable macro for non-wide ncurses library
155*21817992SBaptiste Daroussin       .
156aae38d10SBaptiste Daroussin
157aae38d10SBaptiste Daroussin  Program improvements
158aae38d10SBaptiste Daroussin
159*21817992SBaptiste Daroussin   Several improvements were made to the utility programs. Some were done
160*21817992SBaptiste Daroussin   to  make  the  infocmp  option  "-u" option help refactor the terminal
161*21817992SBaptiste Daroussin   database.
162aae38d10SBaptiste Daroussin
163e1865124SBaptiste Daroussin   infocmp
164aae38d10SBaptiste Daroussin
165*21817992SBaptiste Daroussin          + add  limit  checks  for processing extended capabilities with
166*21817992SBaptiste Daroussin            the "-u" option
167*21817992SBaptiste Daroussin          + correct  initial  alignment of extended capabilities, so that
168*21817992SBaptiste Daroussin            the "-u" option can be used for more than two terminal types
169*21817992SBaptiste Daroussin          + modify  "-u"  option  to not report cancels for strings which
170*21817992SBaptiste Daroussin            were already cancelled in a use'd chunk.
171*21817992SBaptiste Daroussin          + correct  an  assignment  "-u"  for  detecting if a boolean is
172*21817992SBaptiste Daroussin            unset  in  a base entry and set in a use'd chunk, i.e., if it
173*21817992SBaptiste Daroussin            was cancelled.
174aae38d10SBaptiste Daroussin
175e1865124SBaptiste Daroussin   tic
176aae38d10SBaptiste Daroussin
177*21817992SBaptiste Daroussin          + correct limit-check when dumping tc/use clause via "-I"
178*21817992SBaptiste Daroussin          + check  return  value  of  _nc_save_str, in special case where
179*21817992SBaptiste Daroussin            extended   capabilities   are   processed  but  the  terminal
180*21817992SBaptiste Daroussin            description was not initialized
181*21817992SBaptiste Daroussin          + modify  check for multiply defined aliases to report problems
182*21817992SBaptiste Daroussin            within  the  current  runtime  rather than for conflicts with
183*21817992SBaptiste Daroussin            pre-existing terminal descriptions.
184*21817992SBaptiste Daroussin          + disallow  using $TERMINFO or $HOME/.terminfo when "-o" option
185*21817992SBaptiste Daroussin            is used
186e1865124SBaptiste Daroussin
187*21817992SBaptiste Daroussin   tput and tset
188e1865124SBaptiste Daroussin
189*21817992SBaptiste Daroussin          + add "-v" option to tput, to show warnings
190*21817992SBaptiste Daroussin          + modify reset command to avoid altering clocal if the terminal
191*21817992SBaptiste Daroussin            uses a modem
192*21817992SBaptiste Daroussin          + modify  reset feature to avoid 1-second sleep if running in a
193*21817992SBaptiste Daroussin            pseudo-terminal
194aae38d10SBaptiste Daroussin
195aae38d10SBaptiste Daroussin    Examples
196aae38d10SBaptiste Daroussin
197e1865124SBaptiste Daroussin   Along  with  the  library and utilities, improvements were made to the
198*21817992SBaptiste Daroussin   ncurses-examples:
199*21817992SBaptiste Daroussin     * modify test_tparm to account for extended capabilities
200*21817992SBaptiste Daroussin     * corrected mouse mask in test/testcurs.c
201*21817992SBaptiste Daroussin     * modify test/clip_printw.c to optionally test non-wrapped updates
202*21817992SBaptiste Daroussin     * modify test/test_mouse.c to use curses api for raw/noraw
203*21817992SBaptiste Daroussin     * modify test/clip_printw.c to optionally test non-wrapped updates
204aae38d10SBaptiste Daroussin
205*21817992SBaptiste Daroussin   There is one new demo/test programs:
206aae38d10SBaptiste Daroussin
207*21817992SBaptiste Daroussin   test/test_endwin.c
208*21817992SBaptiste Daroussin          This program shows the return-status from endwin with different
209*21817992SBaptiste Daroussin          combinations of endwin (repeated), initscr, newterm.
210aae38d10SBaptiste Daroussin
211aae38d10SBaptiste Daroussin  Terminal database
212aae38d10SBaptiste Daroussin
213aae38d10SBaptiste Daroussin   There are several new terminal descriptions:
214*21817992SBaptiste Daroussin     * ansi+apparrows
215*21817992SBaptiste Daroussin     * contour
216*21817992SBaptiste Daroussin     * linux+kbs for terminals which imitate xterm's behavior with Linux
217*21817992SBaptiste Daroussin     * rio, rio-direct
218*21817992SBaptiste Daroussin     * mostlike
219*21817992SBaptiste Daroussin     * ms-vt100-16color, winconsole
220*21817992SBaptiste Daroussin     * vt100+noapp,   vt100+noapp+pc,  xterm+app+pc,  xterm+decedit  from
221*21817992SBaptiste Daroussin       xterm #389
222*21817992SBaptiste Daroussin     * putty+cursor to reflect amending of modified cursor-keys in 2021
223*21817992SBaptiste Daroussin     * wezterm
224aae38d10SBaptiste Daroussin
225aae38d10SBaptiste Daroussin   There  are  many  changes to existing terminal descriptions. Some were
226*21817992SBaptiste Daroussin   updates  to  several  descriptions, using the infocmp "-u" option in a
227*21817992SBaptiste Daroussin   script  to  determine  which  building-block  entries could be used to
228*21817992SBaptiste Daroussin   replace multiple capability settings (and trim redundant information).
229aae38d10SBaptiste Daroussin
230*21817992SBaptiste Daroussin   Other changes include:
231*21817992SBaptiste Daroussin     * document XF, kxIN and kxOUT
232*21817992SBaptiste Daroussin     * add note on sun regarding wscons/cmdtool/shelltool
233*21817992SBaptiste Daroussin     * remove DECCOLM+DECSCLM from foot
234*21817992SBaptiste Daroussin     * add xterm+focus to foot+base
235*21817992SBaptiste Daroussin     * add ecma+strikeout to putty
236*21817992SBaptiste Daroussin     * use CSI 3J in vte-2017
237*21817992SBaptiste Daroussin     * use oldxterm+sm+1006 in vte-2014
238*21817992SBaptiste Daroussin     * modify xgterm to work around line-drawing bug
239*21817992SBaptiste Daroussin     * add  xterm  focus  mode 1004 to xterm+focus as fe/fd capabilities,
240*21817992SBaptiste Daroussin       like vim.
241*21817992SBaptiste Daroussin     * add xterm+focus to alacritty+common
242*21817992SBaptiste Daroussin     * add  XR/xr,  to work with vim, and use RV/rv to denote DA2 and its
243*21817992SBaptiste Daroussin       response
244*21817992SBaptiste Daroussin     * add  XF  flag  to  xterm+focus so that termcap applications can be
245*21817992SBaptiste Daroussin       aware of terminals which may support focus in/out
246*21817992SBaptiste Daroussin     * use xterm+focus in xterm-p370 and tmux
247*21817992SBaptiste Daroussin     * remove xterm+sm+1006 from tmux
248*21817992SBaptiste Daroussin     * NetBSD-related fixes for x68k and wsvt25
249aae38d10SBaptiste Daroussin
250aae38d10SBaptiste Daroussin  Documentation
251aae38d10SBaptiste Daroussin
252aae38d10SBaptiste Daroussin   As usual, this release
253aae38d10SBaptiste Daroussin     * improves documentation by describing new features,
254aae38d10SBaptiste Daroussin     * attempts  to  improve the description of features which users have
255aae38d10SBaptiste Daroussin       found confusing
256aae38d10SBaptiste Daroussin     * fills  in overlooked descriptions of features which were described
257e1865124SBaptiste Daroussin       in the NEWS file but treated sketchily in manual pages.
258aae38d10SBaptiste Daroussin
259aae38d10SBaptiste Daroussin   In  addition  to  providing  background  information  to explain these
260aae38d10SBaptiste Daroussin   features   and   show   how   they  evolved,  there  are  corrections,
261aae38d10SBaptiste Daroussin   clarifications, etc.:
262e1865124SBaptiste Daroussin     * Corrections:
263*21817992SBaptiste Daroussin          + add   assignment   in  CF_MAN_PAGES  to  fill  in  value  for
264*21817992SBaptiste Daroussin            TERMINFO_DIRS in ncurses, terminfo and tic manpages.
265*21817992SBaptiste Daroussin          + clarify  interaction  of  -R  option  versus -C, -I and -r in
266*21817992SBaptiste Daroussin            infocmp manpage.
267*21817992SBaptiste Daroussin          + correct manpage description of panel_hidden.
268*21817992SBaptiste Daroussin          + improve  manpage  description  for addch versus unctrl format
269*21817992SBaptiste Daroussin            used for non-printable characters.
270*21817992SBaptiste Daroussin          + improve  manpages  discussing  file  descriptors in low-level
271*21817992SBaptiste Daroussin            functions.
272*21817992SBaptiste Daroussin          + improve description of search rules for terminal descriptions
273*21817992SBaptiste Daroussin            in terminfo manpage.
274*21817992SBaptiste Daroussin          + modify  dist.mk  to  avoid  passing  developer's  comments in
275*21817992SBaptiste Daroussin            manpages into the generated html documentation.
276*21817992SBaptiste Daroussin          + modify  test-package  "ncurses6-doc"  to use manpage-aliases,
277*21817992SBaptiste Daroussin            which  in  turn  required a change to the configure script to
278*21817992SBaptiste Daroussin            factor in the extra-suffix option when deriving alias names.
279e1865124SBaptiste Daroussin     * New/improved history and portability sections:
280*21817992SBaptiste Daroussin          + add  information  about  "ttycap",  termcap's  forerunner, to
281*21817992SBaptiste Daroussin            tset.1
282*21817992SBaptiste Daroussin          + document   limitations   of   tparm,   and  error-returns  in
283*21817992SBaptiste Daroussin            curs_terminfo.3x
284*21817992SBaptiste Daroussin          + document   limitations   of   tgoto,   and  error-returns  in
285*21817992SBaptiste Daroussin            curs_termcap.3x
286e1865124SBaptiste Daroussin     * Other improvements:
287*21817992SBaptiste Daroussin          + This  release  has many changes to improve the formatting and
288*21817992SBaptiste Daroussin            style of the manpages.
289*21817992SBaptiste Daroussin          + Manpages  now use consistent section-naming, page headers and
290*21817992SBaptiste Daroussin            footers (including the modification date for each page).
291*21817992SBaptiste Daroussin          + Table layout has been revised.
292aae38d10SBaptiste Daroussin
293e1865124SBaptiste Daroussin   There  are  no new manual pages (all of the manual page updates are to
294e1865124SBaptiste Daroussin   existing pages).
295aae38d10SBaptiste Daroussin
296aae38d10SBaptiste Daroussin  Interesting bug-fixes
297aae38d10SBaptiste Daroussin
298*21817992SBaptiste Daroussin   The  changes to tparm, tgoto which improve the design of the low-level
299*21817992SBaptiste Daroussin   interfaces are interesting, but are not bug-fixes per se.
300aae38d10SBaptiste Daroussin
301aae38d10SBaptiste Daroussin  Configuration changes
302aae38d10SBaptiste Daroussin
303aae38d10SBaptiste Daroussin    Major changes
304aae38d10SBaptiste Daroussin
305*21817992SBaptiste Daroussin   These are the major changes (aside from introducing tiparm_s):
306*21817992SBaptiste Daroussin     * use wide-character (ncursesw) by default
307*21817992SBaptiste Daroussin     * use opaque typedefs by default
308*21817992SBaptiste Daroussin
309*21817992SBaptiste Daroussin   However,  most  of  the  work  on configure scripts was done to reduce
310*21817992SBaptiste Daroussin   warnings within the configure script:
311*21817992SBaptiste Daroussin     * intrusive warnings from GNU grep regarding fgrep and egrep
312*21817992SBaptiste Daroussin     * fatal  errors  in  compile-checks,  arising from recent "Modern C"
313*21817992SBaptiste Daroussin       efforts  by  some  developers  which caused longstanding configure
314*21817992SBaptiste Daroussin       checks to fail.
315*21817992SBaptiste Daroussin       After  repairing  the  configure  script,  none  of  that activity
316*21817992SBaptiste Daroussin       affected  ncurses  because stricter warnings are used routinely in
317*21817992SBaptiste Daroussin       development.
318*21817992SBaptiste Daroussin
319*21817992SBaptiste Daroussin   Other improvements made to configure checks include
320*21817992SBaptiste Daroussin     * use  string-hacks in alloc_entry.c, alloc_type.c and hardscroll.c,
321*21817992SBaptiste Daroussin       overlooked due to compiler changes in recent OpenBSD releases
322*21817992SBaptiste Daroussin     * revise progs.priv.h to provide for NC_ISATTY reuse
323*21817992SBaptiste Daroussin     * configure check for MB_LEN_MAX provides warning as needed
324*21817992SBaptiste Daroussin     * trim   a   space  after  some  "-R"  options,  fixing  builds  for
325*21817992SBaptiste Daroussin       applications built using clang and ncurses on Solaris
326*21817992SBaptiste Daroussin     * work  around  misconfiguration  of  MacPorts  gcc13, which exposes
327*21817992SBaptiste Daroussin       invalid  definition  of  MB_LEN_MAX  in  gcc's  fallback  copy  of
328*21817992SBaptiste Daroussin       limits.h
329*21817992SBaptiste Daroussin     * modified  experimental  Windows  driver  works  with  xterm  mouse
330*21817992SBaptiste Daroussin       protocol
331aae38d10SBaptiste Daroussin
332aae38d10SBaptiste Daroussin    Configuration options
333aae38d10SBaptiste Daroussin
334*21817992SBaptiste Daroussin   There are a few new configure options:
335aae38d10SBaptiste Daroussin
336*21817992SBaptiste Daroussin   --disable-setuid-environ
337*21817992SBaptiste Daroussin          Compile  with  environment  restriction, so certain environment
338*21817992SBaptiste Daroussin          variables  are  not  available when running via a setuid/setgid
339*21817992SBaptiste Daroussin          application. These are (for example $TERMINFO) those that allow
340*21817992SBaptiste Daroussin          the  search  path  for  the  terminfo  or  termcap  entry to be
341*21817992SBaptiste Daroussin          customized.
342e1865124SBaptiste Daroussin
343*21817992SBaptiste Daroussin          A  setuid/setgid application inherits its environment variables
344*21817992SBaptiste Daroussin          from  the current user, in contrast to sudo which may limit the
345*21817992SBaptiste Daroussin          environment variables that ncurses uses.
346e1865124SBaptiste Daroussin
347*21817992SBaptiste Daroussin   --enable-check-size
348*21817992SBaptiste Daroussin          Compile-in  feature to detect screensize for terminals which do
349*21817992SBaptiste Daroussin          not advertise their screensize, e.g., serial terminals.
350e1865124SBaptiste Daroussin
351*21817992SBaptiste Daroussin   --with-abi-altered=NUM
352*21817992SBaptiste Daroussin          Override  the  displayed  (rather  than  compiled-in) ABI. Only
353*21817992SBaptiste Daroussin          packagers who have created configurations where the ABI differs
354*21817992SBaptiste Daroussin          from ncurses should be interested in this option.
355e1865124SBaptiste Daroussin
356*21817992SBaptiste Daroussin   --with-strip-program=XXX
357*21817992SBaptiste Daroussin          When  stripping  executables  during install, use the specified
358*21817992SBaptiste Daroussin          program  rather  than  "strip" overriding program chosen by the
359*21817992SBaptiste Daroussin          install program for stripping executables.
360e1865124SBaptiste Daroussin
361*21817992SBaptiste Daroussin   These configure options are modified:
362e1865124SBaptiste Daroussin
363*21817992SBaptiste Daroussin   --with-pkg-config-libdir[=DIR]
364*21817992SBaptiste Daroussin          The  optional  DIR parameter can now be "auto" to automatically
365*21817992SBaptiste Daroussin          use pkg-config's library directory.
366*21817992SBaptiste Daroussin
367*21817992SBaptiste Daroussin          The default is $(libdir).
368*21817992SBaptiste Daroussin
369*21817992SBaptiste Daroussin   --with-xterm-kbs[=XXX]
370*21817992SBaptiste Daroussin          The  default  is  "auto"  which  tells  the configure script to
371*21817992SBaptiste Daroussin          choose BS or DEL according to platform defaults.
372aae38d10SBaptiste Daroussin
373aae38d10SBaptiste Daroussin  Portability
374aae38d10SBaptiste Daroussin
375aae38d10SBaptiste Daroussin   Many  of  the  portability  changes  are implemented via the configure
376aae38d10SBaptiste Daroussin   script:
377*21817992SBaptiste Daroussin     * add/use   configure   check   for   clock_gettime,   to  supersede
378*21817992SBaptiste Daroussin       gettimeofday.
379*21817992SBaptiste Daroussin     * modify  configure script check for pkg-config library directory to
380*21817992SBaptiste Daroussin       take   into   account   an   older   version   0.15.0  which  used
381*21817992SBaptiste Daroussin       PKG_CONFIG_PATH but not PKG_CONFIG_LIBDIR
382*21817992SBaptiste Daroussin     * allow for MinGW32-/64-bit configurations to use _DEFAULT_SOURCE
383*21817992SBaptiste Daroussin     * modify   CF_XOPEN_SOURCE  macro's  amend  default  case  to  avoid
384*21817992SBaptiste Daroussin       undefining _XOPEN_SOURCE if _POSIX_C_SOURCE is defined
385*21817992SBaptiste Daroussin     * updated configure script macro CF_XOPEN_SOURCE, for uClibc-ng
386*21817992SBaptiste Daroussin     * modify version-check for gcc/g++, now works for msys2
387*21817992SBaptiste Daroussin     * build-fixes related to configure-options and/or platform:
388*21817992SBaptiste Daroussin          + fix for --enable-fvisibility
389*21817992SBaptiste Daroussin          + fix for unusual values of --with-rel-version
390*21817992SBaptiste Daroussin          + fix for unusual values of --with-abi-version
391*21817992SBaptiste Daroussin          + fix for --disable-tcap-names
392*21817992SBaptiste Daroussin          + fix for termcap in nc_access.h
393*21817992SBaptiste Daroussin     * other configure-script improvements:
394*21817992SBaptiste Daroussin          + recent msys2 headers work with _DEFAULT_SOURCE; amend check
395*21817992SBaptiste Daroussin          + use  $ac_includes_default in most cases where stdlib.h should
396*21817992SBaptiste Daroussin            work
397*21817992SBaptiste Daroussin          + use #error consistently vs "make an error"
398*21817992SBaptiste Daroussin          + add configure macro for gettimeofday vs inline check
399e1865124SBaptiste Daroussin
400e1865124SBaptiste Daroussin   Here are some of the other portability fixes:
401*21817992SBaptiste Daroussin     * modify  configure  scripts/makefiles  to  omit  KEY_RESIZE  if the
402*21817992SBaptiste Daroussin       corresponding SIGWINCH feature is disabled
403*21817992SBaptiste Daroussin     * increase MB_CUR_MAX to 16, matching glibc's MB_LEN_MAX
404*21817992SBaptiste Daroussin     * add BSD erase2 to characters handled by tset/reset
405*21817992SBaptiste Daroussin     * use getauxval when available, to improve setuid/setgid checks
406*21817992SBaptiste Daroussin     * set dwShareMode in calls to CreateConsoleScreenBuffer
407*21817992SBaptiste Daroussin     * use  CreateFile  with "CONIN$", "CONOUT$" rather than GetStdHandle
408*21817992SBaptiste Daroussin       to  obtain a handle on the actual console, avoiding redirection in
409*21817992SBaptiste Daroussin       the MinGW/Win32 configurations
410*21817992SBaptiste Daroussin     * modify  MinGW  driver  to  return KEY_BACKSPACE when an unmodified
411*21817992SBaptiste Daroussin       VK_BACK virtual key is entered
412*21817992SBaptiste Daroussin     * modify  MinGW  configuration  to provide for running in MSYS/MSYS2
413*21817992SBaptiste Daroussin       shells, assuming ConPTY support
414aae38d10SBaptiste Daroussin     _________________________________________________________________
415aae38d10SBaptiste Daroussin
416aae38d10SBaptiste DaroussinFeatures of ncurses
417aae38d10SBaptiste Daroussin
418aae38d10SBaptiste Daroussin   The  ncurses  package  is  fully upward-compatible with SVr4 (System V
419aae38d10SBaptiste Daroussin   Release 4) curses:
420aae38d10SBaptiste Daroussin     * All of the SVr4 calls have been implemented (and are documented).
421*21817992SBaptiste Daroussin     * ncurses  supports  the  features of SVr4 curses including keyboard
422*21817992SBaptiste Daroussin       mapping,  color,  form  drawing with ACS characters, and automatic
423*21817992SBaptiste Daroussin       recognition of keypad and function keys.
424*21817992SBaptiste Daroussin     * ncurses  provides  work-alike  replacements  of  SVr4 supplemental
425*21817992SBaptiste Daroussin       libraries  based on curses, but which were not specified by X/Open
426*21817992SBaptiste Daroussin       Curses:
427*21817992SBaptiste Daroussin          + the panel library, supporting a stack of windows with backing
428*21817992SBaptiste Daroussin            store
429*21817992SBaptiste Daroussin          + the menu library, supporting a uniform but flexible interface
430*21817992SBaptiste Daroussin            for menu programming
431aae38d10SBaptiste Daroussin          + the   form   library,   supporting  data  collection  through
432*21817992SBaptiste Daroussin            on-screen forms
433aae38d10SBaptiste Daroussin     * ncurses's  terminal database is fully compatible with that used by
434aae38d10SBaptiste Daroussin       SVr4 curses.
435*21817992SBaptiste Daroussin          + ncurses  supports  user-defined capabilities that it can see,
436aae38d10SBaptiste Daroussin            but  which are hidden from SVr4 curses applications using the
437aae38d10SBaptiste Daroussin            same terminal database.
438aae38d10SBaptiste Daroussin          + It  can  be optionally configured to match the format used in
439aae38d10SBaptiste Daroussin            related systems such as AIX and Tru64.
440aae38d10SBaptiste Daroussin          + Alternatively,  ncurses  can  be  configured  to  use  hashed
441aae38d10SBaptiste Daroussin            databases  rather  than  the  directory of files used by SVr4
442aae38d10SBaptiste Daroussin            curses.
443aae38d10SBaptiste Daroussin     * The ncurses utilities have options to allow you to filter terminfo
444aae38d10SBaptiste Daroussin       entries for use with less capable curses/terminfo versions such as
445*21817992SBaptiste Daroussin       the HP-UX and AIX ports.
4460e3d5408SPeter Wemm
4470e3d5408SPeter Wemm   The ncurses package also has many useful extensions over SVr4:
448*21817992SBaptiste Daroussin     * The  API  is 8-bit clean and base-level conformant with the X/Open
449*21817992SBaptiste Daroussin       Curses  specification, XSI curses (that is, it implements all BASE
450*21817992SBaptiste Daroussin       level  features,  and  almost  all EXTENDED features). It includes
451*21817992SBaptiste Daroussin       many   function   calls  not  supported  under  SVr4  curses  (but
452*21817992SBaptiste Daroussin       portability  of  all  calls  is documented so you can use the SVr4
453*21817992SBaptiste Daroussin       subset only).
4541759abf3SPeter Wemm     * Unlike  SVr3 curses, ncurses can write to the rightmost-bottommost
4550e3d5408SPeter Wemm       corner  of  the  screen  if  your terminal has an insert-character
4560e3d5408SPeter Wemm       capability.
4570e3d5408SPeter Wemm     * Ada95 and C++ bindings.
4584a1a9510SRong-En Fan     * Support  for mouse event reporting with X Window xterm and FreeBSD
4594a1a9510SRong-En Fan       and OS/2 console windows.
4600e3d5408SPeter Wemm     * Extended mouse support via Alessandro Rubini's gpm package.
46106bfebdeSXin LI     * The  function  wresize  allows  you  to resize windows, preserving
4620e3d5408SPeter Wemm       their data.
46306bfebdeSXin LI     * The  function  use_default_colors allows you to use the terminal's
4640e3d5408SPeter Wemm       default colors for the default color pair, achieving the effect of
4650e3d5408SPeter Wemm       transparent colors.
46606bfebdeSXin LI     * The functions keyok and define_key allow you to better control the
46706bfebdeSXin LI       use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by
46806bfebdeSXin LI       defining  more  than  one  control  sequence to map to a given key
46906bfebdeSXin LI       code.
470*21817992SBaptiste Daroussin     * Support for direct-color terminals, such as modern xterm.
471aae38d10SBaptiste Daroussin     * Support for 256-color terminals, such as modern xterm.
4724a1a9510SRong-En Fan     * Support for 16-color terminals, such as aixterm and modern xterm.
4730e3d5408SPeter Wemm     * Better  cursor-movement  optimization.  The package now features a
4740e3d5408SPeter Wemm       cursor-local-movement computation more efficient than either BSD's
4750e3d5408SPeter Wemm       or System V's.
4760e3d5408SPeter Wemm     * Super   hardware   scrolling   support.   The  screen-update  code
4770e3d5408SPeter Wemm       incorporates  a novel, simple, and cheap algorithm that enables it
4780e3d5408SPeter Wemm       to  make  optimal  use  of hardware scrolling, line-insertion, and
4790e3d5408SPeter Wemm       line-deletion  for  screen-line  movements. This algorithm is more
48006bfebdeSXin LI       powerful than the 4.4BSD curses quickch routine.
4810e3d5408SPeter Wemm     * Real  support  for  terminals  with  the  magic-cookie glitch. The
4820e3d5408SPeter Wemm       screen-update  code  will  refrain from drawing a highlight if the
4830e3d5408SPeter Wemm       magic-   cookie  unattributed  spaces  required  just  before  the
4840e3d5408SPeter Wemm       beginning  and  after the end would step on a non-space character.
4850e3d5408SPeter Wemm       It  will  automatically  shift  highlight boundaries when doing so
4860e3d5408SPeter Wemm       would  make it possible to draw the highlight without changing the
4870e3d5408SPeter Wemm       visual appearance of the screen.
4880e3d5408SPeter Wemm     * It  is  possible to generate the library with a list of pre-loaded
4890e3d5408SPeter Wemm       fallback  entries linked to it so that it can serve those terminal
4900e3d5408SPeter Wemm       types  even  when  no  terminfo tree or termcap file is accessible
4910e3d5408SPeter Wemm       (this  may  be useful for support of screen-oriented programs that
4920e3d5408SPeter Wemm       must run in single-user mode).
493e1865124SBaptiste Daroussin     * The tic/captoinfo utility provided with ncurses has the ability to
494e1865124SBaptiste Daroussin       translate  many  termcaps  from  the XENIX, IBM and AT&T extension
495e1865124SBaptiste Daroussin       sets.
496e1865124SBaptiste Daroussin     * A BSD-like tset utility is provided.
4970e3d5408SPeter Wemm     * The ncurses library and utilities will automatically read terminfo
4980e3d5408SPeter Wemm       entries  from  $HOME/.terminfo  if  it exists, and compile to that
4990e3d5408SPeter Wemm       directory  if  it  exists  and the user has no write access to the
5000e3d5408SPeter Wemm       system  directory.  This feature makes it easier for users to have
5010e3d5408SPeter Wemm       personal  terminfo  entries without giving up access to the system
5020e3d5408SPeter Wemm       terminfo directory.
5030e3d5408SPeter Wemm     * You  may  specify  a  path  of  directories to search for compiled
5040e3d5408SPeter Wemm       descriptions  with  the  environment  variable TERMINFO_DIRS (this
5050e3d5408SPeter Wemm       generalizes  the  feature  provided by TERMINFO under stock System
5060e3d5408SPeter Wemm       V.)
5070e3d5408SPeter Wemm     * In  terminfo  source files, use capabilities may refer not just to
5080e3d5408SPeter Wemm       other entries in the same source file (as in System V) but also to
5090e3d5408SPeter Wemm       compiled  entries  in  either the system terminfo directory or the
5100e3d5408SPeter Wemm       user's $HOME/.terminfo directory.
511e1865124SBaptiste Daroussin     * The  table-of-entries  utility  toe makes it easy for users to see
512e1865124SBaptiste Daroussin       exactly what terminal types are available on the system.
513*21817992SBaptiste Daroussin     * X/Open  Curses  permits  most  functions  it  specifies to be made
514*21817992SBaptiste Daroussin       available as macros as well. ncurses does this
515*21817992SBaptiste Daroussin          + to  improve  performance,  e.g.,  for  operations composed of
516*21817992SBaptiste Daroussin            simpler functions such as cursor movement following by adding
517*21817992SBaptiste Daroussin            text to the screen,
518*21817992SBaptiste Daroussin          + to simplify the implementation by reusing functions which use
519*21817992SBaptiste Daroussin            common parameters, e.g., the standard screen stdscr, and
520*21817992SBaptiste Daroussin          + to provide functions that return values via their parameters
521*21817992SBaptiste Daroussin       Except   for   the   last   case,  ncurses  provides  a  non-macro
522*21817992SBaptiste Daroussin       implementation  of  the  function.  If  the  macro  definition  is
523*21817992SBaptiste Daroussin       disabled with #undef, or by defining NCURSES_NOMACROS the function
524*21817992SBaptiste Daroussin       may  be  linked  (and  its  calls  will  be  checked  against  the
525*21817992SBaptiste Daroussin       prototype).
526e1865124SBaptiste Daroussin     * Extensive  documentation  is  provided (see the Additional Reading
527e1865124SBaptiste Daroussin       section of the ncurses FAQ for online documentation).
5280e3d5408SPeter Wemm
529aae38d10SBaptiste DaroussinApplications using ncurses
5300e3d5408SPeter Wemm
531aae38d10SBaptiste Daroussin   The  ncurses  distribution  includes  a  selection  of  test  programs
532aae38d10SBaptiste Daroussin   (including   a   few   games).   These  are  available  separately  as
533e1865124SBaptiste Daroussin   ncurses-examples
5340e3d5408SPeter Wemm
535aae38d10SBaptiste Daroussin   The   ncurses   library  has  been  tested  with  a  wide  variety  of
536aae38d10SBaptiste Daroussin   applications including:
537aae38d10SBaptiste Daroussin
538aae38d10SBaptiste Daroussin   aptitude
539aae38d10SBaptiste Daroussin          FrontEnd to Apt, the debian package manager
540aae38d10SBaptiste Daroussin
541e1865124SBaptiste Daroussin          https://wiki.debian.org/Aptitude
5420e3d5408SPeter Wemm
5431759abf3SPeter Wemm   cdk
54415589c42SPeter Wemm          Curses Development Kit
545aae38d10SBaptiste Daroussin
546e1865124SBaptiste Daroussin          https://invisible-island.net/cdk/
5471759abf3SPeter Wemm
5480e3d5408SPeter Wemm   ded
54915589c42SPeter Wemm          directory-editor
550aae38d10SBaptiste Daroussin
551e1865124SBaptiste Daroussin          https://invisible-island.net/ded/
5520e3d5408SPeter Wemm
5530e3d5408SPeter Wemm   dialog
5540e3d5408SPeter Wemm          the  underlying  application used in Slackware's setup, and the
555aae38d10SBaptiste Daroussin          basis   for  similar  install/configure  applications  on  many
556aae38d10SBaptiste Daroussin          systems.
557aae38d10SBaptiste Daroussin
558e1865124SBaptiste Daroussin          https://invisible-island.net/dialog/
5590e3d5408SPeter Wemm
5601759abf3SPeter Wemm   lynx
561aae38d10SBaptiste Daroussin          the text WWW browser
5620e3d5408SPeter Wemm
563e1865124SBaptiste Daroussin          https://lynx.invisible-island.net/
5640e3d5408SPeter Wemm
5651759abf3SPeter Wemm   mutt
5660e3d5408SPeter Wemm          mail utility
567aae38d10SBaptiste Daroussin
568e1865124SBaptiste Daroussin          http://www.mutt.org/
5690e3d5408SPeter Wemm
5701759abf3SPeter Wemm   ncftp
5710e3d5408SPeter Wemm          file-transfer utility
572aae38d10SBaptiste Daroussin
573e1865124SBaptiste Daroussin          https://www.ncftp.com/
5740e3d5408SPeter Wemm
5750e3d5408SPeter Wemm   nvi
576aae38d10SBaptiste Daroussin          New vi uses ncurses.
5774a1a9510SRong-En Fan
578*21817992SBaptiste Daroussin          https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-
579*21817992SBaptiste Daroussin          vi-editor-home-page
580aae38d10SBaptiste Daroussin
581aae38d10SBaptiste Daroussin   ranger
582aae38d10SBaptiste Daroussin          A console file manager with VI key bindings in Python.
583aae38d10SBaptiste Daroussin
584e1865124SBaptiste Daroussin          https://ranger.github.io/
5850e3d5408SPeter Wemm
5861759abf3SPeter Wemm   tin
587aae38d10SBaptiste Daroussin          newsreader, supporting color, MIME
588aae38d10SBaptiste Daroussin
589e1865124SBaptiste Daroussin          http://www.tin.org/
590aae38d10SBaptiste Daroussin
591aae38d10SBaptiste Daroussin   vifm
592aae38d10SBaptiste Daroussin          File manager with vi like keybindings
593aae38d10SBaptiste Daroussin
594e1865124SBaptiste Daroussin          https://vifm.info/
5950e3d5408SPeter Wemm
5960e3d5408SPeter Wemm   as well as some that use ncurses for the terminfo support alone:
5970e3d5408SPeter Wemm
5981759abf3SPeter Wemm   minicom
599aae38d10SBaptiste Daroussin          terminal emulator for serial modem connections
600aae38d10SBaptiste Daroussin
601*21817992SBaptiste Daroussin          https://salsa.debian.org/minicom-team/minicom
602aae38d10SBaptiste Daroussin
603aae38d10SBaptiste Daroussin   mosh
604aae38d10SBaptiste Daroussin          a replacement for ssh.
605aae38d10SBaptiste Daroussin
606*21817992SBaptiste Daroussin          https://mosh.org/
607aae38d10SBaptiste Daroussin
608aae38d10SBaptiste Daroussin   tack
609aae38d10SBaptiste Daroussin          terminfo action checker
610aae38d10SBaptiste Daroussin
611e1865124SBaptiste Daroussin          https://invisible-island.net/ncurses/tack.html
612aae38d10SBaptiste Daroussin
613aae38d10SBaptiste Daroussin   tmux
614aae38d10SBaptiste Daroussin          terminal multiplexor
615aae38d10SBaptiste Daroussin
616e1865124SBaptiste Daroussin          https://github.com/tmux/tmux/wiki
6170e3d5408SPeter Wemm
6180e3d5408SPeter Wemm   vile
619aae38d10SBaptiste Daroussin          vi-like-emacs  may  be  built  to  use the terminfo, termcap or
620aae38d10SBaptiste Daroussin          curses interfaces.
6210e3d5408SPeter Wemm
622e1865124SBaptiste Daroussin          https://invisible-island.net/vile/
6230e3d5408SPeter Wemm
624aae38d10SBaptiste Daroussin   and finally, those which use only the termcap interface:
6250e3d5408SPeter Wemm
626aae38d10SBaptiste Daroussin   emacs
627aae38d10SBaptiste Daroussin          text editor
628aae38d10SBaptiste Daroussin
629e1865124SBaptiste Daroussin          https://www.gnu.org/software/emacs/
630aae38d10SBaptiste Daroussin
631aae38d10SBaptiste Daroussin   less
632aae38d10SBaptiste Daroussin          The  most  commonly  used  pager  (a program that displays text
633aae38d10SBaptiste Daroussin          files).
634aae38d10SBaptiste Daroussin
635e1865124SBaptiste Daroussin          http://www.greenwoodsoftware.com/less/
636aae38d10SBaptiste Daroussin
637aae38d10SBaptiste Daroussin   screen
638aae38d10SBaptiste Daroussin          terminal multiplexor
639aae38d10SBaptiste Daroussin
640e1865124SBaptiste Daroussin          https://www.gnu.org/software/screen/
641aae38d10SBaptiste Daroussin
642aae38d10SBaptiste Daroussin   vim
643aae38d10SBaptiste Daroussin          text editor
644aae38d10SBaptiste Daroussin
645e1865124SBaptiste Daroussin          https://www.vim.org/
646aae38d10SBaptiste Daroussin
647aae38d10SBaptiste DaroussinDevelopment activities
648aae38d10SBaptiste Daroussin
649aae38d10SBaptiste Daroussin   Zeyd  Ben-Halim  started  ncurses  from  a  previous  package pcurses,
650aae38d10SBaptiste Daroussin   written  by  Pavel  Curtis.  Eric  S.  Raymond  continued development.
651e1865124SBaptiste Daroussin   Juergen Pfeifer wrote most of the form and menu libraries.
652e1865124SBaptiste Daroussin
653e1865124SBaptiste Daroussin   Ongoing development work is done by Thomas E. Dickey. Thomas E. Dickey
654e1865124SBaptiste Daroussin   has  acted  as  the maintainer for the Free Software Foundation, which
655*21817992SBaptiste Daroussin   held  a  copyright  on ncurses for releases 4.2 through 6.1. Following
656e1865124SBaptiste Daroussin   the release of ncurses 6.1, effective as of release 6.2, copyright for
657e1865124SBaptiste Daroussin   ncurses  reverted  to  Thomas  E.  Dickey  (see  the  ncurses  FAQ for
658e1865124SBaptiste Daroussin   additional information).
659aae38d10SBaptiste Daroussin
660aae38d10SBaptiste Daroussin   Contact the current maintainers at
661aae38d10SBaptiste Daroussin
662e1865124SBaptiste Daroussin     bug-ncurses@gnu.org
6630e3d5408SPeter Wemm
6640e3d5408SPeter Wemm   To join the ncurses mailing list, please write email to
665aae38d10SBaptiste Daroussin
666e1865124SBaptiste Daroussin     bug-ncurses-request@gnu.org
667aae38d10SBaptiste Daroussin
668aae38d10SBaptiste Daroussin   containing the line:
669aae38d10SBaptiste Daroussin
6700e3d5408SPeter Wemm     subscribe <name>@<host.domain>
6710e3d5408SPeter Wemm
6720e3d5408SPeter Wemm   This list is open to anyone interested in helping with the development
6730e3d5408SPeter Wemm   and testing of this package.
6740e3d5408SPeter Wemm
675e1865124SBaptiste Daroussin   Beta versions of ncurses are made available at
6760e3d5408SPeter Wemm
677*21817992SBaptiste Daroussin     https://invisible-island.net/archives/ncurses/current/ and
678e1865124SBaptiste Daroussin     https://invisible-mirror.net/archives/ncurses/current/ .
679e1865124SBaptiste Daroussin
680e1865124SBaptiste Daroussin   Patches to the current release are made available at
681e1865124SBaptiste Daroussin
682*21817992SBaptiste Daroussin     https://invisible-island.net/archives/ncurses/6.4/ and
683*21817992SBaptiste Daroussin     https://invisible-mirror.net/archives/ncurses/6.4/ .
6840e3d5408SPeter Wemm
685aae38d10SBaptiste Daroussin   There is an archive of the mailing list here:
6860e3d5408SPeter Wemm
687*21817992SBaptiste Daroussin     https://lists.gnu.org/archive/html/bug-ncurses .
6880e3d5408SPeter Wemm
689aae38d10SBaptiste DaroussinRelated resources
690aae38d10SBaptiste Daroussin
691aae38d10SBaptiste Daroussin   The  release notes make scattered references to these pages, which may
692aae38d10SBaptiste Daroussin   be interesting by themselves:
693e1865124SBaptiste Daroussin     * ncurses licensing
694e1865124SBaptiste Daroussin     * Symbol versioning in ncurses
695e1865124SBaptiste Daroussin     * Comments on ncurses versus slang (S-Lang)
696*21817992SBaptiste Daroussin     * Comments on OpenBSD
697e1865124SBaptiste Daroussin     * tack - terminfo action checker
698e1865124SBaptiste Daroussin     * tctest - termcap library checker
699e1865124SBaptiste Daroussin     * Terminal Database
700aae38d10SBaptiste Daroussin
701aae38d10SBaptiste DaroussinOther resources
7020e3d5408SPeter Wemm
7034a1a9510SRong-En Fan   The  distribution  provides  a  newer  version  of the terminfo-format
704e1865124SBaptiste Daroussin   terminal description file once maintained by Eric Raymond . Unlike the
705e1865124SBaptiste Daroussin   older  version, the termcap and terminfo data are provided in the same
706e1865124SBaptiste Daroussin   file, which also provides several user-definable extensions beyond the
707*21817992SBaptiste Daroussin   X/Open Curses specification.
7080e3d5408SPeter Wemm
7090e3d5408SPeter Wemm   You  can  find  lots  of  information  on  terminal-related topics not
710*21817992SBaptiste Daroussin   covered  in the terminfo file in Richard Shuford's archive (original).
711*21817992SBaptiste Daroussin   The  collection  of  computer  manuals  at bitsavers.org has also been
712*21817992SBaptiste Daroussin   useful.
713aae38d10SBaptiste Daroussin
714e1865124SBaptiste Daroussin     * Overview
715e1865124SBaptiste Daroussin     * Release Notes
716e1865124SBaptiste Daroussin          + Library improvements
717e1865124SBaptiste Daroussin               o New features
718e1865124SBaptiste Daroussin               o Other improvements
719e1865124SBaptiste Daroussin          + Program improvements
720e1865124SBaptiste Daroussin               o Utilities
721e1865124SBaptiste Daroussin               o Examples
722e1865124SBaptiste Daroussin          + Terminal database
723e1865124SBaptiste Daroussin          + Documentation
724e1865124SBaptiste Daroussin          + Interesting bug-fixes
725e1865124SBaptiste Daroussin          + Configuration changes
726e1865124SBaptiste Daroussin               o Major changes
727e1865124SBaptiste Daroussin               o Configuration options
728e1865124SBaptiste Daroussin          + Portability
729e1865124SBaptiste Daroussin     * Features of ncurses
730e1865124SBaptiste Daroussin     * Applications using ncurses
731e1865124SBaptiste Daroussin     * Development activities
732e1865124SBaptiste Daroussin     * Related resources
733e1865124SBaptiste Daroussin     * Other resources
734