xref: /freebsd/contrib/ncurses/ANNOUNCE (revision aae38d10b4eebf81c0942947e8b83a9bb8651d88)
1*aae38d10SBaptiste Daroussin                            Announcing ncurses 6.1
2*aae38d10SBaptiste Daroussin
3*aae38d10SBaptiste DaroussinOverview
40e3d5408SPeter Wemm
50e3d5408SPeter Wemm   The  ncurses  (new  curses)  library  is  a free software emulation of
6*aae38d10SBaptiste Daroussin   curses  in  System  V  Release  4.0 (SVr4), and more. It uses terminfo
7*aae38d10SBaptiste Daroussin   format,  supports  pads  and  color  and multiple highlights and forms
8*aae38d10SBaptiste Daroussin   characters and function-key mapping, and has all the other SVr4-curses
9*aae38d10SBaptiste Daroussin   enhancements  over  BSD curses. SVr4 curses became the basis of X/Open
10*aae38d10SBaptiste Daroussin   Curses.
110e3d5408SPeter Wemm
120e3d5408SPeter Wemm   In  mid-June  1995,  the  maintainer of 4.4BSD curses declared that he
13*aae38d10SBaptiste 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
16*aae38d10SBaptiste Daroussin   Since 1995, ncurses has been ported to many systems:
17*aae38d10SBaptiste Daroussin     * It is used in almost every system based on the Linux kernel (aside
18*aae38d10SBaptiste Daroussin       from some embedded applications).
19*aae38d10SBaptiste Daroussin     * It  is  used  as the system curses library on OpenBSD, FreeBSD and
20*aae38d10SBaptiste Daroussin       OSX.
21*aae38d10SBaptiste Daroussin     * It  is used in environments such as Cygwin and MinGW. The first of
22*aae38d10SBaptiste Daroussin       these was EMX on OS/2 Warp.
23*aae38d10SBaptiste Daroussin     * It is used (though usually not as the system curses) on all of the
24*aae38d10SBaptiste Daroussin       vendor  unix  systems,  e.g.,  AIX,  HP-UX,  IRIX64, SCO, Solaris,
25*aae38d10SBaptiste Daroussin       Tru64.
26*aae38d10SBaptiste Daroussin     * It should work readily on any ANSI/POSIX-conforming unix.
270e3d5408SPeter Wemm
280e3d5408SPeter Wemm   The distribution includes the library and support utilities, including
29*aae38d10SBaptiste Daroussin     * [1]captoinfo, a termcap conversion tool
30*aae38d10SBaptiste Daroussin     * [2]clear, utility for clearing the screen
31*aae38d10SBaptiste Daroussin     * [3]infocmp, the terminfo decompiler
32*aae38d10SBaptiste Daroussin     * [4]tabs, set tabs on a terminal
33*aae38d10SBaptiste Daroussin     * [5]tic, the terminfo compiler
34*aae38d10SBaptiste Daroussin     * [6]toe, list (table of) terminfo entries
35*aae38d10SBaptiste Daroussin     * [7]tput,  utility  for  retrieving  terminal capabilities in shell
36*aae38d10SBaptiste Daroussin       scripts
37*aae38d10SBaptiste Daroussin     * [8]tset, to initialize the terminal
380e3d5408SPeter Wemm
39*aae38d10SBaptiste Daroussin   Full manual pages are provided for the library and tools.
40*aae38d10SBaptiste Daroussin
41*aae38d10SBaptiste Daroussin   The ncurses distribution is available at ncurses' [9]homepage:
42*aae38d10SBaptiste Daroussin
43*aae38d10SBaptiste Daroussin     [10]ftp://ftp.invisible-island.net/ncurses/ or
44*aae38d10SBaptiste Daroussin     [11]https://invisible-mirror.net/archives/ncurses/ .
45*aae38d10SBaptiste Daroussin
46*aae38d10SBaptiste Daroussin   It is also available via anonymous FTP at the GNU distribution site
47*aae38d10SBaptiste Daroussin
48*aae38d10SBaptiste Daroussin     [12]ftp://ftp.gnu.org/gnu/ncurses/ .
490e3d5408SPeter Wemm
500e3d5408SPeter WemmRelease Notes
510e3d5408SPeter Wemm
52*aae38d10SBaptiste Daroussin   These notes are for ncurses 6.1, released January 27, 2018.
530e3d5408SPeter Wemm
54*aae38d10SBaptiste Daroussin   This  release  is  designed  to  be source-compatible with ncurses 5.0
55*aae38d10SBaptiste Daroussin   through  6.0; providing extensions to the application binary interface
56*aae38d10SBaptiste Daroussin   (ABI).  Although  the  source  can  still be configured to support the
57*aae38d10SBaptiste Daroussin   ncurses  5  ABI, the intent of the release is to provide extensions to
58*aae38d10SBaptiste Daroussin   the ncurses 6 ABI:
59*aae38d10SBaptiste Daroussin     * improve integration of tput and tset
60*aae38d10SBaptiste Daroussin     * provide support for extended numeric capabilities.
610e3d5408SPeter Wemm
62*aae38d10SBaptiste Daroussin   There  are,  of  course,  numerous  other improvements, listed in this
63*aae38d10SBaptiste Daroussin   announcement.
640e3d5408SPeter Wemm
65*aae38d10SBaptiste Daroussin   The  release notes also mention some bug-fixes, but are focused on new
66*aae38d10SBaptiste Daroussin   features  and  improvements  to  existing  features  since ncurses 6.0
67*aae38d10SBaptiste Daroussin   release.
680e3d5408SPeter Wemm
69*aae38d10SBaptiste Daroussin  Library improvements
70*aae38d10SBaptiste Daroussin
71*aae38d10SBaptiste Daroussin    New features
72*aae38d10SBaptiste Daroussin
73*aae38d10SBaptiste Daroussin   The  improved  integration of tput and tset made only small changes to
74*aae38d10SBaptiste Daroussin   the  libraries.  However,  supporting  extended  numeric  capabilities
75*aae38d10SBaptiste Daroussin   required a few changes:
76*aae38d10SBaptiste Daroussin     * The  TERMINAL  structure  in  <term.h>  is  now opaque. Doing that
77*aae38d10SBaptiste Daroussin       allowed  making the structure larger, to hold the extended numeric
78*aae38d10SBaptiste Daroussin       data.
79*aae38d10SBaptiste Daroussin       A   few   applications  required  changes  during  development  of
80*aae38d10SBaptiste Daroussin       ncurses 6.1 because those applications misused the members of that
81*aae38d10SBaptiste Daroussin       structure,   e.g.,   directly   modifying  it  rather  than  using
82*aae38d10SBaptiste Daroussin       [13]def_prog_mode.
83*aae38d10SBaptiste Daroussin     * Having  made  TERMINAL  opaque  (and  because  none of the library
84*aae38d10SBaptiste Daroussin       functions  use  anything  except  a  pointer  to TERMINAL), it was
85*aae38d10SBaptiste Daroussin       possible to increase the size of the structure, adding to the end.
86*aae38d10SBaptiste Daroussin       Existing   applications  which  were  linked  to  the  ncurses 6.0
87*aae38d10SBaptiste Daroussin       high-level   (ncurses,  ncursesw)  and  low-level  (tinfo,  tinfo)
88*aae38d10SBaptiste Daroussin       libraries should not require re-linking since the binary interface
89*aae38d10SBaptiste Daroussin       did  not  change,  nor  did  the  structure  offsets with TERMINAL
90*aae38d10SBaptiste Daroussin       change.
91*aae38d10SBaptiste Daroussin       A  few  applications use the inner TERMTYPE structure's offsets to
92*aae38d10SBaptiste Daroussin       refer to terminfo capabilities within that structure. Again, those
93*aae38d10SBaptiste Daroussin       do  not require modification because their offsets within TERMINAL
94*aae38d10SBaptiste Daroussin       did not change.
95*aae38d10SBaptiste Daroussin     * When configured for wide-characters, i.e., "ncursesw" the TERMINAL
96*aae38d10SBaptiste Daroussin       structure is extended.
97*aae38d10SBaptiste Daroussin       The  new  data in TERMINAL holds the same information as TERMTYPE,
98*aae38d10SBaptiste Daroussin       but  with  larger  numbers  ("int"  versus  "short").  It is named
99*aae38d10SBaptiste Daroussin       TERMTYPE2.
100*aae38d10SBaptiste Daroussin       The  library  uses  this  structure  internally  in  preference to
101*aae38d10SBaptiste Daroussin       TERMTYPE,   referring  to  TERMTYPE  only  to  initialize  it  for
102*aae38d10SBaptiste Daroussin       applications that use the capabilities defined in <term.h>
103*aae38d10SBaptiste Daroussin     * When  configured  for  8-bit  (narrow)  characters,  the TERMTYPE2
104*aae38d10SBaptiste Daroussin       structure is not used.
105*aae38d10SBaptiste Daroussin     * The updated application binary interface is 6.1.20171230 (used for
106*aae38d10SBaptiste Daroussin       new  [14]versioned  symbols),  although the interface changes were
107*aae38d10SBaptiste Daroussin       developed several months previously.
108*aae38d10SBaptiste Daroussin
109*aae38d10SBaptiste Daroussin   The  motivation  for  making  this  extension  came from noticing that
110*aae38d10SBaptiste Daroussin   [15]termcap  applications  could  (though  not  [16]realistically) use
111*aae38d10SBaptiste Daroussin   larger numbers than would fit in 16-bits, and the fact that the number
112*aae38d10SBaptiste Daroussin   of  color  pairs  for  a  256-color  xterm  could  not be expressed in
113*aae38d10SBaptiste Daroussin   terminfo  (i.e.,  32767  versus  65536). Also, a few terminals support
114*aae38d10SBaptiste Daroussin   direct-colors, which could use the extension.
115*aae38d10SBaptiste Daroussin
116*aae38d10SBaptiste Daroussin   Generally  speaking,  applications  that  use  internal  details  of a
117*aae38d10SBaptiste Daroussin   library  are unsupported. There was exactly one exception for ncurses:
118*aae38d10SBaptiste Daroussin   the  tack  program  used  the internal details of TERMINAL, because it
119*aae38d10SBaptiste Daroussin   provides  an  ncurses-specific  feature  for interactively modifying a
120*aae38d10SBaptiste Daroussin   terminfo   description  and  writing  the  updated  description  to  a
121*aae38d10SBaptiste Daroussin   text-file.  It  was  possible  to  not  only  separate tack from these
122*aae38d10SBaptiste Daroussin   [17]internal  details  of  ncurses,  but  to generalize it so that the
123*aae38d10SBaptiste Daroussin   program   works   with  Unix  curses  (omitting  the  ncurses-specific
124*aae38d10SBaptiste Daroussin   feature). That was released as [18]tack 1.08 in July 2017.
125*aae38d10SBaptiste Daroussin
126*aae38d10SBaptiste Daroussin   While  making changes to tack to eliminate its dependency upon ncurses
127*aae38d10SBaptiste Daroussin   internals,  the  publicly-visible  details  of  those  internals  were
128*aae38d10SBaptiste Daroussin   reviewed,  and  some symbols were moved to private header files, while
129*aae38d10SBaptiste Daroussin   others were marked explicitly as ncurses internals. Future releases of
130*aae38d10SBaptiste Daroussin   ncurses  may  eliminate  some  of those symbols (such as those used by
131*aae38d10SBaptiste Daroussin   tack 1.07) because they are neither part of the API or the ABI.
132*aae38d10SBaptiste Daroussin
133*aae38d10SBaptiste Daroussin   Using  the  TERMTYPE2 extended numeric capabilities, it is possible to
134*aae38d10SBaptiste Daroussin   support  both  color  pair  values and color values past 32767. Taking
135*aae38d10SBaptiste Daroussin   compatibility into account, developers readily understand that neither
136*aae38d10SBaptiste Daroussin   function  signatures  nor  structure  offsets  change.  Also, existing
137*aae38d10SBaptiste Daroussin   functions have to operate with the extended numbers. Most of that work
138*aae38d10SBaptiste Daroussin   is  internal  to  the  library.  For the external interfaces, a hybrid
139*aae38d10SBaptiste Daroussin   approach was used:
140*aae38d10SBaptiste Daroussin     * X/Open  Curses  defined function prototypes such as wattr_set with
141*aae38d10SBaptiste Daroussin       an  unused parameter, for "future" use. After 25 years, the future
142*aae38d10SBaptiste Daroussin       is  here:  ncurses uses the parameter to augment color pair values
143*aae38d10SBaptiste Daroussin       as described in the [19]manual page.
144*aae38d10SBaptiste Daroussin     * Other  functions such as those defining color pairs did not have a
145*aae38d10SBaptiste Daroussin       corresponding  reserved  parameter.  For  those,  ncurses  defines
146*aae38d10SBaptiste Daroussin       extended  versions  such as init_extended_pair (versus init_pair),
147*aae38d10SBaptiste Daroussin       init_extended_color (versus init_color).
148*aae38d10SBaptiste Daroussin
149*aae38d10SBaptiste Daroussin   Additionally,  to  improve  performance other changes (and extensions)
150*aae38d10SBaptiste Daroussin   are provided in this release:
151*aae38d10SBaptiste Daroussin     * Several  new  functions simplify management of large sets of color
152*aae38d10SBaptiste Daroussin       pairs: reset_color_pairs, alloc_pair, find_pair and free_pair.
153*aae38d10SBaptiste Daroussin     * New "RGB" extension capability for direct-color support is used to
154*aae38d10SBaptiste Daroussin       improve performance of color_content.
155*aae38d10SBaptiste Daroussin     * The  internal colorpair_t is now a struct, eliminating an internal
156*aae38d10SBaptiste Daroussin       8-bit limit on colors
157*aae38d10SBaptiste Daroussin     * Allocation  for  SCREEN's  color-pair table starts small, grows on
158*aae38d10SBaptiste Daroussin       demand up to the limit given in the terminal description.
159*aae38d10SBaptiste Daroussin     * setcchar and getcchar now treat a negative color-pair as an error.
160*aae38d10SBaptiste Daroussin
161*aae38d10SBaptiste Daroussin    Other improvements
162*aae38d10SBaptiste Daroussin
163*aae38d10SBaptiste Daroussin   These are new or revised features:
164*aae38d10SBaptiste Daroussin     * modify  c++/etip.h.in  to  accommodate  deprecation  of  throw and
165*aae38d10SBaptiste Daroussin       throws in c++17
166*aae38d10SBaptiste Daroussin     * add new function unfocus_current_field
167*aae38d10SBaptiste Daroussin     * add option to preserve leading whitespace in form fields
168*aae38d10SBaptiste Daroussin     * add  a  macro  for is_linetouched and adjust the function's return
169*aae38d10SBaptiste Daroussin       value  to  make  it possible for most applications to check for an
170*aae38d10SBaptiste Daroussin       error-return.
171*aae38d10SBaptiste Daroussin     * add  build-time  utility  report_offsets  to  help  show  when the
172*aae38d10SBaptiste Daroussin       various configurations of tinfo library are compatible or not.
173*aae38d10SBaptiste Daroussin
174*aae38d10SBaptiste Daroussin   These were done to limit or ultimately deprecate features:
175*aae38d10SBaptiste Daroussin     * drop  two  symbols  obsoleted  in  2004:  _nc_check_termtype,  and
176*aae38d10SBaptiste Daroussin       _nc_resolve_uses
177*aae38d10SBaptiste Daroussin     * move  _nc_tracebits,  _tracedump and _tracemouse to curses.priv.h,
178*aae38d10SBaptiste Daroussin       since they are not part of the suggested ABI6.
179*aae38d10SBaptiste Daroussin     * mark  some  structs  in  form/menu/panel  libraries as potentially
180*aae38d10SBaptiste Daroussin       opaque without modifying API/ABI.
181*aae38d10SBaptiste Daroussin     * ifdef'd     header-file    definition    of    mouse_trafo    with
182*aae38d10SBaptiste Daroussin       NCURSES_NOMACROS
183*aae38d10SBaptiste Daroussin     * remove  initialization-check  for calling napms in the term-driver
184*aae38d10SBaptiste Daroussin       configuration; none is needed.
185*aae38d10SBaptiste Daroussin     * modify trace to avoid overwriting existing file
186*aae38d10SBaptiste Daroussin
187*aae38d10SBaptiste Daroussin   These are improvements to existing features:
188*aae38d10SBaptiste Daroussin     * modify   make_hash   to  allow  building  with  address-sanitizer,
189*aae38d10SBaptiste Daroussin       assuming that --disable-leaks is configured.
190*aae38d10SBaptiste Daroussin     * move  SCREEN field for use_tioctl data before the ncursesw fields,
191*aae38d10SBaptiste Daroussin       and  limit  that  to the sp-funcs configuration to improve termlib
192*aae38d10SBaptiste Daroussin       compatibility
193*aae38d10SBaptiste Daroussin     * modify db-iterator:
194*aae38d10SBaptiste Daroussin          + ignore zero-length files in db-iterator; these are useful for
195*aae38d10SBaptiste Daroussin            instance to suppress $HOME/.terminfo when not wanted.
196*aae38d10SBaptiste Daroussin          + modify  update_getenv  to  ensure  that environment variables
197*aae38d10SBaptiste Daroussin            which  are  not  initially  set  will  be checked later if an
198*aae38d10SBaptiste Daroussin            application happens to set them
199*aae38d10SBaptiste Daroussin     * modify  _nc_outc_wrapper  to use the standard output if the screen
200*aae38d10SBaptiste Daroussin       was not initialized, rather than returning an error.
201*aae38d10SBaptiste Daroussin     * improve  checks for low-level terminfo functions when the terminal
202*aae38d10SBaptiste Daroussin       has not been initialized.
203*aae38d10SBaptiste Daroussin     * modify set_curterm to update ttytype[] data used by longname/p>
204*aae38d10SBaptiste Daroussin     * modify  _nc_get_screensize  to  allow  for  use_env and use_tioctl
205*aae38d10SBaptiste Daroussin       state  to  be  per-screen  when  sp-funcs  are  configured, better
206*aae38d10SBaptiste Daroussin       matching the behavior when using the term-driver configuration.
207*aae38d10SBaptiste Daroussin     * remove an early-return from _nc_do_color, which can interfere with
208*aae38d10SBaptiste Daroussin       data  needed  by  bkgd  when  ncurses  is configured with extended
209*aae38d10SBaptiste Daroussin       colors
210*aae38d10SBaptiste Daroussin     * incorporate A_COLOR mask into COLOR_PAIR, in case user application
211*aae38d10SBaptiste Daroussin       provides an out-of-range pair number
212*aae38d10SBaptiste Daroussin     * modify  logic for endwin-state to be able to detect the case where
213*aae38d10SBaptiste Daroussin       the screen was never initialized, using that to trigger a flush of
214*aae38d10SBaptiste Daroussin       ncurses'  buffer for mvcur, e.g., in the sample program dots_mvcur
215*aae38d10SBaptiste Daroussin       for the term-driver configuration.
216*aae38d10SBaptiste Daroussin
217*aae38d10SBaptiste Daroussin   These are corrections to existing features:
218*aae38d10SBaptiste Daroussin     * fixes for writing extended color pairs in putwin.
219*aae38d10SBaptiste Daroussin     * modify no-leaks code for lib_cur_term.c to account for the tgetent
220*aae38d10SBaptiste Daroussin       cache.
221*aae38d10SBaptiste Daroussin     * amend handling of the repeat_char capability in EmitRange to avoid
222*aae38d10SBaptiste Daroussin       scope  creep:  translate  the character to the alternate character
223*aae38d10SBaptiste Daroussin       set  when  the  alternate character set is enabled, and do not use
224*aae38d10SBaptiste Daroussin       repeat_char for characters past 255.
225*aae38d10SBaptiste Daroussin     * improve    wide-character    implementation    of   myADDNSTR   in
226*aae38d10SBaptiste Daroussin       frm_driver.c,    which    was   inconsistent   with   the   normal
227*aae38d10SBaptiste Daroussin       implementation.
228*aae38d10SBaptiste Daroussin     * modify winnstr and winchnstr to return error if the output pointer
229*aae38d10SBaptiste Daroussin       is  null,  as  well  as  adding a null pointer check of the window
230*aae38d10SBaptiste Daroussin       pointer for better compatibility with other implementations.
231*aae38d10SBaptiste Daroussin     * modify  setupterm  to  save  original  tty-modes so that erasechar
232*aae38d10SBaptiste Daroussin       works  as expected. Also modify _nc_setupscreen to avoid redundant
233*aae38d10SBaptiste Daroussin       calls to get original tty-modes.
234*aae38d10SBaptiste Daroussin     * modify  wattr_set  and wattr_get to return ERR if win-parameter is
235*aae38d10SBaptiste Daroussin       null, as documented.
236*aae38d10SBaptiste Daroussin     * correct   order  of  initialization  for  traces  in  use_env  and
237*aae38d10SBaptiste Daroussin       use_tioctl versus first _tracef calls.
238*aae38d10SBaptiste Daroussin     * correct parameters for copywin call in _nc_Synchronize_Attributes
239*aae38d10SBaptiste Daroussin     * flush  the  standard  output in _nc_flush for the case where SP is
240*aae38d10SBaptiste Daroussin       zero,  e.g.,  when  called  via  putp. This fixes a scenario where
241*aae38d10SBaptiste Daroussin       "tput flash" did not work after changes in 20130112.
242*aae38d10SBaptiste Daroussin     * amend  internal  use  of  tputs  to consistently use the number of
243*aae38d10SBaptiste Daroussin       lines  affected,  e.g.,  for  insert/delete  character operations.
244*aae38d10SBaptiste Daroussin       While  merging terminfo source early in 1995, several descriptions
245*aae38d10SBaptiste Daroussin       used  the "*" proportional delay for these operations, prompting a
246*aae38d10SBaptiste Daroussin       change in doupdate.
247*aae38d10SBaptiste Daroussin     * correct return-value of extended putwin.
248*aae38d10SBaptiste Daroussin     * double-width  multibyte  characters  were  not counted properly in
249*aae38d10SBaptiste Daroussin       winsnstr and wins_nwstr.
250*aae38d10SBaptiste Daroussin     * amend  fix  for  _nc_ripoffline from 20091031 to make test/ditto.c
251*aae38d10SBaptiste Daroussin       work in threaded configuration.
252*aae38d10SBaptiste Daroussin     * modify _nc_viscbuf2 and _tracecchar_t2 to trace wide-characters as
253*aae38d10SBaptiste Daroussin       a whole rather than their multibyte equivalents.
254*aae38d10SBaptiste Daroussin     * minor  fix  in  wadd_wchnstr  to ensure that each cell has nonzero
255*aae38d10SBaptiste Daroussin       width.
256*aae38d10SBaptiste Daroussin     * move PUTC_INIT calls next to wcrtomb calls, to avoid carry-over of
257*aae38d10SBaptiste Daroussin       error status when processing Unicode values which are not mapped.
258*aae38d10SBaptiste Daroussin     * add missing assignment in lib_getch.c to make notimeout work
259*aae38d10SBaptiste Daroussin
260*aae38d10SBaptiste Daroussin  Program improvements
261*aae38d10SBaptiste Daroussin
262*aae38d10SBaptiste Daroussin   While reviewing user feedback, it became apparent that the differences
263*aae38d10SBaptiste Daroussin   between [20]reset (an alias for tset) and "tput reset" were confusing:
264*aae38d10SBaptiste Daroussin     * one  ([21]tset)  updated the terminal modes, but used only part of
265*aae38d10SBaptiste Daroussin       the terminfo capabilities for initialization, while
266*aae38d10SBaptiste Daroussin     * the  other  ([22]tput) used all of the terminal capabilities while
267*aae38d10SBaptiste Daroussin       neglecting the terminal modes.
268*aae38d10SBaptiste Daroussin
269*aae38d10SBaptiste Daroussin   On  further  investigation,  it  turned  out that the differences were
270*aae38d10SBaptiste Daroussin   largely an accident due to the way those programs had evolved.
271*aae38d10SBaptiste Daroussin
272*aae38d10SBaptiste Daroussin   This  release  eliminates  the unnecessary differences, using the same
273*aae38d10SBaptiste Daroussin   approach  for tput's init (initialization), reset and clear operations
274*aae38d10SBaptiste Daroussin   as  the separate [23]reset and [24]clear programs. Doing this does not
275*aae38d10SBaptiste Daroussin   change the command-line options; existing scripts are unaffected.
276*aae38d10SBaptiste Daroussin
277*aae38d10SBaptiste Daroussin   These  are the user-visible changes for the three programs (tput, tset
278*aae38d10SBaptiste Daroussin   and clear):
279*aae38d10SBaptiste Daroussin     * add  the  terminal-mode  parts  of "reset" (aka tset) to the "tput
280*aae38d10SBaptiste Daroussin       reset"  command,  making  the  two  almost  the  same  except  for
281*aae38d10SBaptiste Daroussin       window-size.
282*aae38d10SBaptiste Daroussin     * improve  tput's  check  for  being  called as "init" or "reset" to
283*aae38d10SBaptiste Daroussin       allow for transformed names.
284*aae38d10SBaptiste Daroussin     * add "clear" as a possible link/alias to tput.
285*aae38d10SBaptiste Daroussin     * amend changes for tput to reset tty modes to "sane" if the program
286*aae38d10SBaptiste Daroussin       is  run  as  "reset",  like tset. Likewise, ensure that tset sends
287*aae38d10SBaptiste Daroussin       either reset- or init-strings.
288*aae38d10SBaptiste Daroussin     * add -x option to clear/tput to make the E3 extension optional
289*aae38d10SBaptiste Daroussin     * add functionality of "tset -w" to tput, like the "-c" feature this
290*aae38d10SBaptiste Daroussin       is not optional in tput.
291*aae38d10SBaptiste Daroussin     * add  options  -T  and  -V  to clear command for compatibility with
292*aae38d10SBaptiste Daroussin       tput.
293*aae38d10SBaptiste Daroussin     * drop long-obsolete "-n" option from tset.
294*aae38d10SBaptiste Daroussin     * modify tset's assignment to TERM in its output to reflect the name
295*aae38d10SBaptiste Daroussin       by  which  the  terminal  description  is  found,  rather than the
296*aae38d10SBaptiste Daroussin       primary  name.  That  was  an  unnecessary  part  from the initial
297*aae38d10SBaptiste Daroussin       conversion  of  tset from termcap to terminfo. The termcap library
298*aae38d10SBaptiste Daroussin       in 4.3BSD did this to avoid using the short 2-character name
299*aae38d10SBaptiste Daroussin     * remove  a  restriction  in  tput's support for termcap names which
300*aae38d10SBaptiste Daroussin       omitted capabilities normally not shown in termcap translations
301*aae38d10SBaptiste Daroussin     * add usage message to clear command
302*aae38d10SBaptiste Daroussin     * improve usage messages for tset and tput.
303*aae38d10SBaptiste Daroussin
304*aae38d10SBaptiste Daroussin   Other user-visible improvements and new features include:
305*aae38d10SBaptiste Daroussin     * modify  tic/infocmp  display  of numeric values to use hexadecimal
306*aae38d10SBaptiste Daroussin       when  they  are  "close" to a power of two, making the result more
307*aae38d10SBaptiste Daroussin       readable.
308*aae38d10SBaptiste Daroussin     * add "-W" option to tic/infocmp to force long strings to wrap.
309*aae38d10SBaptiste Daroussin          + This  is in addition to the "-w" option which attempts to fit
310*aae38d10SBaptiste Daroussin            capabilities into a given line-length.
311*aae38d10SBaptiste Daroussin          + If  "-f"  option  splits  line,  do not further split it with
312*aae38d10SBaptiste Daroussin            "-W".
313*aae38d10SBaptiste Daroussin          + Begin a new line when adding "use=" after a wrapped line.
314*aae38d10SBaptiste Daroussin     * add  "-q"  option  to infocmp to suppress the "Reconstructed from"
315*aae38d10SBaptiste Daroussin       comment  from  the  header,  and  a corresponding option to tic to
316*aae38d10SBaptiste Daroussin       suppress all comments from the "tic -I" output.
317*aae38d10SBaptiste Daroussin     * Sorted options in usage message for infocmp, to make it simpler to
318*aae38d10SBaptiste Daroussin       see unused letters.
319*aae38d10SBaptiste Daroussin     * Updated usage message for tic, adding "-0" option.
320*aae38d10SBaptiste Daroussin     * add infocmp/tic "-Q" option, which allows one to dump the compiled
321*aae38d10SBaptiste Daroussin       form of the terminal entry, in hexadecimal or base64:
322*aae38d10SBaptiste Daroussin          + A  "b64:"  prefix in the TERMINFO variable tells the terminfo
323*aae38d10SBaptiste Daroussin            reader  to  use  base64  according  to  RFC-3548  as  well as
324*aae38d10SBaptiste Daroussin            RFC-4648 url/filename-safe format.
325*aae38d10SBaptiste Daroussin          + A   "hex:"   prefix  tells  the  terminfo  reader  to  accept
326*aae38d10SBaptiste Daroussin            hexadecimal data as generated by "infocmp -0qQ1".
327*aae38d10SBaptiste Daroussin
328*aae38d10SBaptiste Daroussin   Other less-visible improvements and new features include:
329*aae38d10SBaptiste Daroussin     * modify  utility headers such as tic.h to make it clearer which are
330*aae38d10SBaptiste Daroussin       externals that are used by tack.
331*aae38d10SBaptiste Daroussin     * add  "reset"  to  list  of  programs  whose  names might change in
332*aae38d10SBaptiste Daroussin       manpages due to program-transformation configure options.
333*aae38d10SBaptiste Daroussin     * modify  "-T" option of clear and tput to call use_tioctl to obtain
334*aae38d10SBaptiste Daroussin       the operating system's notion of the screensize if possible.
335*aae38d10SBaptiste Daroussin     * add  check  in  tput for init/reset operands to ensure those use a
336*aae38d10SBaptiste Daroussin       terminal.
337*aae38d10SBaptiste Daroussin     * modify  programs clear, tabs, tput and tset to pass the actual tty
338*aae38d10SBaptiste Daroussin       file  descriptor  to  setupterm rather than the standard output or
339*aae38d10SBaptiste Daroussin       error, making padding work.
340*aae38d10SBaptiste Daroussin     * change  tset's initialization to allow it to get settings from the
341*aae38d10SBaptiste Daroussin       standard  input  as  well  as  /dev/tty, to be more effective when
342*aae38d10SBaptiste Daroussin       output or error are redirected.
343*aae38d10SBaptiste Daroussin     * amend  check  in  tput,  tabs  and clear to allow those to use the
344*aae38d10SBaptiste Daroussin       database-only  features  in cron if a "-T" option gives a suitable
345*aae38d10SBaptiste Daroussin       terminal name.
346*aae38d10SBaptiste Daroussin     * improve  error message from tset/reset when both stderr/stdout are
347*aae38d10SBaptiste Daroussin       redirected to a file or pipe.
348*aae38d10SBaptiste Daroussin
349*aae38d10SBaptiste Daroussin   Several  of  the  less  apparent  features  deal  with  translation of
350*aae38d10SBaptiste Daroussin   terminfo  to  termcap  (and the reverse), with corresponding checks by
351*aae38d10SBaptiste Daroussin   tic:
352*aae38d10SBaptiste Daroussin     * modify check in fmt_entry to handle a cancelled reset string. Make
353*aae38d10SBaptiste Daroussin       similar fixes in other parts of dump_entry.c and tput.c
354*aae38d10SBaptiste Daroussin     * correct  read of terminfo entry in which all strings are absent or
355*aae38d10SBaptiste Daroussin       explicitly  cancelled.  Before  this  fix, the result was that all
356*aae38d10SBaptiste Daroussin       were treated as only absent.
357*aae38d10SBaptiste Daroussin     * modify   infocmp   to   suppress   mixture   of   absent/cancelled
358*aae38d10SBaptiste Daroussin       capabilities that would only show as "NULL, NULL", unless the "-q"
359*aae38d10SBaptiste Daroussin       option is used, e.g., to show "-, @" or "@, -".
360*aae38d10SBaptiste Daroussin     * correct  a warning from tic about keys which are the same, to skip
361*aae38d10SBaptiste Daroussin       over missing/cancelled values.
362*aae38d10SBaptiste Daroussin     * add  check  in  tic for use of bold, etc., video attributes in the
363*aae38d10SBaptiste Daroussin       color  capabilities,  accounting  whether the feature is listed in
364*aae38d10SBaptiste Daroussin       ncv.
365*aae38d10SBaptiste Daroussin     * add  check  in  tic for unnecessary use of "2" to denote a shifted
366*aae38d10SBaptiste Daroussin       special key.
367*aae38d10SBaptiste Daroussin     * improve  check  in tic for delays by also warning about beep/flash
368*aae38d10SBaptiste Daroussin       when  a  delay  is not embedded, or if those use the VT100 reverse
369*aae38d10SBaptiste Daroussin       video escape without using a delay.
370*aae38d10SBaptiste Daroussin     * improve  checks  in trim_sgr0, comp_parse.c and parse_entry.c, for
371*aae38d10SBaptiste Daroussin       cancelled string capabilities.
372*aae38d10SBaptiste Daroussin     * add  check in tic for some syntax errors of delays, as well as use
373*aae38d10SBaptiste Daroussin       of proportional delays for non-line capabilities.
374*aae38d10SBaptiste Daroussin     * add  check  in  tic  for  conflict between ritm, rmso, rmul versus
375*aae38d10SBaptiste Daroussin       sgr0.
376*aae38d10SBaptiste Daroussin     * add  check  in _nc_parse_entry for invalid entry name, setting the
377*aae38d10SBaptiste Daroussin       name to "invalid" to avoid problems storing entries.
378*aae38d10SBaptiste Daroussin     * improve _nc_tparm_analyze, using that to extend the checks made by
379*aae38d10SBaptiste Daroussin       tic  for  reporting inconsistencies between the expected number of
380*aae38d10SBaptiste Daroussin       parameters for a capability and the actual.
381*aae38d10SBaptiste Daroussin     * remove  tic  warning  about "^?" in string capabilities, which was
382*aae38d10SBaptiste Daroussin       marked  as  an extension; however all Unix implementations support
383*aae38d10SBaptiste Daroussin       this  and  X/Open  Curses  does not address it. On the other hand,
384*aae38d10SBaptiste Daroussin       [25]BSD   termcap   did   not  support  this  feature  (until  the
385*aae38d10SBaptiste Daroussin       [26]mid-1990s).
386*aae38d10SBaptiste Daroussin       in  _nc_infotocap,  added  a check to ensure that terminfo "^?" is
387*aae38d10SBaptiste Daroussin       not written to termcap.
388*aae38d10SBaptiste Daroussin     * modify  sscanf calls in _nc_infotocap for patterns "%{number}%+%c"
389*aae38d10SBaptiste Daroussin       and "%'char'%+%c" to check that the final character is really "c",
390*aae38d10SBaptiste Daroussin       avoiding a case in icl6404 which cannot be converted to termcap.
391*aae38d10SBaptiste Daroussin     * in  _nc_tic_expand and _nc_infotocap, improved string-length check
392*aae38d10SBaptiste Daroussin       when  deciding  whether  to  use "^X" or "\xxx" format for control
393*aae38d10SBaptiste Daroussin       characters, to make the output of tic/infocmp more predictable.
394*aae38d10SBaptiste Daroussin     * limited  termcap  "%d" width to 2 digits on input, and use "%2" in
395*aae38d10SBaptiste Daroussin       preference to "%02" on output.
396*aae38d10SBaptiste Daroussin     * correct  terminfo/termcap  conversion of "%02" and "%03" into "%2"
397*aae38d10SBaptiste Daroussin       and "%3"; the result repeated the last character.
398*aae38d10SBaptiste Daroussin
399*aae38d10SBaptiste Daroussin    Examples
400*aae38d10SBaptiste Daroussin
401*aae38d10SBaptiste Daroussin   Along  with  the library and utilities, many improvements were made to
402*aae38d10SBaptiste Daroussin   the [27]ncurses-examples.
403*aae38d10SBaptiste Daroussin
404*aae38d10SBaptiste Daroussin   These changes were made to demonstrate new extensions in ncurses:
405*aae38d10SBaptiste Daroussin     * add   demo_new_pair   program,   to   demonstrate  [28]alloc_pair,
406*aae38d10SBaptiste Daroussin       [29]find_pair and [30]free_pair functions.
407*aae38d10SBaptiste Daroussin       This  program  iterates  over  the  possible  color  combinations,
408*aae38d10SBaptiste Daroussin       allocating  or  initializing color pairs. For best results, choose
409*aae38d10SBaptiste Daroussin       screen-width dividing evenly into the number of colors. e.g.,
410*aae38d10SBaptiste Daroussin
411*aae38d10SBaptiste Daroussin     32x64,32x128   256 colors
412*aae38d10SBaptiste Daroussin     24x44,24x88    88 colors
413*aae38d10SBaptiste Daroussin     32x64,24x128   16 colors
414*aae38d10SBaptiste Daroussin
415*aae38d10SBaptiste Daroussin     * add  extended_color program, like the older color_set program, but
416*aae38d10SBaptiste Daroussin       using   the   extended  color  functions,  with  and  without  the
417*aae38d10SBaptiste Daroussin       SP-functions interface.
418*aae38d10SBaptiste Daroussin     * add  picsmap  program  to  fill  in some testing issues not met by
419*aae38d10SBaptiste Daroussin       dots,  using  this  as  the  third  example in a comparison of the
420*aae38d10SBaptiste Daroussin       [31]ncurses versus slang libraries.
421*aae38d10SBaptiste Daroussin       The   program  can  directly  read  X  bitmap  and  pixmap  files,
422*aae38d10SBaptiste Daroussin       displaying  a  picture.  It  can  read  other  image  files  using
423*aae38d10SBaptiste Daroussin       ImageMagick's convert program to translate the image into text.
424*aae38d10SBaptiste Daroussin       For 16-, 88- and 256-color terminal descriptions, picsmap can load
425*aae38d10SBaptiste Daroussin       a  palette file which tells it which color palette entries to use.
426*aae38d10SBaptiste Daroussin       For direct-colors, the terminal descriptions use the RGB extension
427*aae38d10SBaptiste Daroussin       capability.
428*aae38d10SBaptiste Daroussin
429*aae38d10SBaptiste Daroussin   There are other new example programs and a few scripts:
430*aae38d10SBaptiste Daroussin     * add  dots_xcurses  program to illustrate a different approach used
431*aae38d10SBaptiste Daroussin       for extended colors which can be contrasted with dots_curses.
432*aae38d10SBaptiste Daroussin     * add  list_keys program show function keys for one or more terminal
433*aae38d10SBaptiste Daroussin       descriptions.  It  uses  ncurses's  convention  of  modifiers  for
434*aae38d10SBaptiste Daroussin       special keys, based on xterm.
435*aae38d10SBaptiste Daroussin     * add  padview  program,  to compare pads with direct updates in the
436*aae38d10SBaptiste Daroussin       view program.
437*aae38d10SBaptiste Daroussin     * add sp_tinfo program to exercise the SP-functions extension of the
438*aae38d10SBaptiste Daroussin       low-level terminfo library.
439*aae38d10SBaptiste Daroussin     * add test-programs for termattrs and term_attrs functions.
440*aae38d10SBaptiste Daroussin     * add  test_sgr  program  to  exercise  all  combinations of the sgr
441*aae38d10SBaptiste Daroussin       capability.
442*aae38d10SBaptiste Daroussin     * add   tput-colorcube   demo  script,  imitating  xterm's  88-  and
443*aae38d10SBaptiste Daroussin       256-color scripts using tput.
444*aae38d10SBaptiste Daroussin     * add  tput-initc  script  to  demonstrate  how  tput may be used to
445*aae38d10SBaptiste Daroussin       initialize a color palette from a data file.
446*aae38d10SBaptiste Daroussin
447*aae38d10SBaptiste Daroussin   A  variety  of  improvements  were made to existing programs, both new
448*aae38d10SBaptiste Daroussin   features  as  well  as  options added to make the set of programs more
449*aae38d10SBaptiste Daroussin   consistent.
450*aae38d10SBaptiste Daroussin
451*aae38d10SBaptiste Daroussin   The  ncurses program is the largest; a proportionately large number of
452*aae38d10SBaptiste Daroussin   changes were made to it:
453*aae38d10SBaptiste Daroussin     * modify  a/A  screens to make exiting on an escape character depend
454*aae38d10SBaptiste Daroussin       on  the start of keypad and timeout modes, to allow better testing
455*aae38d10SBaptiste Daroussin       of function-keys.
456*aae38d10SBaptiste Daroussin       add "t" toggle for notimeout function.
457*aae38d10SBaptiste Daroussin     * modify layout of b/B screens to allow for additional annotation on
458*aae38d10SBaptiste Daroussin       the  right  margin;  some  terminals  with partial support did not
459*aae38d10SBaptiste Daroussin       display well.
460*aae38d10SBaptiste Daroussin     * modify c/C screens to allow for extended color pairs.
461*aae38d10SBaptiste Daroussin       add z/Z zoom feature to make extended color pairs easier to test.
462*aae38d10SBaptiste Daroussin       modify  test-screens  to  take advantage of wide screens, reducing
463*aae38d10SBaptiste Daroussin       the number of lines used for 88- and 256-colors.
464*aae38d10SBaptiste Daroussin     * modify  "d"  edit-color  screen  to  optionally  read  xterm color
465*aae38d10SBaptiste Daroussin       palette directly from terminal, as well as handling KEY_RESIZE and
466*aae38d10SBaptiste Daroussin       screen-repainting with control/L and control/R.
467*aae38d10SBaptiste Daroussin     * add examples to "F" screen for WACS_D_PLUS and WACS_T_PLUS.
468*aae38d10SBaptiste Daroussin     * improve  "g"  screen,  correcting  ifdef which made the legend not
469*aae38d10SBaptiste Daroussin       reflect  changes  to  keypad-  and  scroll-modes.  Added check for
470*aae38d10SBaptiste Daroussin       return-value of putwin.
471*aae38d10SBaptiste Daroussin     * make "s" test easier to understand which subtests are available
472*aae38d10SBaptiste Daroussin       add a corresponding "S" wide-character overlap test-screen.
473*aae38d10SBaptiste Daroussin     * add "v" screen to show baudrate and other values.
474*aae38d10SBaptiste Daroussin
475*aae38d10SBaptiste Daroussin   These changes were made to the other examples:
476*aae38d10SBaptiste Daroussin     * modify  blue  program  to  use Unicode values for card-glyphs when
477*aae38d10SBaptiste Daroussin       available, as well as improving the check for CP437 and CP850.
478*aae38d10SBaptiste Daroussin     * improve   demo_menus   program,   allowing   mouse-click   on  the
479*aae38d10SBaptiste Daroussin       menu-headers  to  switch  the  active  menu.  This  requires a new
480*aae38d10SBaptiste Daroussin       extension option O_MOUSE_MENU to tell the menu driver to put mouse
481*aae38d10SBaptiste Daroussin       events  which  do not apply to the active menu back into the queue
482*aae38d10SBaptiste Daroussin       so that the application can handle the event.
483*aae38d10SBaptiste Daroussin     * correct logic in demo_terminfo program for "-f" option
484*aae38d10SBaptiste Daroussin     * modify  ditto program to allow $XTERM_PROG environment variable to
485*aae38d10SBaptiste Daroussin       override "xterm" as the name of the program to run in the threaded
486*aae38d10SBaptiste Daroussin       configuration.
487*aae38d10SBaptiste Daroussin     * add several options to the "dots" test-programs.
488*aae38d10SBaptiste Daroussin     * modify filter program:
489*aae38d10SBaptiste Daroussin          + illustrate  an  alternative  to getnstr, that polls for input
490*aae38d10SBaptiste Daroussin            while  updating  a  clock  on  the  right  margin  as well as
491*aae38d10SBaptiste Daroussin            responding to window size-changes.
492*aae38d10SBaptiste Daroussin          + adapt  logic  used in [32]dialog [33]"--keep-tite" option for
493*aae38d10SBaptiste Daroussin            filter  program as the "-a" option. When set, filter attempts
494*aae38d10SBaptiste Daroussin            to suppress the alternate screen.
495*aae38d10SBaptiste Daroussin     * modify  knight  program  to  provide the "slow" solution for small
496*aae38d10SBaptiste Daroussin       screens  using  "R", noting that Warnsdorf's method is easily done
497*aae38d10SBaptiste Daroussin       with "a".
498*aae38d10SBaptiste Daroussin     * modify  the  savescreen program to add test patterns that exercise
499*aae38d10SBaptiste Daroussin       88-, 256-, etc., colors.
500*aae38d10SBaptiste Daroussin     * add  options  to  test_arrays,  for selecting termcap vs terminfo,
501*aae38d10SBaptiste Daroussin       etc.
502*aae38d10SBaptiste Daroussin     * modify the view program:
503*aae38d10SBaptiste Daroussin          + expand  tabs  using  the  ncurses  library rather than in the
504*aae38d10SBaptiste Daroussin            test-program.
505*aae38d10SBaptiste Daroussin          + eliminate the "-n" option by simply reading the whole file.
506*aae38d10SBaptiste Daroussin          + implement page up/down commands.
507*aae38d10SBaptiste Daroussin          + remove the very old SIGWINCH example; just use KEY_RESIZE.
508*aae38d10SBaptiste Daroussin     * improve  animation  in  xmas  program  by  adding  a time-delay in
509*aae38d10SBaptiste Daroussin       blinkit.
510*aae38d10SBaptiste Daroussin     * modify  several  test-programs  which  call  use_default_colors to
511*aae38d10SBaptiste Daroussin       consistently do this only if the "-d" option is given.
512*aae38d10SBaptiste Daroussin     * modify the install-rule for ncurses-examples to put the data files
513*aae38d10SBaptiste Daroussin       in the data directory, e.g., /usr/share/ncurses-examples.
514*aae38d10SBaptiste Daroussin     * modify  several  test  programs  to  use  new popup_msgs function,
515*aae38d10SBaptiste Daroussin       adapted from the help-screen used in the edit_field program.
516*aae38d10SBaptiste Daroussin     * modify   test   data   for   xterm   palettes  to  use  the  newer
517*aae38d10SBaptiste Daroussin       color4/color12 values.
518*aae38d10SBaptiste Daroussin     * improve the tracemunch script:
519*aae38d10SBaptiste Daroussin          + show screenXX pointers and thread identifiers as names.
520*aae38d10SBaptiste Daroussin          + chang   address-parameters   of  add_wch,  color_content  and
521*aae38d10SBaptiste Daroussin            pair_content to dummy parameters.
522*aae38d10SBaptiste Daroussin
523*aae38d10SBaptiste Daroussin  Terminal database
524*aae38d10SBaptiste Daroussin
525*aae38d10SBaptiste Daroussin   There are several new terminal descriptions:
526*aae38d10SBaptiste Daroussin
527*aae38d10SBaptiste Daroussin     dumb-emacs-ansi,  dvtm,  dvtm-256color,  fbterm,  iterm2,  linux-m1
528*aae38d10SBaptiste Daroussin     minitel    entries,    putty-noapp,    viewdata,   and   vt100+4bsd
529*aae38d10SBaptiste Daroussin     building-block.
530*aae38d10SBaptiste Daroussin
531*aae38d10SBaptiste Daroussin     xterm+noalt,   xterm+titlestack,   xterm+alt1049,   xterm+alt+title
532*aae38d10SBaptiste Daroussin     building  blocks  and  xterm+direct,  xterm+indirect, xterm-direct.
533*aae38d10SBaptiste Daroussin     from [34]xterm patch #331.
534*aae38d10SBaptiste Daroussin
535*aae38d10SBaptiste Daroussin     several  other "-direct" descriptions to address the differences of
536*aae38d10SBaptiste Daroussin     other terminal emulators versus xterm-direct.
537*aae38d10SBaptiste Daroussin
538*aae38d10SBaptiste Daroussin   There  are  many  changes to existing terminal descriptions. Some were
539*aae38d10SBaptiste Daroussin   updates to several descriptions:
540*aae38d10SBaptiste Daroussin     * use  xterm+sm+1006  in  several  terminal  descriptions which were
541*aae38d10SBaptiste Daroussin       validated  as  supporting  the  extended  mouse  feature for their
542*aae38d10SBaptiste Daroussin       respective terminal emulators.
543*aae38d10SBaptiste Daroussin     * corrected  sgr/sgr0 strings in a few cases reported by tic, making
544*aae38d10SBaptiste Daroussin       those  correspond  to  the non-sgr settings where they differ, but
545*aae38d10SBaptiste Daroussin       otherwise use ECMA-48 consistently.
546*aae38d10SBaptiste Daroussin     * add  0.1sec  mandatory delay to flash capabilities using the VT100
547*aae38d10SBaptiste Daroussin       reverse-video control
548*aae38d10SBaptiste Daroussin
549*aae38d10SBaptiste Daroussin   while  others  affected specific descriptions. These were retested, to
550*aae38d10SBaptiste Daroussin   take into account new/undocumented changes by their developers:
551*aae38d10SBaptiste Daroussin
552*aae38d10SBaptiste Daroussin     iterm, minitel, st, viewdata, nsterm
553*aae38d10SBaptiste Daroussin
554*aae38d10SBaptiste Daroussin   while these are specific fixes based on user reports, or warnings from
555*aae38d10SBaptiste Daroussin   tic:
556*aae38d10SBaptiste Daroussin
557*aae38d10SBaptiste Daroussin   [35]ansi building blocks
558*aae38d10SBaptiste Daroussin
559*aae38d10SBaptiste Daroussin          + restored  rmir/smir  in  ansi+idc  to  better  match original
560*aae38d10SBaptiste Daroussin            ansiterm+idc, add alias ansiterm
561*aae38d10SBaptiste Daroussin
562*aae38d10SBaptiste Daroussin   [36]icl6402
563*aae38d10SBaptiste Daroussin
564*aae38d10SBaptiste Daroussin          + corrected missing comma-separator between string capabilities
565*aae38d10SBaptiste Daroussin            in icl6402 and m2-nam
566*aae38d10SBaptiste Daroussin
567*aae38d10SBaptiste Daroussin   [37]interix
568*aae38d10SBaptiste Daroussin
569*aae38d10SBaptiste Daroussin          + updated using tack and SFU with Windows 7 Ultimate.
570*aae38d10SBaptiste Daroussin          + used ^? for kdch1
571*aae38d10SBaptiste Daroussin
572*aae38d10SBaptiste Daroussin   [38]linux
573*aae38d10SBaptiste Daroussin
574*aae38d10SBaptiste Daroussin          + made linux3.0 entry the default linux entry
575*aae38d10SBaptiste Daroussin          + modify  linux2.6  entry  to  improve line-drawing so that the
576*aae38d10SBaptiste Daroussin            linux3.0 entry can be used in non-UTF-8 mode
577*aae38d10SBaptiste Daroussin          + omitted  selection  of  ISO-8859-1 for G0 in enacs capability
578*aae38d10SBaptiste Daroussin            from  linux2.6 entry, to avoid conflict with the user-defined
579*aae38d10SBaptiste Daroussin            mapping. The reset feature uses ISO-8859-1 in any case.
580*aae38d10SBaptiste Daroussin          + modify flash capability for linux and wyse entries to put the
581*aae38d10SBaptiste Daroussin            delay between the reverse/normal escapes rather than after
582*aae38d10SBaptiste Daroussin          + modify  linux-16color  to  not  mask dim, standout or reverse
583*aae38d10SBaptiste Daroussin            with the ncv capability
584*aae38d10SBaptiste Daroussin
585*aae38d10SBaptiste Daroussin   [39]pccon entries
586*aae38d10SBaptiste Daroussin
587*aae38d10SBaptiste Daroussin          + fixed some inconsistencies in the pccon* entries
588*aae38d10SBaptiste Daroussin          + add bold to pccon+sgr+acs and pccon-base
589*aae38d10SBaptiste Daroussin          + add keys f12-f124 to pccon+keys
590*aae38d10SBaptiste Daroussin
591*aae38d10SBaptiste Daroussin   [40]tmux
592*aae38d10SBaptiste Daroussin
593*aae38d10SBaptiste Daroussin          + corrected  sgr  string,  which  used screen's "standout" code
594*aae38d10SBaptiste Daroussin            rather than the standard code.
595*aae38d10SBaptiste Daroussin          + add  settings  corresponding  to xterm-keys option to reflect
596*aae38d10SBaptiste Daroussin            upcoming change to make that option "on" by default
597*aae38d10SBaptiste Daroussin          + uncanceled Ms
598*aae38d10SBaptiste Daroussin
599*aae38d10SBaptiste Daroussin   [41]vt100
600*aae38d10SBaptiste Daroussin
601*aae38d10SBaptiste Daroussin          + modify  vt100  rs2  string  to  reset vt52 mode and scrolling
602*aae38d10SBaptiste Daroussin            regions
603*aae38d10SBaptiste Daroussin          + corrected rs2 string for vt100-nam
604*aae38d10SBaptiste Daroussin          + made  minor  fixes  for  vt100+4bsd,  e.g.,  delay in sgr for
605*aae38d10SBaptiste Daroussin            consistency
606*aae38d10SBaptiste Daroussin
607*aae38d10SBaptiste Daroussin   [42]vte
608*aae38d10SBaptiste Daroussin
609*aae38d10SBaptiste Daroussin          + moved SGR 24 and 27 from vte-2014 to vte-2012
610*aae38d10SBaptiste Daroussin          + add a few capabilities fixed in recent VTE development
611*aae38d10SBaptiste Daroussin
612*aae38d10SBaptiste Daroussin   [43]xterm
613*aae38d10SBaptiste Daroussin
614*aae38d10SBaptiste Daroussin          + add rep to xterm-new, available since [44]late 1996.
615*aae38d10SBaptiste Daroussin          + modify  xterm+256color  and  xterm+256setaf  to  use  correct
616*aae38d10SBaptiste Daroussin            number of color pairs.
617*aae38d10SBaptiste Daroussin          + modify    rs1    for    xterm-16color,    xterm-88color   and
618*aae38d10SBaptiste Daroussin            xterm-256color  to  reset palette using oc string as in linux
619*aae38d10SBaptiste Daroussin            entry.
620*aae38d10SBaptiste Daroussin          + add rs1 capability to xterm-256color
621*aae38d10SBaptiste Daroussin          + add  oc  capability to xterm+256color, allowing palette reset
622*aae38d10SBaptiste Daroussin            for xterm
623*aae38d10SBaptiste Daroussin          + add op to xterm+256setaf
624*aae38d10SBaptiste Daroussin          + modify xterm-r5, xterm-r6 and xterm-xf86-v32 to use xterm+kbs
625*aae38d10SBaptiste Daroussin            to match [45]xterm #272, reflecting packager's changes
626*aae38d10SBaptiste Daroussin          + used  ANSI  reply for u8 in xterm-new, to reflect vt220-style
627*aae38d10SBaptiste Daroussin            responses that could be returned.
628*aae38d10SBaptiste Daroussin          + made xterm-pcolor sgr consistent with other capabilities
629*aae38d10SBaptiste Daroussin
630*aae38d10SBaptiste Daroussin   A few entries use extensions (user-defined terminal capabilities):
631*aae38d10SBaptiste Daroussin     * add rmxx/smxx ECMA-48 strikeout extension to tmux and xterm-basic
632*aae38d10SBaptiste Daroussin     * used RGB capability in new *-direct entries to denote direct-color
633*aae38d10SBaptiste Daroussin       feature.
634*aae38d10SBaptiste Daroussin
635*aae38d10SBaptiste Daroussin  Documentation
636*aae38d10SBaptiste Daroussin
637*aae38d10SBaptiste Daroussin   As usual, this release
638*aae38d10SBaptiste Daroussin     * improves documentation by describing new features,
639*aae38d10SBaptiste Daroussin     * attempts  to  improve the description of features which users have
640*aae38d10SBaptiste Daroussin       found confusing
641*aae38d10SBaptiste Daroussin     * fills  in overlooked descriptions of features which were described
642*aae38d10SBaptiste Daroussin       in the [46]NEWS file but treated sketchily in manual pages.
643*aae38d10SBaptiste Daroussin
644*aae38d10SBaptiste Daroussin   In particular,
645*aae38d10SBaptiste Daroussin     * Since   the   underlying  features  for  [47]tset,  [48]tput,  and
646*aae38d10SBaptiste Daroussin       [49]clear  have  been  better  integrated,  the  documentation now
647*aae38d10SBaptiste Daroussin       includes information on how those tools evolved.
648*aae38d10SBaptiste Daroussin       In  addition  to explaining the improved integration of the tools,
649*aae38d10SBaptiste Daroussin       the  manual  pages made it easier to see how the tools are similar
650*aae38d10SBaptiste Daroussin       and how they are different.
651*aae38d10SBaptiste Daroussin     * The    addch   manual   page   has   additional   information   on
652*aae38d10SBaptiste Daroussin       [50]portability and differences from other implementations.
653*aae38d10SBaptiste Daroussin     * The  discussion  of  color-pairs  in the attributes manual page is
654*aae38d10SBaptiste Daroussin       improved in its [51]history section.
655*aae38d10SBaptiste Daroussin     * The  documentation  of the chtype, cchar_t types and the attribute
656*aae38d10SBaptiste Daroussin       values  which  can  be  stored  in  those types, in particular the
657*aae38d10SBaptiste Daroussin       [52]history  and [53]portability sections of the attributes manual
658*aae38d10SBaptiste Daroussin       page, has been improved.
659*aae38d10SBaptiste Daroussin     * improve discussion of [54]portability in the mouse manual.
660*aae38d10SBaptiste Daroussin     * The   pad  manual  page  has  a  section  on  the  [55]origin  and
661*aae38d10SBaptiste Daroussin       portability of pads.
662*aae38d10SBaptiste Daroussin     * Differences between SVr4 and X/Open Curses soft-keys are discussed
663*aae38d10SBaptiste Daroussin       in a new section on [56]portability.
664*aae38d10SBaptiste Daroussin     * There   are   updated/improved   notes   on   portability  in  the
665*aae38d10SBaptiste Daroussin       [57]resizeterm and [58]wresize manual pages.
666*aae38d10SBaptiste Daroussin
667*aae38d10SBaptiste Daroussin   In  addition  to  providing  background  information  to explain these
668*aae38d10SBaptiste Daroussin   features   and   show   how   they  evolved,  there  are  corrections,
669*aae38d10SBaptiste Daroussin   clarifications, etc.:
670*aae38d10SBaptiste Daroussin     * add  note  in  the  [59]addch  manual  about  line-drawing when it
671*aae38d10SBaptiste Daroussin       depends upon UTF-8.
672*aae38d10SBaptiste Daroussin     * improve  discussion  of line-drawing characters in the [60]add_wch
673*aae38d10SBaptiste Daroussin       manual.
674*aae38d10SBaptiste Daroussin     * explain  in [61]clear's manual page that it writes to the standard
675*aae38d10SBaptiste Daroussin       output.
676*aae38d10SBaptiste Daroussin     * improve description of [62]endwin.
677*aae38d10SBaptiste Daroussin     * improve  discussion  of  field  validation  in the [63]form driver
678*aae38d10SBaptiste Daroussin       manual page.
679*aae38d10SBaptiste Daroussin     * clarify the use of wint_t vs wchar_t in [64]get_wstr manual page.
680*aae38d10SBaptiste Daroussin     * clarify  in  the  [65]getch manual that the keypad mode affects an
681*aae38d10SBaptiste Daroussin       application's ability to read KEY_MOUSE codes, but does not affect
682*aae38d10SBaptiste Daroussin       KEY_RESIZE.
683*aae38d10SBaptiste Daroussin       trim  some  obsolete/incorrect  wording about EINTR from the getch
684*aae38d10SBaptiste Daroussin       manual page
685*aae38d10SBaptiste Daroussin       improve  manual  pages  for [66]getch and [67]get_wch to point out
686*aae38d10SBaptiste Daroussin       that   they   might  return  user-defined  values  which  have  no
687*aae38d10SBaptiste Daroussin       predefined names in <curses.h>
688*aae38d10SBaptiste Daroussin     * improve  description  of  the  -R option in the [68]infocmp manual
689*aae38d10SBaptiste Daroussin       page
690*aae38d10SBaptiste Daroussin     * clarify in the [69]resizeterm manual page how KEY_RESIZE is pushed
691*aae38d10SBaptiste Daroussin       onto the input stream.
692*aae38d10SBaptiste Daroussin     * document return value of [70]use_extended_names
693*aae38d10SBaptiste Daroussin     * document  differences  in [71]ESCDELAY versus AIX's implementation
694*aae38d10SBaptiste Daroussin       in the variables manual page.
695*aae38d10SBaptiste Daroussin     * The   _nc_free_tinfo   function   is   now   documented   in   the
696*aae38d10SBaptiste Daroussin       [72]memory-leaks manual page, because it could be used in tack for
697*aae38d10SBaptiste Daroussin       memory-leak checking.
698*aae38d10SBaptiste Daroussin     * add a note to the [73]tic manual page about -W versus -f options.
699*aae38d10SBaptiste Daroussin     * improve terminfo manual description of [74]terminfo syntax.
700*aae38d10SBaptiste Daroussin       improve  terminfo  manual  page  discussion  of  [75]control-  and
701*aae38d10SBaptiste Daroussin       graphics- characters.
702*aae38d10SBaptiste Daroussin       improve [76]color-handling section in terminfo manual page
703*aae38d10SBaptiste Daroussin     * clarify  description in [77]tput manual page regarding support for
704*aae38d10SBaptiste Daroussin       termcap names
705*aae38d10SBaptiste Daroussin       update  [78]tput  manual  page  to  reflect  changes to manipulate
706*aae38d10SBaptiste Daroussin       terminal modes by sharing functions with tset.
707*aae38d10SBaptiste Daroussin     * clarify  in manual pages that the optional verbose option level of
708*aae38d10SBaptiste Daroussin       [79]tic   and  [80]infocmp  is  available  only  when  ncurses  is
709*aae38d10SBaptiste Daroussin       configured for tracing.
710*aae38d10SBaptiste Daroussin     * improve   manual   page   description   of  [81]tset/reset  versus
711*aae38d10SBaptiste Daroussin       window-size.
712*aae38d10SBaptiste Daroussin     * improve description of [82]tgoto parameters
713*aae38d10SBaptiste Daroussin
714*aae38d10SBaptiste Daroussin   There are new manual pages:
715*aae38d10SBaptiste Daroussin     * [83]user_caps documents the terminfo extensions used by ncurses.
716*aae38d10SBaptiste Daroussin     * [84]scr_dump documents the screen-dump format.
717*aae38d10SBaptiste Daroussin
718*aae38d10SBaptiste Daroussin   Some  of  the  improvements  are  more subtle, relating to the way the
719*aae38d10SBaptiste Daroussin   information is presented:
720*aae38d10SBaptiste Daroussin     * Made minor fixes to manpage NAME/SYNOPSIS sections to consistently
721*aae38d10SBaptiste Daroussin       use  rule  that  either  all  functions  which  are  prototyped in
722*aae38d10SBaptiste Daroussin       SYNOPSIS  are  listed in the NAME section, or the manual-page name
723*aae38d10SBaptiste Daroussin       is the sole item listed in the NAME section. The latter is used to
724*aae38d10SBaptiste Daroussin       reduce  clutter,  e.g.,  for the top-level library manual pages as
725*aae38d10SBaptiste Daroussin       well  as  for  certain  feature-pages  such  as  [85]SP-funcs  and
726*aae38d10SBaptiste Daroussin       [86]threading.
727*aae38d10SBaptiste Daroussin     * improve  manual  pages  for utilities with respect to POSIX versus
728*aae38d10SBaptiste Daroussin       X/Open Curses.
729*aae38d10SBaptiste Daroussin     * improve  organization  of  the [87]attributes and [88]color manual
730*aae38d10SBaptiste Daroussin       pages.
731*aae38d10SBaptiste Daroussin
732*aae38d10SBaptiste Daroussin  Interesting bug-fixes
733*aae38d10SBaptiste Daroussin
734*aae38d10SBaptiste Daroussin     * modify  toe  to not exit if unable to read a terminal description,
735*aae38d10SBaptiste Daroussin       e.g., if there is a permission problem.
736*aae38d10SBaptiste Daroussin     * correct 20100515 change for weak signals versus sigprocmask
737*aae38d10SBaptiste Daroussin     * work  around  Ada  tool-breakage in Debian 9 and later by invoking
738*aae38d10SBaptiste Daroussin       gprconfig  to  specify  the C compiler to be used by gnatmake, and
739*aae38d10SBaptiste Daroussin       conditionally   suppressing   Library_Options   line   for  static
740*aae38d10SBaptiste Daroussin       libraries.
741*aae38d10SBaptiste Daroussin     * There were, as well, several bug-fixes to handle illegal input for
742*aae38d10SBaptiste Daroussin       tic.   Because   those  did  not  correspond  to  useful  terminal
743*aae38d10SBaptiste Daroussin       descriptions, most users are unaffected.
744*aae38d10SBaptiste Daroussin
745*aae38d10SBaptiste Daroussin  Configuration changes
746*aae38d10SBaptiste Daroussin
747*aae38d10SBaptiste Daroussin    Major changes
748*aae38d10SBaptiste Daroussin
749*aae38d10SBaptiste Daroussin   This  release  provides  a new binary format for terminal descriptions
750*aae38d10SBaptiste Daroussin   that  use  extended  numeric capabilities. Applications built with the
751*aae38d10SBaptiste Daroussin   wide-character ncursesw library can use these extended numbers.
752*aae38d10SBaptiste Daroussin     * This includes utilities such as tic and infocmp, because (as noted
753*aae38d10SBaptiste Daroussin       in  [89]New features), the feature relies upon an extension to the
754*aae38d10SBaptiste Daroussin       low-level tinfo library.
755*aae38d10SBaptiste Daroussin     * A  few  software  packagers  use a configuration option of ncurses
756*aae38d10SBaptiste Daroussin       which  allows the low-level tinfo library to be shared between the
757*aae38d10SBaptiste Daroussin       high-level  ncurses  and  ncursesw libraries. This new feature was
758*aae38d10SBaptiste Daroussin       designed to work in that configuration as well.
759*aae38d10SBaptiste Daroussin
760*aae38d10SBaptiste Daroussin   Other  applications (i.e., using the 8-bit ncurses library) which read
761*aae38d10SBaptiste Daroussin   the  extended terminal descriptions see those numeric capabilities set
762*aae38d10SBaptiste Daroussin   to the maximum value for a signed 16-bit number.
763*aae38d10SBaptiste Daroussin
764*aae38d10SBaptiste Daroussin   Older   versions   of   ncurses'   tic   accept  out-of-range  numeric
765*aae38d10SBaptiste Daroussin   capabilities,  storing  those as the maximum value for a signed 16-bit
766*aae38d10SBaptiste Daroussin   number.  Other  implementations of curses (mentioned in the discussion
767*aae38d10SBaptiste Daroussin   of [90]picsmap) give zero for these out-of-range capabilities.
768*aae38d10SBaptiste Daroussin
769*aae38d10SBaptiste Daroussin    Configuration options
770*aae38d10SBaptiste Daroussin
771*aae38d10SBaptiste Daroussin   These  changes  provide  support  for  tack 1.08, released in [91]July
772*aae38d10SBaptiste Daroussin   2017:
773*aae38d10SBaptiste Daroussin     * add   --without-tack   configure  option  to  refine  --with-progs
774*aae38d10SBaptiste Daroussin       configure option. Normally tack is built outside the ncurses tree,
775*aae38d10SBaptiste Daroussin       but  a  few packagers combine it during the build. If term_entry.h
776*aae38d10SBaptiste Daroussin       is installed, there is no advantage to in-tree builds.
777*aae38d10SBaptiste Daroussin     * adjust   configure-script   to  define  HAVE_CURSES_DATA_BOOLNAMES
778*aae38d10SBaptiste Daroussin       symbol  needed  for  tack  1.08  when  built  in-tree. Rather than
779*aae38d10SBaptiste Daroussin       relying upon internal "_nc_" functions, tack now uses the boolean,
780*aae38d10SBaptiste Daroussin       number  and  string capability name-arrays provided by ncurses and
781*aae38d10SBaptiste Daroussin       SVr4  Unix  curses. It still uses term_entry.h for the definitions
782*aae38d10SBaptiste Daroussin       of the extended capability arrays.
783*aae38d10SBaptiste Daroussin     * add  dependency  upon  ncurses_cfg.h  to  tic's  header-files; any
784*aae38d10SBaptiste Daroussin       program  using  tic-library  will have to supply this file. Legacy
785*aae38d10SBaptiste Daroussin       tack  versions  supply  this  file;  ongoing  tack development has
786*aae38d10SBaptiste Daroussin       dropped  the dependency upon tic-library and new releases will not
787*aae38d10SBaptiste Daroussin       be affected.
788*aae38d10SBaptiste Daroussin
789*aae38d10SBaptiste Daroussin   Other changes to the configure-script and generated files include
790*aae38d10SBaptiste Daroussin     * add  configure  options to disable checks for form, menu and panel
791*aae38d10SBaptiste Daroussin       libraries  so  that  ncurses-examples  can  be built with non-SVr4
792*aae38d10SBaptiste Daroussin       curses implementations.
793*aae38d10SBaptiste Daroussin     * add  configure  option  --enable-opaque-curses for ncurses library
794*aae38d10SBaptiste Daroussin       and similar options for the other libraries.
795*aae38d10SBaptiste Daroussin     * add configure option --disable-wattr-macros for use in cases where
796*aae38d10SBaptiste Daroussin       one   wants   to   use  the  same  headers  for  ncurses5/ncurses6
797*aae38d10SBaptiste Daroussin       development,  by suppressing the wattr* macros which differ due to
798*aae38d10SBaptiste Daroussin       the introduction of extended colors
799*aae38d10SBaptiste Daroussin     * modify  configure macro for shared-library rules to use -Wl,-rpath
800*aae38d10SBaptiste Daroussin       rather than -rpath to work around a bug in scons
801*aae38d10SBaptiste Daroussin     * improve  ncurses-examples'  configure  script  to define as needed
802*aae38d10SBaptiste Daroussin       NCURSES_WIDECHAR  for  platforms where _XOPEN_SOURCE_EXTENDED does
803*aae38d10SBaptiste Daroussin       not  work.  Also  modified  the  test  program  to  ensure that if
804*aae38d10SBaptiste Daroussin       building  with  ncurses,  that  the cchar_t type is checked, since
805*aae38d10SBaptiste Daroussin       that  is  normally  (since [92]20111030) ifdef'd depending on this
806*aae38d10SBaptiste Daroussin       test.
807*aae38d10SBaptiste Daroussin     * modify  configure  script  to handle the case where tic-library is
808*aae38d10SBaptiste Daroussin       renamed,  but  the  --with-debug  option is used by itself without
809*aae38d10SBaptiste Daroussin       normal or shared libraries
810*aae38d10SBaptiste Daroussin     * modify  editing  script which generates resulting.map to work with
811*aae38d10SBaptiste Daroussin       the clang configuration on recent FreeBSD, which gives an error on
812*aae38d10SBaptiste Daroussin       an empty "local" section.
813*aae38d10SBaptiste Daroussin     * improve configure check for setting the WILDCARD_SYMS variable; on
814*aae38d10SBaptiste Daroussin       ppc64 the variable is in the Data section rather than Text.
815*aae38d10SBaptiste Daroussin     * correct  result  of  configure  option  --without-fallbacks, which
816*aae38d10SBaptiste Daroussin       caused FALLBACK_LIST to be set to "no"
817*aae38d10SBaptiste Daroussin     * modify  --with-pkg-config-libdir  option  to  make  it possible to
818*aae38d10SBaptiste Daroussin       install  ".pc"  files  even if pkg-config is not found. Limit this
819*aae38d10SBaptiste Daroussin       change,  to suppress the actual install if it is not overridden to
820*aae38d10SBaptiste Daroussin       a valid directory at install time.
821*aae38d10SBaptiste Daroussin     * disallow "no" as a possible value for --with-shlib-version option,
822*aae38d10SBaptiste Daroussin       overlooked in cleanup-changes for [93]20000708.
823*aae38d10SBaptiste Daroussin
824*aae38d10SBaptiste Daroussin  Portability
825*aae38d10SBaptiste Daroussin
826*aae38d10SBaptiste Daroussin   Many  of  the  portability  changes  are implemented via the configure
827*aae38d10SBaptiste Daroussin   script:
828*aae38d10SBaptiste Daroussin     * improve  configure  script's  CF_CC_ENV_FLAGS  macro  to allow for
829*aae38d10SBaptiste Daroussin       compiler  wrappers  such  as  ccache.  This  change moves only the
830*aae38d10SBaptiste Daroussin       preprocessor,  optimization  and  warning  flags  to  CPPFLAGS and
831*aae38d10SBaptiste Daroussin       CFLAGS,  leaving the residue in CC. That happens to work for gcc's
832*aae38d10SBaptiste Daroussin       various   "model"  options,  but  may  require  tuning  for  other
833*aae38d10SBaptiste Daroussin       compilers.
834*aae38d10SBaptiste Daroussin     * modify  ncurses-examples'  configure  script to use pkg-config for
835*aae38d10SBaptiste Daroussin       the  extra  form/menu/panel  libraries, to be more consistent with
836*aae38d10SBaptiste Daroussin       the handling of the curses/ncurses library.
837*aae38d10SBaptiste Daroussin     * add  configuration  checks  to build with [94]NetBSD curses, which
838*aae38d10SBaptiste Daroussin       for example lacks [95]use_env.
839*aae38d10SBaptiste Daroussin     * change  ncurses-examples  to use attr_t vs chtype to follow X/Open
840*aae38d10SBaptiste Daroussin       documentation   more   closely   since  Solaris  xpg4-curses  uses
841*aae38d10SBaptiste Daroussin       different  values for WA_xxx vs A_xxx that rely on attr_t being an
842*aae38d10SBaptiste Daroussin       unsigned  short.  Tru64  aka  OSF1, HPUX, AIX did as ncurses does,
843*aae38d10SBaptiste Daroussin       equating the two sets.
844*aae38d10SBaptiste Daroussin     * modify  several  test  programs  to  reflect  that  ncurses honors
845*aae38d10SBaptiste Daroussin       existing  signal  handlers in initscr, while other implementations
846*aae38d10SBaptiste Daroussin       do not.
847*aae38d10SBaptiste Daroussin     * add  configure  check  for  openpty to ncurses-examples' configure
848*aae38d10SBaptiste Daroussin       script, for ditto.
849*aae38d10SBaptiste Daroussin     * improve check for working poll function by using posix_openpt as a
850*aae38d10SBaptiste Daroussin       fallback in case there is no valid terminal on the standard input
851*aae38d10SBaptiste Daroussin     * modify  ncurses-examples'  configure  script  to check for pthread
852*aae38d10SBaptiste Daroussin       dependency  of  ncursest  or  ncursestw  library when building the
853*aae38d10SBaptiste Daroussin       ncurses examples, e.g., in case weak symbols are used.
854*aae38d10SBaptiste Daroussin     * add   checks   in  ncurses-examples'  configure  script  for  some
855*aae38d10SBaptiste Daroussin       functions neither in 4.3BSD curses, nor based on X/Open Curses:
856*aae38d10SBaptiste Daroussin          + modify  a  loop limit in firework.c to work around absense of
857*aae38d10SBaptiste Daroussin            limit checks in some libraries.
858*aae38d10SBaptiste Daroussin          + fill the last row of a window with "?" in firstlast if waddch
859*aae38d10SBaptiste Daroussin            does not return ERR on the lower-right corner.
860*aae38d10SBaptiste Daroussin     * build-fixes for the Portland Group (PGI) compilers
861*aae38d10SBaptiste Daroussin          + accept whitespace in sed expression for generating expanded.c
862*aae38d10SBaptiste Daroussin          + modify  configure  check  that  g++ compiler warnings are not
863*aae38d10SBaptiste Daroussin            used.
864*aae38d10SBaptiste Daroussin          + add  configure  check  for  -fPIC  option  needed  for shared
865*aae38d10SBaptiste Daroussin            libraries.
866*aae38d10SBaptiste Daroussin     * modify  configure  script  for  clang  as used on FreeBSD, to work
867*aae38d10SBaptiste Daroussin       around clang's differences in exit codes vs gcc.
868*aae38d10SBaptiste Daroussin     * fixes for configure/build using clang on OSX
869*aae38d10SBaptiste Daroussin          + do   not   redefine   "inline"  in  ncurses_cfg.h;  this  was
870*aae38d10SBaptiste Daroussin            originally to solve a problem with gcc/g++, but is aggravated
871*aae38d10SBaptiste Daroussin            by clang's misuse of symbols to pretend it is gcc.
872*aae38d10SBaptiste Daroussin          + add  braces  to configure script to prevent unwanted addition
873*aae38d10SBaptiste Daroussin            of "-lstdc++" option to the CXXLIBS symbol.
874*aae38d10SBaptiste Daroussin          + improve/update  test-program  used  for checking existence of
875*aae38d10SBaptiste Daroussin            stdc++ library.
876*aae38d10SBaptiste Daroussin          + if $CXXLIBS is set, the linkage test uses that in addition to
877*aae38d10SBaptiste Daroussin            $LIBS.
878*aae38d10SBaptiste Daroussin     * fixes for OS/2:
879*aae38d10SBaptiste Daroussin          + use  button  instead  of  kbuf[0]  in  EMX-specific  part  of
880*aae38d10SBaptiste Daroussin            lib_mouse.c
881*aae38d10SBaptiste Daroussin          + support building with libtool on OS/2
882*aae38d10SBaptiste Daroussin          + use stdc++ library with OS/2 kLIBC
883*aae38d10SBaptiste Daroussin          + clear  configure  script's  cf_XOPEN_SOURCE for OS/2, to work
884*aae38d10SBaptiste Daroussin            with its header files
885*aae38d10SBaptiste Daroussin     * add  "newer"  baudrate symbols to the [96]baudrate function in the
886*aae38d10SBaptiste Daroussin       ncurses library as well as to a corresponding table in tset.
887*aae38d10SBaptiste Daroussin     * modify ncurses-examples savescreen to work with AIX and HPUX.
888*aae38d10SBaptiste Daroussin     * define WIN32_LEAN_AND_MEAN for MinGW port, making builds faster.
889*aae38d10SBaptiste Daroussin     * add  a configure check for wcwidth versus the ncurses line-drawing
890*aae38d10SBaptiste Daroussin       characters,  to  use  in  special-casing  systems such as Solaris.
891*aae38d10SBaptiste Daroussin       Solaris,  however,  requires  a  special  case  that  maps Unicode
892*aae38d10SBaptiste Daroussin       line-drawing  characters  into  the  acsc  string  for non-Unicode
893*aae38d10SBaptiste Daroussin       locales.  Solaris also has a misconfigured wcwidth which marks all
894*aae38d10SBaptiste Daroussin       of the line drawing characters as double-width.
895*aae38d10SBaptiste Daroussin     * string-hacks (non-standard):
896*aae38d10SBaptiste Daroussin          + fix  configure  script  to  record  when  strlcat is found on
897*aae38d10SBaptiste Daroussin            OpenBSD.
898*aae38d10SBaptiste Daroussin          + add   --enable-string-hacks   option   to   ncurses-examples'
899*aae38d10SBaptiste Daroussin            configure script.
900*aae38d10SBaptiste Daroussin          + completed  string-hacks  for  sprintf,  etc.,  including  the
901*aae38d10SBaptiste Daroussin            ncurses-examples programs.
902*aae38d10SBaptiste Daroussin          + make   --enable-string-hacks   option  work  with  Debian  by
903*aae38d10SBaptiste Daroussin            checking   for   the   "bsd"   library   and  its  associated
904*aae38d10SBaptiste Daroussin            "<bsd/string.h>" header.
905*aae38d10SBaptiste Daroussin     * workaround for Debian's antique/unmaintained version of mawk:
906*aae38d10SBaptiste Daroussin          + see  Debian  #65617,  which  was  fixed  in  mawk's  upstream
907*aae38d10SBaptiste Daroussin            releases in [97]2009.
908*aae38d10SBaptiste Daroussin          + related fixes when building link_test.
909*aae38d10SBaptiste Daroussin     _________________________________________________________________
910*aae38d10SBaptiste Daroussin
911*aae38d10SBaptiste DaroussinFeatures of ncurses
912*aae38d10SBaptiste Daroussin
913*aae38d10SBaptiste Daroussin   The  ncurses  package  is  fully upward-compatible with SVr4 (System V
914*aae38d10SBaptiste Daroussin   Release 4) curses:
915*aae38d10SBaptiste Daroussin     * All of the SVr4 calls have been implemented (and are documented).
916*aae38d10SBaptiste Daroussin     * ncurses  supports  all  of  the for SVr4 curses features including
917*aae38d10SBaptiste Daroussin       keyboard  mapping,  color,  forms-drawing with ACS characters, and
918*aae38d10SBaptiste Daroussin       automatic recognition of keypad and function keys.
919*aae38d10SBaptiste Daroussin     * ncurses  provides  these SVr4 add-on libraries (not part of X/Open
920*aae38d10SBaptiste Daroussin       Curses):
921*aae38d10SBaptiste Daroussin          + the  panels  library,  supporting  a  stack  of  windows with
922*aae38d10SBaptiste Daroussin            backing store.
923*aae38d10SBaptiste Daroussin          + the   menus   library,  supporting  a  uniform  but  flexible
924*aae38d10SBaptiste Daroussin            interface for menu programming.
925*aae38d10SBaptiste Daroussin          + the   form   library,   supporting  data  collection  through
926*aae38d10SBaptiste Daroussin            on-screen forms.
927*aae38d10SBaptiste Daroussin     * ncurses's  terminal database is fully compatible with that used by
928*aae38d10SBaptiste Daroussin       SVr4 curses.
929*aae38d10SBaptiste Daroussin          + ncurses  supports user-defined capabilities which it can see,
930*aae38d10SBaptiste Daroussin            but  which are hidden from SVr4 curses applications using the
931*aae38d10SBaptiste Daroussin            same terminal database.
932*aae38d10SBaptiste Daroussin          + It  can  be optionally configured to match the format used in
933*aae38d10SBaptiste Daroussin            related systems such as AIX and Tru64.
934*aae38d10SBaptiste Daroussin          + Alternatively,  ncurses  can  be  configured  to  use  hashed
935*aae38d10SBaptiste Daroussin            databases  rather  than  the  directory of files used by SVr4
936*aae38d10SBaptiste Daroussin            curses.
937*aae38d10SBaptiste Daroussin     * The ncurses utilities have options to allow you to filter terminfo
938*aae38d10SBaptiste Daroussin       entries for use with less capable curses/terminfo versions such as
939*aae38d10SBaptiste Daroussin       the HP/UX and AIX ports.
9400e3d5408SPeter Wemm
9410e3d5408SPeter Wemm   The ncurses package also has many useful extensions over SVr4:
9420e3d5408SPeter Wemm     * The  API  is 8-bit clean and base-level conformant with the X/OPEN
9430e3d5408SPeter Wemm       curses  specification, XSI curses (that is, it implements all BASE
9444a1a9510SRong-En Fan       level  features,  and  most  EXTENDED  features). It includes many
9454a1a9510SRong-En Fan       function calls not supported under SVr4 curses (but portability of
9464a1a9510SRong-En Fan       all calls is documented so you can use the SVr4 subset only).
9471759abf3SPeter Wemm     * Unlike  SVr3 curses, ncurses can write to the rightmost-bottommost
9480e3d5408SPeter Wemm       corner  of  the  screen  if  your terminal has an insert-character
9490e3d5408SPeter Wemm       capability.
9500e3d5408SPeter Wemm     * Ada95 and C++ bindings.
9514a1a9510SRong-En Fan     * Support  for mouse event reporting with X Window xterm and FreeBSD
9524a1a9510SRong-En Fan       and OS/2 console windows.
9530e3d5408SPeter Wemm     * Extended mouse support via Alessandro Rubini's gpm package.
95406bfebdeSXin LI     * The  function  wresize  allows  you  to resize windows, preserving
9550e3d5408SPeter Wemm       their data.
95606bfebdeSXin LI     * The  function  use_default_colors allows you to use the terminal's
9570e3d5408SPeter Wemm       default colors for the default color pair, achieving the effect of
9580e3d5408SPeter Wemm       transparent colors.
95906bfebdeSXin LI     * The functions keyok and define_key allow you to better control the
96006bfebdeSXin LI       use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by
96106bfebdeSXin LI       defining  more  than  one  control  sequence to map to a given key
96206bfebdeSXin LI       code.
963*aae38d10SBaptiste Daroussin     * Support for 256-color terminals, such as modern xterm.
9644a1a9510SRong-En Fan     * Support for 16-color terminals, such as aixterm and modern xterm.
9650e3d5408SPeter Wemm     * Better  cursor-movement  optimization.  The package now features a
9660e3d5408SPeter Wemm       cursor-local-movement computation more efficient than either BSD's
9670e3d5408SPeter Wemm       or System V's.
9680e3d5408SPeter Wemm     * Super   hardware   scrolling   support.   The  screen-update  code
9690e3d5408SPeter Wemm       incorporates  a novel, simple, and cheap algorithm that enables it
9700e3d5408SPeter Wemm       to  make  optimal  use  of hardware scrolling, line-insertion, and
9710e3d5408SPeter Wemm       line-deletion  for  screen-line  movements. This algorithm is more
97206bfebdeSXin LI       powerful than the 4.4BSD curses quickch routine.
9730e3d5408SPeter Wemm     * Real  support  for  terminals  with  the  magic-cookie glitch. The
9740e3d5408SPeter Wemm       screen-update  code  will  refrain from drawing a highlight if the
9750e3d5408SPeter Wemm       magic-   cookie  unattributed  spaces  required  just  before  the
9760e3d5408SPeter Wemm       beginning  and  after the end would step on a non-space character.
9770e3d5408SPeter Wemm       It  will  automatically  shift  highlight boundaries when doing so
9780e3d5408SPeter Wemm       would  make it possible to draw the highlight without changing the
9790e3d5408SPeter Wemm       visual appearance of the screen.
9800e3d5408SPeter Wemm     * It  is  possible to generate the library with a list of pre-loaded
9810e3d5408SPeter Wemm       fallback  entries linked to it so that it can serve those terminal
9820e3d5408SPeter Wemm       types  even  when  no  terminfo tree or termcap file is accessible
9830e3d5408SPeter Wemm       (this  may  be useful for support of screen-oriented programs that
9840e3d5408SPeter Wemm       must run in single-user mode).
985*aae38d10SBaptiste Daroussin     * The  [98]tic/[99]captoinfo  utility  provided with ncurses has the
986*aae38d10SBaptiste Daroussin       ability  to  translate  many termcaps from the XENIX, IBM and AT&T
987*aae38d10SBaptiste Daroussin       extension sets.
988*aae38d10SBaptiste Daroussin     * A BSD-like [100]tset utility is provided.
9890e3d5408SPeter Wemm     * The ncurses library and utilities will automatically read terminfo
9900e3d5408SPeter Wemm       entries  from  $HOME/.terminfo  if  it exists, and compile to that
9910e3d5408SPeter Wemm       directory  if  it  exists  and the user has no write access to the
9920e3d5408SPeter Wemm       system  directory.  This feature makes it easier for users to have
9930e3d5408SPeter Wemm       personal  terminfo  entries without giving up access to the system
9940e3d5408SPeter Wemm       terminfo directory.
9950e3d5408SPeter Wemm     * You  may  specify  a  path  of  directories to search for compiled
9960e3d5408SPeter Wemm       descriptions  with  the  environment  variable TERMINFO_DIRS (this
9970e3d5408SPeter Wemm       generalizes  the  feature  provided by TERMINFO under stock System
9980e3d5408SPeter Wemm       V.)
9990e3d5408SPeter Wemm     * In  terminfo  source files, use capabilities may refer not just to
10000e3d5408SPeter Wemm       other entries in the same source file (as in System V) but also to
10010e3d5408SPeter Wemm       compiled  entries  in  either the system terminfo directory or the
10020e3d5408SPeter Wemm       user's $HOME/.terminfo directory.
1003*aae38d10SBaptiste Daroussin     * The  table-of-entries  utility [101]toe makes it easy for users to
1004*aae38d10SBaptiste Daroussin       see exactly what terminal types are available on the system.
10050e3d5408SPeter Wemm     * The library meets the XSI requirement that every macro entry point
10060e3d5408SPeter Wemm       have  a  corresponding  function  which may be linked (and will be
10070e3d5408SPeter Wemm       prototype-checked)  if  the  macro  definition  is  disabled  with
10080e3d5408SPeter Wemm       #undef.
1009*aae38d10SBaptiste Daroussin     * Extensive  documentation  is  provided  (see  the  [102]Additional
1010*aae38d10SBaptiste Daroussin       Reading section of the [103]ncurses FAQ for online documentation).
10110e3d5408SPeter Wemm
1012*aae38d10SBaptiste DaroussinApplications using ncurses
10130e3d5408SPeter Wemm
1014*aae38d10SBaptiste Daroussin   The  ncurses  distribution  includes  a  selection  of  test  programs
1015*aae38d10SBaptiste Daroussin   (including   a   few   games).   These  are  available  separately  as
1016*aae38d10SBaptiste Daroussin   [104]ncurses-examples
10170e3d5408SPeter Wemm
1018*aae38d10SBaptiste Daroussin   The   ncurses   library  has  been  tested  with  a  wide  variety  of
1019*aae38d10SBaptiste Daroussin   applications including:
1020*aae38d10SBaptiste Daroussin
1021*aae38d10SBaptiste Daroussin   aptitude
1022*aae38d10SBaptiste Daroussin          FrontEnd to Apt, the debian package manager
1023*aae38d10SBaptiste Daroussin
1024*aae38d10SBaptiste Daroussin          [105]https://wiki.debian.org/Aptitude
10250e3d5408SPeter Wemm
10261759abf3SPeter Wemm   cdk
102715589c42SPeter Wemm          Curses Development Kit
1028*aae38d10SBaptiste Daroussin
1029*aae38d10SBaptiste Daroussin          [106]https://invisible-island.net/cdk/
10301759abf3SPeter Wemm
10310e3d5408SPeter Wemm   ded
103215589c42SPeter Wemm          directory-editor
1033*aae38d10SBaptiste Daroussin
1034*aae38d10SBaptiste Daroussin          [107]https://invisible-island.net/ded/
10350e3d5408SPeter Wemm
10360e3d5408SPeter Wemm   dialog
10370e3d5408SPeter Wemm          the  underlying  application used in Slackware's setup, and the
1038*aae38d10SBaptiste Daroussin          basis   for  similar  install/configure  applications  on  many
1039*aae38d10SBaptiste Daroussin          systems.
1040*aae38d10SBaptiste Daroussin
1041*aae38d10SBaptiste Daroussin          [108]https://invisible-island.net/dialog/
10420e3d5408SPeter Wemm
10431759abf3SPeter Wemm   lynx
1044*aae38d10SBaptiste Daroussin          the text WWW browser
10450e3d5408SPeter Wemm
1046*aae38d10SBaptiste Daroussin          [109]https://lynx.invisible-island.net/
10470e3d5408SPeter Wemm
10481759abf3SPeter Wemm   mutt
10490e3d5408SPeter Wemm          mail utility
1050*aae38d10SBaptiste Daroussin
1051*aae38d10SBaptiste Daroussin          [110]http://www.mutt.org/
10520e3d5408SPeter Wemm
10531759abf3SPeter Wemm   ncftp
10540e3d5408SPeter Wemm          file-transfer utility
1055*aae38d10SBaptiste Daroussin
1056*aae38d10SBaptiste Daroussin          [111]https://www.ncftp.com/
10570e3d5408SPeter Wemm
10580e3d5408SPeter Wemm   nvi
1059*aae38d10SBaptiste Daroussin          New vi uses ncurses.
10604a1a9510SRong-En Fan
1061*aae38d10SBaptiste Daroussin          [112]https://sites.google.com/a/bostic.com/keithbostic/vi
1062*aae38d10SBaptiste Daroussin
1063*aae38d10SBaptiste Daroussin   ranger
1064*aae38d10SBaptiste Daroussin          A console file manager with VI key bindings in Python.
1065*aae38d10SBaptiste Daroussin
1066*aae38d10SBaptiste Daroussin          [113]https://ranger.github.io/
10670e3d5408SPeter Wemm
10681759abf3SPeter Wemm   tin
1069*aae38d10SBaptiste Daroussin          newsreader, supporting color, MIME
1070*aae38d10SBaptiste Daroussin
1071*aae38d10SBaptiste Daroussin          [114]http://www.tin.org/
1072*aae38d10SBaptiste Daroussin
1073*aae38d10SBaptiste Daroussin   vifm
1074*aae38d10SBaptiste Daroussin          File manager with vi like keybindings
1075*aae38d10SBaptiste Daroussin
1076*aae38d10SBaptiste Daroussin          [115]https://vifm.info/
10770e3d5408SPeter Wemm
10780e3d5408SPeter Wemm   as well as some that use ncurses for the terminfo support alone:
10790e3d5408SPeter Wemm
10801759abf3SPeter Wemm   minicom
1081*aae38d10SBaptiste Daroussin          terminal emulator for serial modem connections
1082*aae38d10SBaptiste Daroussin
1083*aae38d10SBaptiste Daroussin          [116]https://alioth.debian.org/projects/minicom/
1084*aae38d10SBaptiste Daroussin
1085*aae38d10SBaptiste Daroussin   mosh
1086*aae38d10SBaptiste Daroussin          a replacement for ssh.
1087*aae38d10SBaptiste Daroussin
1088*aae38d10SBaptiste Daroussin          [117]https://mosh.mit.edu/
1089*aae38d10SBaptiste Daroussin
1090*aae38d10SBaptiste Daroussin   tack
1091*aae38d10SBaptiste Daroussin          terminfo action checker
1092*aae38d10SBaptiste Daroussin
1093*aae38d10SBaptiste Daroussin          [118]https://invisible-island.net/ncurses/tack.html
1094*aae38d10SBaptiste Daroussin
1095*aae38d10SBaptiste Daroussin   tmux
1096*aae38d10SBaptiste Daroussin          terminal multiplexor
1097*aae38d10SBaptiste Daroussin
1098*aae38d10SBaptiste Daroussin          [119]https://github.com/tmux/tmux/wiki
10990e3d5408SPeter Wemm
11000e3d5408SPeter Wemm   vile
1101*aae38d10SBaptiste Daroussin          vi-like-emacs  may  be  built  to  use the terminfo, termcap or
1102*aae38d10SBaptiste Daroussin          curses interfaces.
11030e3d5408SPeter Wemm
1104*aae38d10SBaptiste Daroussin          [120]https://invisible-island.net/vile/
11050e3d5408SPeter Wemm
1106*aae38d10SBaptiste Daroussin   and finally, those which use only the termcap interface:
11070e3d5408SPeter Wemm
1108*aae38d10SBaptiste Daroussin   emacs
1109*aae38d10SBaptiste Daroussin          text editor
1110*aae38d10SBaptiste Daroussin
1111*aae38d10SBaptiste Daroussin          [121]https://www.gnu.org/software/emacs/
1112*aae38d10SBaptiste Daroussin
1113*aae38d10SBaptiste Daroussin   less
1114*aae38d10SBaptiste Daroussin          The  most  commonly  used  pager  (a program that displays text
1115*aae38d10SBaptiste Daroussin          files).
1116*aae38d10SBaptiste Daroussin
1117*aae38d10SBaptiste Daroussin          [122]http://www.greenwoodsoftware.com/less/
1118*aae38d10SBaptiste Daroussin
1119*aae38d10SBaptiste Daroussin   screen
1120*aae38d10SBaptiste Daroussin          terminal multiplexor
1121*aae38d10SBaptiste Daroussin
1122*aae38d10SBaptiste Daroussin          [123]https://www.gnu.org/software/screen/
1123*aae38d10SBaptiste Daroussin
1124*aae38d10SBaptiste Daroussin   vim
1125*aae38d10SBaptiste Daroussin          text editor
1126*aae38d10SBaptiste Daroussin
1127*aae38d10SBaptiste Daroussin          [124]https://www.vim.org/
1128*aae38d10SBaptiste Daroussin
1129*aae38d10SBaptiste DaroussinDevelopment activities
1130*aae38d10SBaptiste Daroussin
1131*aae38d10SBaptiste Daroussin   Zeyd  Ben-Halim  started  ncurses  from  a  previous  package pcurses,
1132*aae38d10SBaptiste Daroussin   written  by  Pavel  Curtis.  Eric  S.  Raymond  continued development.
1133*aae38d10SBaptiste Daroussin   Juergen  Pfeifer  wrote  most  of the form and menu libraries. Ongoing
1134*aae38d10SBaptiste Daroussin   development  work  is  done  by [125]Thomas Dickey. Thomas Dickey also
1135*aae38d10SBaptiste Daroussin   acts  as  the maintainer for the Free Software Foundation, which holds
1136*aae38d10SBaptiste Daroussin   the [126]copyright on ncurses.
1137*aae38d10SBaptiste Daroussin
1138*aae38d10SBaptiste Daroussin   Contact the current maintainers at
1139*aae38d10SBaptiste Daroussin
1140*aae38d10SBaptiste Daroussin     [127]bug-ncurses@gnu.org
11410e3d5408SPeter Wemm
11420e3d5408SPeter Wemm   To join the ncurses mailing list, please write email to
1143*aae38d10SBaptiste Daroussin
1144*aae38d10SBaptiste Daroussin     [128]bug-ncurses-request@gnu.org
1145*aae38d10SBaptiste Daroussin
1146*aae38d10SBaptiste Daroussin   containing the line:
1147*aae38d10SBaptiste Daroussin
11480e3d5408SPeter Wemm     subscribe <name>@<host.domain>
11490e3d5408SPeter Wemm
11500e3d5408SPeter Wemm   This list is open to anyone interested in helping with the development
11510e3d5408SPeter Wemm   and testing of this package.
11520e3d5408SPeter Wemm
11530e3d5408SPeter Wemm   Beta  versions  of ncurses and patches to the current release are made
1154*aae38d10SBaptiste Daroussin   available at
11550e3d5408SPeter Wemm
1156*aae38d10SBaptiste Daroussin     [129]ftp://ftp.invisible-island.net/ncurses/ and
1157*aae38d10SBaptiste Daroussin     [130]https://invisible-mirror.net/archives/ncurses/ .
11580e3d5408SPeter Wemm
1159*aae38d10SBaptiste Daroussin   There is an archive of the mailing list here:
11600e3d5408SPeter Wemm
1161*aae38d10SBaptiste Daroussin     [131]http://lists.gnu.org/archive/html/bug-ncurses            (also
1162*aae38d10SBaptiste Daroussin     [132]https)
11630e3d5408SPeter Wemm
1164*aae38d10SBaptiste DaroussinRelated resources
1165*aae38d10SBaptiste Daroussin
1166*aae38d10SBaptiste Daroussin   The  release notes make scattered references to these pages, which may
1167*aae38d10SBaptiste Daroussin   be interesting by themselves:
1168*aae38d10SBaptiste Daroussin     * [133]ncurses licensing
1169*aae38d10SBaptiste Daroussin     * [134]Symbol versioning in ncurses
1170*aae38d10SBaptiste Daroussin     * [135]Comments on ncurses versus slang (S-Lang)
1171*aae38d10SBaptiste Daroussin     * [136]tack - terminfo action checker
1172*aae38d10SBaptiste Daroussin     * [137]tctest - termcap library checker
1173*aae38d10SBaptiste Daroussin     * [138]Terminal Database
1174*aae38d10SBaptiste Daroussin
1175*aae38d10SBaptiste DaroussinOther resources
11760e3d5408SPeter Wemm
11774a1a9510SRong-En Fan   The  distribution  provides  a  newer  version  of the terminfo-format
1178*aae38d10SBaptiste Daroussin   terminal  description  file  once  maintained  by  [139]Eric Raymond .
1179*aae38d10SBaptiste Daroussin   Unlike  the  older version, the termcap and terminfo data are provided
1180*aae38d10SBaptiste Daroussin   in   the   same  file,  which  also  provides  several  user-definable
1181*aae38d10SBaptiste Daroussin   extensions beyond the X/Open specification.
11820e3d5408SPeter Wemm
11830e3d5408SPeter Wemm   You  can  find  lots  of  information  on  terminal-related topics not
1184*aae38d10SBaptiste Daroussin   covered in the terminfo file at [140]Richard Shuford's archive .
1185*aae38d10SBaptiste Daroussin
1186*aae38d10SBaptiste Daroussin     * [141]Overview
1187*aae38d10SBaptiste Daroussin     * [142]Release Notes
1188*aae38d10SBaptiste Daroussin          + [143]Library improvements
1189*aae38d10SBaptiste Daroussin               o [144]New features
1190*aae38d10SBaptiste Daroussin               o [145]Other improvements
1191*aae38d10SBaptiste Daroussin          + [146]Program improvements
1192*aae38d10SBaptiste Daroussin               o [147]Utilities
1193*aae38d10SBaptiste Daroussin               o [148]Examples
1194*aae38d10SBaptiste Daroussin          + [149]Terminal database
1195*aae38d10SBaptiste Daroussin          + [150]Documentation
1196*aae38d10SBaptiste Daroussin          + [151]Interesting bug-fixes
1197*aae38d10SBaptiste Daroussin          + [152]Configuration changes
1198*aae38d10SBaptiste Daroussin               o [153]Major changes
1199*aae38d10SBaptiste Daroussin               o [154]Configuration options
1200*aae38d10SBaptiste Daroussin          + [155]Portability
1201*aae38d10SBaptiste Daroussin     * [156]Features of ncurses
1202*aae38d10SBaptiste Daroussin     * [157]Applications using ncurses
1203*aae38d10SBaptiste Daroussin     * [158]Development activities
1204*aae38d10SBaptiste Daroussin     * [159]Related resources
1205*aae38d10SBaptiste Daroussin     * [160]Other resources
12060e3d5408SPeter Wemm
12070e3d5408SPeter WemmReferences
12080e3d5408SPeter Wemm
1209*aae38d10SBaptiste Daroussin   1. https://invisible-island.net/ncurses/man/captoinfo.1m.html
1210*aae38d10SBaptiste Daroussin   2. https://invisible-island.net/ncurses/man/clear.1.html
1211*aae38d10SBaptiste Daroussin   3. https://invisible-island.net/ncurses/man/infocmp.1m.html
1212*aae38d10SBaptiste Daroussin   4. https://invisible-island.net/ncurses/man/tabs.1.html
1213*aae38d10SBaptiste Daroussin   5. https://invisible-island.net/ncurses/man/tic.1m.html
1214*aae38d10SBaptiste Daroussin   6. https://invisible-island.net/ncurses/man/toe.1m.html
1215*aae38d10SBaptiste Daroussin   7. https://invisible-island.net/ncurses/man/tput.1.html
1216*aae38d10SBaptiste Daroussin   8. https://invisible-island.net/ncurses/man/tset.1.html
1217*aae38d10SBaptiste Daroussin   9. https://invisible-island.net/ncurses/
1218*aae38d10SBaptiste Daroussin  10. ftp://ftp.invisible-island.net/ncurses/
1219*aae38d10SBaptiste Daroussin  11. https://invisible-mirror.net/archives/ncurses/
1220*aae38d10SBaptiste Daroussin  12. ftp://ftp.gnu.org/gnu/ncurses/
1221*aae38d10SBaptiste Daroussin  13. https://invisible-island.net/ncurses/man/curs_kernel.3x.html#h3-def_prog_mode_-def_shell_mode
1222*aae38d10SBaptiste Daroussin  14. https://invisible-island.net/ncurses/ncurses-mapsyms.html
1223*aae38d10SBaptiste Daroussin  15. https://invisible-island.net/ncurses/tctest.html#bsd42-numeric-caps
1224*aae38d10SBaptiste Daroussin  16. https://invisible-island.net/ncurses/ncurses-slang.html#cause_numbers
1225*aae38d10SBaptiste Daroussin  17. https://invisible-island.net/ncurses/tack.html#portable
1226*aae38d10SBaptiste Daroussin  18. https://invisible-island.net/ncurses/tack/CHANGES.html#index-t20170726
1227*aae38d10SBaptiste Daroussin  19. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-EXTENSIONS
1228*aae38d10SBaptiste Daroussin  20. https://invisible-island.net/ncurses/man/tset.1.html#h3-reset---reinitialization
1229*aae38d10SBaptiste Daroussin  21. https://invisible-island.net/ncurses/man/tset.1.html
1230*aae38d10SBaptiste Daroussin  22. https://invisible-island.net/ncurses/man/tput.1.html
1231*aae38d10SBaptiste Daroussin  23. https://invisible-island.net/ncurses/man/tset.1.html#h3-reset---reinitialization
1232*aae38d10SBaptiste Daroussin  24. https://invisible-island.net/ncurses/man/clear.1.html
1233*aae38d10SBaptiste Daroussin  25. https://invisible-island.net/ncurses/tctest.html#bsd42-ctl-question
1234*aae38d10SBaptiste Daroussin  26. https://invisible-island.net/ncurses/tctest.html#freebsd-ctl-question
1235*aae38d10SBaptiste Daroussin  27. https://invisible-island.net/ncurses/ncurses-examples.html
1236*aae38d10SBaptiste Daroussin  28. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-alloc_pair
1237*aae38d10SBaptiste Daroussin  29. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-find_pair
1238*aae38d10SBaptiste Daroussin  30. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-free_pair
1239*aae38d10SBaptiste Daroussin  31. https://invisible-island.net/ncurses/ncurses-slang.html#compare_picsmap
1240*aae38d10SBaptiste Daroussin  32. https://invisible-island.net/dialog/
1241*aae38d10SBaptiste Daroussin  33. https://invisible-island.net/dialog/manpage/dialog.html#h3-Common-Options
1242*aae38d10SBaptiste Daroussin  34. https://invisible-island.net/xterm/xterm.log.html#xterm_331
1243*aae38d10SBaptiste Daroussin  35. https://invisible-island.net/ncurses/terminfo.src.html#toc-_A_N_S_I__S_Y_S__I_S_O_6429__E_C_M_A-48__Capabilities
1244*aae38d10SBaptiste Daroussin  36. https://invisible-island.net/ncurses/terminfo.src.html#tic-icl6404
1245*aae38d10SBaptiste Daroussin  37. https://invisible-island.net/ncurses/terminfo.src.html#tic-interix
1246*aae38d10SBaptiste Daroussin  38. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Linux_consoles
1247*aae38d10SBaptiste Daroussin  39. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Open_B_S_D_consoles
1248*aae38d10SBaptiste Daroussin  40. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Tmux
1249*aae38d10SBaptiste Daroussin  41. https://invisible-island.net/ncurses/terminfo.src.html#toc-_D_E_C__V_T100_and_compatibles
1250*aae38d10SBaptiste Daroussin  42. https://invisible-island.net/ncurses/terminfo.src.html#toc-_G_N_O_M_E__V_T_E_
1251*aae38d10SBaptiste Daroussin  43. https://invisible-island.net/ncurses/terminfo.src.html#toc-_X_T_E_R_M
1252*aae38d10SBaptiste Daroussin  44. https://invisible-island.net/xterm/xterm.log.html#xterm_32
1253*aae38d10SBaptiste Daroussin  45. https://invisible-island.net/xterm/xterm.log.html#xterm_272
1254*aae38d10SBaptiste Daroussin  46. https://invisible-island.net/ncurses/NEWS.html
1255*aae38d10SBaptiste Daroussin  47. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
1256*aae38d10SBaptiste Daroussin  48. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
1257*aae38d10SBaptiste Daroussin  49. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
1258*aae38d10SBaptiste Daroussin  50. https://invisible-island.net/ncurses/man/curs_addch.3x.html#h2-PORTABILITY
1259*aae38d10SBaptiste Daroussin  51. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY
1260*aae38d10SBaptiste Daroussin  52. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY
1261*aae38d10SBaptiste Daroussin  53. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-PORTABILITY
1262*aae38d10SBaptiste Daroussin  54. https://invisible-island.net/ncurses/man/curs_mouse.3x.html#h2-PORTABILITY
1263*aae38d10SBaptiste Daroussin  55. https://invisible-island.net/ncurses/man/curs_pad.3x.html#h2-PORTABILITY
1264*aae38d10SBaptiste Daroussin  56. https://invisible-island.net/ncurses/man/curs_slk.3x.html#h2-PORTABILITY
1265*aae38d10SBaptiste Daroussin  57. https://invisible-island.net/ncurses/man/resizeterm.3x.html#h2-PORTABILITY
1266*aae38d10SBaptiste Daroussin  58. https://invisible-island.net/ncurses/man/wresize.3x.html#h2-PORTABILITY
1267*aae38d10SBaptiste Daroussin  59. https://invisible-island.net/ncurses/man/curs_addch.3x.html#h3-ACS-Symbols
1268*aae38d10SBaptiste Daroussin  60. https://invisible-island.net/ncurses/man/curs_add_wch.3x.html
1269*aae38d10SBaptiste Daroussin  61. https://invisible-island.net/ncurses/man/clear.1.html#h2-DESCRIPTION
1270*aae38d10SBaptiste Daroussin  62. https://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-endwin
1271*aae38d10SBaptiste Daroussin  63. https://invisible-island.net/ncurses/man/form_driver.3x.html
1272*aae38d10SBaptiste Daroussin  64. https://invisible-island.net/ncurses/man/curs_get_wstr.3x.html#h2-RETURN-VALUE
1273*aae38d10SBaptiste Daroussin  65. https://invisible-island.net/ncurses/man/curs_getch.3x.html#h3-Predefined-key-codes
1274*aae38d10SBaptiste Daroussin  66. https://invisible-island.net/ncurses/man/curs_getch.3x.html#h3-Keypad-Mode
1275*aae38d10SBaptiste Daroussin  67. https://invisible-island.net/ncurses/man/curs_get_wch.3x.html#h2-DESCRIPTION
1276*aae38d10SBaptiste Daroussin  68. https://invisible-island.net/ncurses/man/infocmp.1m.html
1277*aae38d10SBaptiste Daroussin  69. https://invisible-island.net/ncurses/man/resizeterm.3x.html#h2-NOTES
1278*aae38d10SBaptiste Daroussin  70. https://invisible-island.net/ncurses/man/curs_extend.3x#h2-RETURN-VALUE
1279*aae38d10SBaptiste Daroussin  71. https://invisible-island.net/ncurses/man/curs_variables.3x.html#h2-PORTABILITY
1280*aae38d10SBaptiste Daroussin  72. https://invisible-island.net/ncurses/man/curs_memleaks.3x.html
1281*aae38d10SBaptiste Daroussin  73. https://invisible-island.net/ncurses/man/tic.1m.html
1282*aae38d10SBaptiste Daroussin  74. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Terminfo-Capabilities-Syntax
1283*aae38d10SBaptiste Daroussin  75. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Line-Graphics
1284*aae38d10SBaptiste Daroussin  76. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Color-Handling
1285*aae38d10SBaptiste Daroussin  77. https://invisible-island.net/ncurses/man/tput.1.html#h2-PORTABILITY
1286*aae38d10SBaptiste Daroussin  78. https://invisible-island.net/ncurses/man/tput.1.html#h3-Aliases
1287*aae38d10SBaptiste Daroussin  79. https://invisible-island.net/ncurses/man/tic.1m.html#h2-OPTIONS
1288*aae38d10SBaptiste Daroussin  80. https://invisible-island.net/ncurses/man/infocmp.1m.html#h3-Other-Options
1289*aae38d10SBaptiste Daroussin  81. https://invisible-island.net/ncurses/man/tset.1.html
1290*aae38d10SBaptiste Daroussin  82. https://invisible-island.net/ncurses/man/curs_termcap.3x.html#h3-FORMATTING-CAPABILITIES
1291*aae38d10SBaptiste Daroussin  83. https://invisible-island.net/ncurses/man/user_caps.5.html
1292*aae38d10SBaptiste Daroussin  84. https://invisible-island.net/ncurses/man/scr_dump.5.html
1293*aae38d10SBaptiste Daroussin  85. https://invisible-island.net/ncurses/man/curs_sp_funcs.3x.html
1294*aae38d10SBaptiste Daroussin  86. https://invisible-island.net/ncurses/man/curs_threads.3x.html
1295*aae38d10SBaptiste Daroussin  87. https://invisible-island.net/ncurses/man/curs_attr.3x.html
1296*aae38d10SBaptiste Daroussin  88. file:///ncurses/man/curs_color.3x.html
1297*aae38d10SBaptiste Daroussin  89. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-new-library
1298*aae38d10SBaptiste Daroussin  90. https://invisible-island.net/ncurses/ncurses-slang.html#compare_picsmap
1299*aae38d10SBaptiste Daroussin  91. https://invisible-island.net/ncurses/tack/CHANGES.html#index-t20170726
1300*aae38d10SBaptiste Daroussin  92. https://invisible-island.net/ncurses/NEWS.html#t20111030
1301*aae38d10SBaptiste Daroussin  93. https://invisible-island.net/ncurses/NEWS.html#t20000708
1302*aae38d10SBaptiste Daroussin  94. https://invisible-island.net/ncurses/ncurses-netbsd.html
1303*aae38d10SBaptiste Daroussin  95. https://invisible-island.net/ncurses/man/curs_util.3x.html#h3-use_env
1304*aae38d10SBaptiste Daroussin  96. https://invisible-island.net/ncurses/man/curs_termattrs.3x.html#h3-baudrate
1305*aae38d10SBaptiste Daroussin  97. https://invisible-island.net/mawk/CHANGES.html#t20090727
1306*aae38d10SBaptiste Daroussin  98. https://invisible-island.net/ncurses/man/tic.1m.html
1307*aae38d10SBaptiste Daroussin  99. https://invisible-island.net/ncurses/man/captoinfo.1m.html
1308*aae38d10SBaptiste Daroussin 100. https://invisible-island.net/ncurses/man/tset.1.html
1309*aae38d10SBaptiste Daroussin 101. https://invisible-island.net/ncurses/man/toe.1m.html
1310*aae38d10SBaptiste Daroussin 102. https://invisible-island.net/ncurses/ncurses.faq.html#additional_reading
1311*aae38d10SBaptiste Daroussin 103. https://invisible-island.net/ncurses/ncurses.faq.html
1312*aae38d10SBaptiste Daroussin 104. https://invisible-island.net/ncurses/ncurses-examples.html
1313*aae38d10SBaptiste Daroussin 105. https://wiki.debian.org/Aptitude
1314*aae38d10SBaptiste Daroussin 106. https://invisible-island.net/cdk/
1315*aae38d10SBaptiste Daroussin 107. https://invisible-island.net/ded/
1316*aae38d10SBaptiste Daroussin 108. https://invisible-island.net/dialog/
1317*aae38d10SBaptiste Daroussin 109. https://lynx.invisible-island.net/
1318*aae38d10SBaptiste Daroussin 110. http://www.mutt.org/
1319*aae38d10SBaptiste Daroussin 111. https://www.ncftp.com/
1320*aae38d10SBaptiste Daroussin 112. https://sites.google.com/a/bostic.com/keithbostic/vi
1321*aae38d10SBaptiste Daroussin 113. https://ranger.github.io/
1322*aae38d10SBaptiste Daroussin 114. http://www.tin.org/
1323*aae38d10SBaptiste Daroussin 115. https://vifm.info/
1324*aae38d10SBaptiste Daroussin 116. https://alioth.debian.org/projects/minicom/
1325*aae38d10SBaptiste Daroussin 117. https://mosh.mit.edu/
1326*aae38d10SBaptiste Daroussin 118. https://invisible-island.net/ncurses/tack.html
1327*aae38d10SBaptiste Daroussin 119. https://github.com/tmux/tmux/wiki
1328*aae38d10SBaptiste Daroussin 120. https://invisible-island.net/vile/
1329*aae38d10SBaptiste Daroussin 121. https://www.gnu.org/software/emacs/
1330*aae38d10SBaptiste Daroussin 122. http://www.greenwoodsoftware.com/less/
1331*aae38d10SBaptiste Daroussin 123. https://www.gnu.org/software/screen/
1332*aae38d10SBaptiste Daroussin 124. https://www.vim.org/
1333*aae38d10SBaptiste Daroussin 125. mailto:dickey@invisible-island.net
1334*aae38d10SBaptiste Daroussin 126. https://invisible-island.net/ncurses/ncurses-license.html
1335*aae38d10SBaptiste Daroussin 127. mailto:bug-ncurses@gnu.org
1336*aae38d10SBaptiste Daroussin 128. mailto:bug-ncurses-request@gnu.org
1337*aae38d10SBaptiste Daroussin 129. ftp://ftp.invisible-island.net/ncurses/
1338*aae38d10SBaptiste Daroussin 130. https://invisible-mirror.net/archives/ncurses/
1339*aae38d10SBaptiste Daroussin 131. http://lists.gnu.org/archive/html/bug-ncurses
1340*aae38d10SBaptiste Daroussin 132. https://lists.gnu.org/archive/html/bug-ncurses
1341*aae38d10SBaptiste Daroussin 133. https://invisible-island.net/ncurses/ncurses-license.html
1342*aae38d10SBaptiste Daroussin 134. https://invisible-island.net/ncurses/ncurses-mapsyms.html
1343*aae38d10SBaptiste Daroussin 135. https://invisible-island.net/ncurses/ncurses-slang.html
1344*aae38d10SBaptiste Daroussin 136. https://invisible-island.net/ncurses/tack.html
1345*aae38d10SBaptiste Daroussin 137. https://invisible-island.net/ncurses/tctest.html
1346*aae38d10SBaptiste Daroussin 138. https://invisible-island.net/ncurses/ncurses.html#download_database
1347*aae38d10SBaptiste Daroussin 139. http://www.catb.org/~esr/terminfo/
1348*aae38d10SBaptiste Daroussin 140. http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal
1349*aae38d10SBaptiste Daroussin 141. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-overview
1350*aae38d10SBaptiste Daroussin 142. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-release-notes
1351*aae38d10SBaptiste Daroussin 143. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-library
1352*aae38d10SBaptiste Daroussin 144. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-new-library
1353*aae38d10SBaptiste Daroussin 145. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-fixes-library
1354*aae38d10SBaptiste Daroussin 146. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-programs
1355*aae38d10SBaptiste Daroussin 147. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-utilities
1356*aae38d10SBaptiste Daroussin 148. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-examples
1357*aae38d10SBaptiste Daroussin 149. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-database
1358*aae38d10SBaptiste Daroussin 150. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-documentation
1359*aae38d10SBaptiste Daroussin 151. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-bug-fixes
1360*aae38d10SBaptiste Daroussin 152. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-config-config
1361*aae38d10SBaptiste Daroussin 153. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-config-major
1362*aae38d10SBaptiste Daroussin 154. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-config-options
1363*aae38d10SBaptiste Daroussin 155. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-portability
1364*aae38d10SBaptiste Daroussin 156. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-features
1365*aae38d10SBaptiste Daroussin 157. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-who-uses
1366*aae38d10SBaptiste Daroussin 158. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-development
1367*aae38d10SBaptiste Daroussin 159. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-this-stuff
1368*aae38d10SBaptiste Daroussin 160. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-other-stuff
1369