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