fff6125de1171b933ba9502e809991dc541a50f8
[ncurses.git] / NEWS
1 This is a log of changes that ncurses has gone through since Zeyd
2 started working with Pavel Curtis' original work, pcurses, in 1992:
3
4 970515  4.1 release for upload to prep.ai.mit.edu
5         + re-tag changes since 970505 as 4.1 release.
6
7 970510
8         + modify ncurses 'g' test to allow mouse input
9         + modify default xterm description to include mouse.
10         + modify configure script to add -Wwrite-strings if gcc warnings are
11           enabled while configuring --enable-const (and fixed related warnings).
12         + add toggle, status display for keypad mode to ncurses 'g' test to
13           verify that keypad and scrollok are not inherited from parent window
14           during a call to newwin.
15         + correction to MKexpanded.sh to make it work when configure --srcdir is
16           used (reported by H.J.Lu).
17         + revise test for bool-type, ensuring that it checks if builtin.h is
18           available before including it, adding test for sizeof(bool) equal
19           to sizeof(short), and warning user if the size cannot be determined
20           (reported by Alexander V. Lukyanov).
21         + add files to support configuration of ncurses as an add-on library
22           for GNU libc (patch by H.J.Lu <hjl@lucon.org>)
23
24 970506
25         + correct buffer overrun in lib_traceatr.c
26         + modify change to lib_vidattr.c to avoid redundant orig_pair.
27         + turn on 'echo()' in hanoi.c, since it is initially off.
28         + rename local 'errno' variable in etip.h to avoid conflict with global
29           (H.J.Lu).
30         + modify configure script to cache LD, AR, AR_OPTS (patch by H.J.Lu
31           <hjl@lucon.org>)
32
33 970505  4.1 pre-release
34         + regenerate the misc directory html dumps without the link list, which
35           is not useful.
36         + correct dependency in form directory makefile which caused unnecessary
37           recompiles.
38         + correct substitution for ABI_VERSION in test-makefile
39         + modify install rules for shared-library targets to remove the target
40           before installing, since some install programs do not properly handle
41           overwrite of symbolic links.
42         + change order of top-level targets so that 'include' immediate
43           precedes the 'ncurses' directory, reducing the time between new
44           headers and new libraries (requested by Larry Virden).
45         + modify lib_vidattr.c so that colors are turned off only before
46           modifying other attributes, turned on after others.  This makes the
47           hanoi.c program display correctly on FreeBSD console.
48         + modify debug code in panel library to print user-data addresses
49           rather than the strings which they (may) point to.
50         + add check to ensure that C++ binding and demo are not built with g++
51           versions below 2.7, since the binding uses templates.
52         + modify c++ binding and demo to build and run with SGI's c++ compiler. 
53           (It also compiles with the Sun SparcWorks compiler, but the demo does
54           not link, due to a vtbl problem).
55         + corrections to demo.cc, to fix out-of-scope variables (Juergen
56           Pfeifer).
57
58 970503
59         + correct memory leak in _nc_trace_buf().
60         + add configure test for regexpr.h, for Unixware 1.x.
61         + correct missing "./" prefixing names of generated files in ncurses
62           directory.
63         + use single-quotes in configure scripts assignments for MK_SHARED_LIB
64           to workaround shell bug on FreeBSD 2.1.5
65         + remove tabs from intermediate #define's for GCC_PRINTF, GCC_SCANF
66           that caused incorrect result in ncurses_cfg.h
67         + correct initialization in lib_trace.c, which omitted version info.
68         + remove ech, el1 attributes from cons25w description; they appear to
69           malfunction in FreeBSD 2.1.5
70         + correct color attributes in terminfo.src and lib_color.c to match
71           SVr4 behavior by interchanging codes 1,4, 3,6 in the setf/setb
72           capabilities.
73         + use curs_set() rather than checks via tigetstr() for test programs
74           that hide the cursor: firework, rain, worm.
75         + ensure that if the terminal lacks change_scroll_region, parm_index
76           and parm_rindex are used only to scroll the whole screen (patch by
77           Peter Wemm).
78         + correct curs_set() logic, which did not return ERR if the requested
79           attributes did not exist, nor did it assume an unknown initial state
80           for the cursor (patch by Alexander V. Lukyanov).
81         + combine IDcTransformLine and NoIDcTransformLine to new TransformLine
82           function in lib_doupdate.c (patch by Alexander V. Lukyanov).
83         + correct hashmap.c, which did not update index information (patch by
84           Alexander V. Lukyanov).
85         + patch by Juergen Pfeifer for C++ binding and demo (see c++/NEWS)
86         + correct index in lib_instr.c (Juergen Pfeifer).
87         + correct typo in 970426 patch from Tom's cleanup of lib_overlay.c
88           (Juergen Pfeifer).
89
90 970426
91         + corrected cost computation in PutRange(), which was using
92           milliseconds compared to characters by adding two new members to the
93           SCREEN struct, _hpa_ch_cost and _cup_ch_cost.
94         + drop ncurses/lib_unctrl.c, add ncurses/MKunctrl.awk to generate a
95           const array of strings (suggested by Alexander V. Lukyanov, though
96           with a perl script 970118).
97         + rewrote ncurses 'b' test to better exercise magic-cookie (xmc), as
98           well as noting the attributes that are not supported by a terminal.
99         + trace the computation of cost values in lib_mvcur.c
100         + modify _nc_visbuf() to use octal rather than hex, corrected sign
101           extension bug in that function that caused buffer overflow.
102         + modify trace in lib_acs.c to use _nc_visbuf().
103         + suppress trace within _traceattr2().
104         + correct logic of _tracechtype2(), which did not account for repeats
105           or redefinition within an acsc string.
106         + modify debug-library version baudrate() to use environment variable
107           $BAUDRATE to override speed computation.  This is needed for
108           regression testing.
109         + correct problems shown by "weblint -pedantic".
110         + update mailing-list information (now ncurses@bsdi.com).
111
112 970419
113         + Improve form_field_validation.3x manpage to better describe the
114           precision parameter for TYPE_NUMERIC and TYPE_INTEGER.  Provide more
115           precise information how the range checking can be avoided.  (patch by
116           Juergen Pfeifer, reported by Bryan Henderson)
117         + change type of min/max value of form types TYPE_INTEGER to long to
118           match SVr4 documentation.
119         + set the form window to stdscr in set_form_win() so that form_win()
120           won't return null (patch by Juergen Pfeifer, reported by Bryan
121           Henderson <bryanh@giraffe.netgate.net>).
122
123 970412
124         + corrected ifdef'ing of inline (from 970321) for TRACE vs C++.
125         + corrected toggle_attr_off() macro (patch by Andries.Brouwer).
126         + modify treatment of empty token in $MANPATH to /usr/man (reported by
127           <Andries.Brouwer@cwi.nl>)
128         + modify traces that record functions-called so that chtype and attr_t
129           values are expressed symbolically, to simplify reuse of generated
130           test-scripts on SVr4 regression testing.
131         + add new trace functions _traceattr2() and _tracechtype2()
132
133 970405
134         + add configure option --enable-const, to support the use of 'const'
135           where XSI should have, but did not, specify.  This defines
136           NCURSES_CONST, which is an empty token otherwise, for strict
137           compatibility.
138         + make processing of configure options more verbose by echoing the
139           --enable/--with values.
140         + add configure option --enable-big-core
141         + set initial state of software echo off as per XSI.
142         + check for C++ builtin.h header
143         + correct computation of absolute-path for $INSTALL that dropped "-c"
144           parameter from the expression.
145         + rename config.h to ncurses_cfg.h to avoid naming-conflict when ncurses
146           is integrated into larger systems (from diffs by H.J.Lu for libc).
147         + correct inequality in lib_doupdate.c that caused a single-char to not
148           be updated when the char on the right-margin was not blank, idcok()
149           was true (patch by Alexander V.  Lukyanov 970124, also reported by
150           Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 970329).
151         + modify 'clean' rule in include/Makefile so that files created by
152           configure script are removed in 'distclean' rule instead.
153
154 970328
155         + correct array limit in tparam_internal(), add case to interpret "%x"
156           (patch by Andreas Schwab)
157         + rewrote number-parsing in ncurses.c 'd' test; it did not reset the
158           value properly when non-numeric characters were given (reported by
159           Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>)
160
161 970321
162         + move definition of __INTERNAL_CAPS_VISIBLE before include for
163           progs.priv.h (patch by David MacKenzie).
164         + add configuration summary, reordered check for default include
165           directory to better accommodate a case where installer is configuring
166           a second copy of ncurses (reported by Klaus Weide
167           <kweide@tezcat.com>)
168         + moved the #define for 'inline' as an empty token from the
169           $(CFLAGS_DEBUG) symbol into config.h, to avoid redefinition warning
170           (reported by Ward Horner).
171         + modify test for bool builtin type to use 'unsigned' rather than
172           'unknown' when cross-compiling (reported by Ward Horner).
173
174 970315
175         + add header dependencies so that "make install.libs" will succeed
176           even if "make all" is not done first.
177         + moved some macros from lib_doupdate.c to curses.priv.h to use in
178           expanded functions with ATAC. 
179         + correct implementation of lib_instr.c; both XSI and SVr4 agree that
180           the winnstr functions can return more characters than will fit on one
181           line.
182
183 970308
184         + modify script that generates lib_gen.c to support traces of called &
185           return.
186         + add new configure option "--disable-macros", for testing calls within
187           lib_gen.c
188         + corrected logic that screens level-checking of called/return traces.
189
190 970301
191         + use new configure macro NC_SUBST to replace AC_PATH_PROG, better
192           addressing request by Ward Horner.
193         + check for cross-compiling before trying to invoke the autoconf
194           AC_FUNC_SETVBUF_REVERSED macro (reported by Ward Horner)
195         + correct/simplify loop in _nc_visbuf(), 970201 changes omitted
196           a pointer-increment.
197         + eliminate obsolete symbol SHARED_ABI from dist.mk (noted by
198           Florian La Roche).
199
200 970215
201         + add configure option --enable-expanded, together with code that
202           implements an expanded form of certain complex macros, for testing
203           with ATAC.
204         + disable CHECK_POSITION unless --with-assertions is configured
205           (Alexander Lukyanov pointed out that this is redundant).
206         + use keyname() to show traced chtype values where applicable rather
207           than _tracechar(), which truncates the value to 8-bits.
208         + minor fixes to TRACE_ICALLS, added T_CREATE, TRACE_CCALLS macros.
209         + modify makefiles in progs and test directories to avoid using C
210           preprocessor options on link commands (reported by Ward Horner)
211         + correct ifdef/include-order for nc_alloc.h vs lib_freeall.c (reported
212           by Ward Horner)
213         + modify ifdef's to use configure-defined symbols consistently
214           (reported by Ward Horner)
215         + add/use new makefile symbols AR, AR_OPTS and LD to assist in non-UNIX
216           ports (reported by Ward Horner <whorner@tsi-telsys.com>)
217         + rename struct try to struct tries, to avoid name conflict with C++
218           (reported by Gary Johnson).
219         + modify worm.c to hide cursor while running.
220         + add -Wcast-qual to gcc warnings, fix accordingly.
221         + use PutChar rather than PutAttrChar in ClrToEOL to properly handle
222           wrapping (Alexander Lukyanov).
223         + correct spurious echoing of input in hanoi.c from eric's #291 & #292
224           patches (reported by Vernon C. Hoxie <vern@zebra.alphacdc.com>).
225         + extend IRIX configuration to IRIX64
226         + supply missing install.libs rule needed after restructuring
227           test/Makefile.in
228
229 970208
230         + modify "make mostlyclean" to leave automatically-generated source
231           in the ncurses directory, for use in cross-compiles.
232         + autogenerated object-dependencies for test directory
233         + add configure option --with-rcs-ids
234         + modify configuration scripts to generate major/minor/patch versions
235           (suggested by Alexander Lukyanov).
236         + supply missing va_end's in lib_scanw.c
237         + use stream I/O for trace-output, to eliminate fixed-size buffer
238         + add TRACE_ICALLS definition/support to lib_trace.c
239         + modify Ada95 binding to work with GNAT 3.09 (Juergen Pfeifer).
240
241 970201
242         + add/modify traces for called/return values to simplify extraction
243           for test scripts.
244         + changed _nc_visbuf to quote its result, and to dynamically allocate
245           the returned buffer.
246         + invoke ldconfig after installing shared library
247         + modify install so that overwrite applies to shared library -lcurses
248           in preference to static library (reported by Zeyd 960928).
249         + correct missing ';' in 961221 mod to overwrite option use of $(LN_S).
250         + fixes to allow "make install" to work without first doing a "make
251           all" (suggested by Larry Virden).
252
253 970125
254         + correct order of #ifdef for TABS_OK.
255         + instrumented toe.c to test memory-leaks.
256         + correct memory-deallocation in toe.c (patch by Jesse Thilo).
257         + include <sys/types.h> in configuration test for regex.h (patch by
258           Andreas Schwab)
259         + make infocmp recognize -I option, for SVr4 compatibility (reported by
260           Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>)
261
262 970118
263         + add extension 'use_default_colors()', modified test applications that
264           use default background (firework, gdc, hanoi, knight, worm) to
265           demonstrate.
266         + correct some limit checks in lib_doupdate.c exposed while running
267           worm.
268         + use typeCalloc macro for readability.
269         + add/use definition for CONST to accommodate testing with Solaris
270           (SVr4) curses, which doesn't use 'const' in its prototypes.
271         + modify ifdef's in test/hashtest.c and test/view.c to compile with
272           Solaris curses.
273         + modify _tracedump() to pad pad colors & attrs lines to match change
274           in 970101 showing first/last changes.
275         + corrected location of terminating null on dynamically allocated forms
276           fields (patch by Per Foreby).
277
278 970111
279         + added headers to make view.c compile on SCO with the resizeterm()
280           code (i.e., struct winsize) - though this compiles, I don't have a
281           suitable test configuration since SIGWINCH doesn't pass my network to
282           that machine - T.Dickey.
283         + update test/configure.in to supply some default substitutions.
284         + modify configure script to add -lncurses after -lgpm to fix problem
285           linking against static libraries.
286         + add a missing noraw() to test/ncurses.c (places noted by Jeremy
287           Buhler)
288         + add a missing wclear() to test/testcurs.c (patch by Jeremy Buhler
289           <jbuhler@cs.washington.edu>)
290         + modify headers to accommodate compilers that don't allow duplicate
291           "#define" lines for NCURSES_VERSION (reported by Larry W. Virden
292           <lvirden@cas.org>)
293         + fix formatting glitch in curs_getch.3x (patch by Jesse Thilo).
294         + modify lib_doupdate to make el, el1 and ed optimization use the
295           can_clear_with macro, and change EmitRange to allow leaving cursor at
296           the middle of interval, rather than always at the end (patch by
297           Alexander Lukyanov originally 960929, resync 970106).
298
299 970104
300         + workaround defect in autoconf 2.12 (which terminates configuration
301           if no C++ compiler is found) by adding an option --without-cxx.
302         + modify several man-pages to use tbl, where .nf/.fi was used (reported
303           by Jesse Thilo).
304         + correct font-codes in some man-pages (patch by Jesse Thilo
305           <Jesse.Thilo@pobox.com>)
306         + use configure script's knowledge of existence of g++ library for the
307           c++ Makefile (reported by Paul Jackson).
308         + correct misleading description of --datadir configuration option
309           (reported by Paul Jackson <pj@sam.engr.sgi.com>)
310
311 970101
312         + several corrections to _nc_mvcur_scrolln(), prompted by a bug report
313           from Peter Wemm:
314         > the logic for non_dest_scroll_region was interchanged between the
315           forward & reverse scrolling cases.
316         > multiple returns from the function allowed certain conditions to do
317           part of an operation before discovering that it couldn't be
318           completed, returning an error without restoring the cursor.
319         > some returns were ERR, where the function had completed the
320           operation, because the insert/delete line logic was improperly
321           tested (this was probably the case Peter saw).
322         > contrary to comments, some scrolling cases were tested after the
323           insert/delete line method.
324         + modify _tracedump() to show first/last changes.
325         + modify param of ClrUpdate() in lib_doupdate.c to 'curscr', fixes
326           refresh problem (reported by Peter Wemm) that caused nvi to not show
327           result of ":r !ls" until a ^L was typed.
328
329 961229  (internal alpha)
330         + correct some of the writable-strings warnings (reported by Gary
331           Johnson <gjohnson@season.com>).  Note that most of the remaining ones
332           are part of the XSI specification, and can't be "fixed".
333         + improve include-dependencies in form, menu, panel directories.
334         + correct logic of delay_output(), which would return early if
335           there is data on stdin.
336         + modify interface & logic of _nc_timed_wait() to support 2 file
337           descriptors, needed for GPM.
338         + integrate patch by Andrew Kuchling <amk@magnet.com> for GPM (mouse)
339           support, correcting logic in wgetch() and _nc_mouse_parse() which
340           prevented patch from working properly.
341         + improve performance of panel algorithm (Juergen Pfeifer 961203).
342         + strip RCS id's from generated .html files in Ada95 subtree.
343         + resync with generated .html files (Juergen Pfeifer 961223).
344         + terminfo.src 10.1.0 from Eric.
345
346 961224  4.0 release
347         + release as 4.0 to accommodate Linux ld.so.1.8.5
348         + correct syntax/spelling, regenerated .doc files from .html using
349           lynx 2.5
350         + refined forms/menus makefiles (Juergen Pfeifer 961223).
351
352 961221  - snapshot
353         + remove logic in read_entry.c that attempts to refine errno by using
354           'access()' for the directory (from patch by Florian La Roche).
355         + correct configure test/substitution that inhibits generating
356           include-path to /usr/include if gcc is used (reported by Florian La
357           Roche).
358         + modify setupterm() to allocate new TERMINAL for each call, just as
359           solaris' curses does (Alexander Lukyanov 960829).
360         + corrected memory leaks in read_entry.c
361         + add configure options --with-dbmalloc, --with-dmalloc, and
362           --disable-leaks, tested by instrumenting infocmp, ncurses programs.
363         + move #include's for stdlib.h and string.h to *.priv.h to accommodate
364           use of dbmalloc.
365         + modify use of $(LN_S) to follow recommendation in autoconf 2.12,
366           i.e., set current directory before linking.
367         + split-out panel.priv.h, improve dependencies for forms, menus
368           (Juergen Pfeifer 961204).
369         + modify _nc_freewin() to reset globals curscr/newscr/stdscr when
370           freeing the corresponding WINDOW (Purify).
371         + modify delwin() to return ERR if the window to be deleted has
372           subwindows, needed as a side-effect of resizeterm() (Purify).  Tested
373           and found that SVr4 curses behaves this way.
374         + implement logic for _nc_freeall(), bringing stub up to date.
375
376 961215
377         + modify wbkgd() so that it doesn't set nulls in the rendered text,
378           even if its argument doesn't specify a character (fixes test case by
379           Juergen Pfeifer for bug-report).
380         + set window-attributes in wbkgd(), to simplify comparison against
381           Solaris curses, which does this.
382
383 961214  - snapshot
384         + replace most constants in ncurses 'o' test by expressions, making it
385           work with wider range of screen sizes.
386         + add options to ncurses.c to specify 'e' test softkey format, and the
387           number of header/footer lines to rip-off.
388         + add ^R (repaint after resize), ^L (refresh) commands to ncurses 'p'
389           test.
390         + add shell-out (!) command to ncurses 'p' test to allow test of
391           resize between endwin/refresh.
392         + correct line-wrap case in mvcur() by emitting carriage return,
393           overlooked in 960928, but needed due to SVr4 compatibility changes to
394           terminal modes in 960907.
395         + correct logic in wresize that causes new lines to be allocated,
396           broken for the special case of increasing rows only in 960907's fix
397           for subwindows.
398         + modify configure script to generate $(LDFLAGS) with -L and -l options
399           in preference to explicit library filenames.  (NOTE: this may
400           require further amending, since I vaguely recall a dynamic loader
401           that did not work properly without the full names, but it should be
402           handled as an exception to the rule, since some linkers do bulk
403           inclusion of libraries when given the full name - T.Dickey).
404         + modify configure script to allow user-supplied $CFLAGS to set the
405           debug-option in all libraries (requested by lots of people).
406         + use return consistently from main(), rather than exit (reported by
407           Florian La Roche).
408         + add --enable-getcap-cache option to configure, normally disabled
409           (requested by Florian La Roche).
410         + make configure test for gettimeofday() and possibly -lbsd more
411           efficient (requested by Florian La Roche florian@knorke.saar.de)
412         + minor adjustments to Ada95 binding (patches by Juergen Pfeifer)
413         + correct attributes after emitting orig_pair in lib_vidattr.c (patch
414           by lav@yars.free.net).
415
416 961208
417         + corrected README wrt Ada95 (Juergen Pfeifer)
418
419 961207  - snapshot
420         + integrate resizeterm() into doupdate(), so that if screen size
421           changes between endwin/refresh, ncurses will resize windows to fit
422           (this needs additional testing with pads and softkeys).
423         + add, for memory-leak testing, _nc_freeall() entrypoint to free all
424           data used in ncurses library.
425         + initialize _nc_idcok, _nc_idlok statically to resolve discrepancy
426           between initscr() and newwin() initialization (reported by
427           lav@yars.free.net).
428         + test built VERSION=4.0, SHARED_ABI=4 with Linux ld.so.1.8.5
429           (set beta versions to those values -- NOTE that subsequent pre-4.0
430           beta may not be interchangeable).
431         + modify configure script to work with autoconf 2.12
432
433 961130  1.9.9g release
434         + add copyright notices to configuration scripts (written by Thomas
435           Dickey).
436
437 961127
438         > patch by Juergen Pfeifer (mostly for panel):
439         + cosmetic improvement for a few routines in the ncurses core library
440           to avoid warning messages.
441         + the panel overlap detection was broken
442         + the panel_window() function was not fool-proof.
443         + Some inlining...
444         + Cosmetic changes (also to avoid warning messages when compiling with
445           -DTRACE).
446
447 961126
448         > patch by Juergen Pfeifer:
449         + eliminates warning messages for the compile of libform.
450         + inserts Per Foreby's new field type TYPE_IPV4 into libform.
451         + Updates man page and the Ada95 binding to reflect this.
452         + Improves inlining in libmenu and libform.
453
454 961120
455         + improve the use of the "const" qualifier in the
456           panel library (Juergen Pfeifer)
457         + change set_panel_userptr() and panel_userptr() to use void*
458           (Juergen Pfeifer)
459
460 961119
461         + change ABI to 3.4
462         + package with 961119 version of Ada95 binding (fixes for gnat-3.07).
463           (Juergen Pfeifer)
464         + correct initialization of the stdscr pseudo panel in panel library
465           (Juergen Pfeifer)
466         + use MODULE_ID (rcs keywords) in forms and menus libraries (Juergen
467           Pfeifer).
468         > patch #324 by Eric.
469         + typo in curs_termcap man page (reported by Hendrik Reichel
470           <106065.2344@compuserve.com>)
471         + change default xterm entry to xterm-r6.
472         + add entry for color_xterm
473
474 961116  - snapshot
475         + lint found several functions that had only #define implementations
476           (e.g., attr_off), modified curses.h.in to generate them as per XSI
477           Curses requirement that every macro be available as a function.
478         + add check in infocmp.c to guard against string compare of
479           CANCELLED_STRING values.
480         + modify firework.c, rain.c to hide cursor while running.
481         + correct missing va_end in lib_tparm.c
482         + modify hanoi.c to work on non-color terminals, and to use timing
483           delays when in autoplay mode.
484         + correct 'echochar()' to refresh immediately (reported by Adrian
485           Garside 94ajg2@eng.cam.ac.uk)
486         > patch #322 by eric:
487         + reorganize terminfo.src entries for xterm.
488
489 961109  - snapshot
490         + corrected error in line-breakout logic (lib_doupdate.c)
491         + modified newdemo to use wgetch(win) rather than getch() to eliminate
492           a spurious clear-screen.
493         + corrected ifdef's for 'poll()' configuration.
494         + added modules to ncurses, form, menu for Ada95 binding (Juergen
495           Pfeifer).
496         + modify set_field_buffer() to allow assignment of string longer than
497           the initial buffer length, and to return the complete string rather
498           than only the initial size (Juergen Pfeifer and Per Foreby
499           <perf@efd.lth.se>).
500
501 961102  - snapshot
502         + configure for 'poll()' in preference to 'select()', since older
503           systems are more likely to have a broken 'select()'.
504         + modified render_char() to avoid OR'ing colors.
505         + minor fixes to testcurs.c, newdemo.c test programs: ifdef'd out the
506           resize test, use wbkgd and corrected box() parameters.
507         + make flushinp() test work in ncurses.c by using napms() instead of
508           sleep().
509         + undo Eric's changes to xterm-x11r6 (it no longer matched the X11R6.1
510           distribution, as stated)
511         + terminfo 9.13.18 (resync by Eric)
512         + check for getenv("HOME") returning null (Eric).
513         + change buffer used to decode xterm-mouse commands to unsigned to
514           handle displays wider than 128 chars (Juergen Pfeifer).
515         + correct typo curs_outopts.3x (Juergen Pfeifer).
516         + correct limit-checking in wenclose() (Juergen Pfeifer).
517         + correction to Peter Wemm's newwin change (Thomas Fehr <fehr@suse.de>).
518         + corrections to logic that combines colors and attributes; they must
519           not be OR'd (Juergen Pfeifer, extending from report/patch by Rick
520           Marshall).
521
522 961026  - snapshot
523         + reset flags in 'getwin()' that might cause refresh to attempt to
524           manipulate the non-existent parent of a window that is read from a
525           file (lib_screen.c).
526         + restructure _nc_timed_wait() to log more information, and to try to
527           recover from badly-behaved 'select()' calls (still testing this).
528         + move define for GOOD_SELECT into configure script.
529         + corrected extra '\' character inserted before ',' in comp_scan.c
530         + corrected expansion of %-format characters in dump_entry.c; some were
531           rendered as octal constants.
532         + modify dump_entry.c to make terminfo output more readable and like
533           SVr4, by using "\s" for spaces (leading/trailing only), "\," for
534           comma, "\^" and "\:" as well.
535         + corrected some memory leaks in ncurses.c, and a minor logic error
536           in the top-level command-parser.
537         + correction for label format 4 (PC style with info line), a
538           slk_clear(), slk_restore() sequence didn't redraw the info line
539           (Juergen Pfeifer).
540         + modified the slk window (if simulated) to inherit the background and
541           default character attributes from stdscr (Juergen Pfeifer).
542         + corrected limit-check in set_top_row (Juergen Pfeifer).
543
544 961019  - snapshot
545         + correct loop-limit in wnoutrefresh(), bug exposed during pipe-testing
546           had '.lastchar' entry one beyond '._maxx'.
547         + modify ncurses test-program to work with data piped to it.
548         + corrected pathname computation in run_tic.sh, removing extra "../"
549           (reported by Tim Mooney).
550         + modified configure script to use previous install's location for
551           curses.h
552         + added NetBSD and FreeBSD to platforms that use --prefix=/usr as
553           a default.
554
555 961013
556         + revised xterm terminfo descriptions to reflect the several versions
557           that are available.
558         + corrected a pointer reference in dump_entry.c that didn't test if
559           the pointer was -1.
560
561 961005  - snapshot
562         + correct _nc_mvcur_scrolln for terminals w/o scrolling region.
563         + add -x option to hashtest to control whether it allows writes to the
564           lower-right corner.
565         + ifdef'd (NCURSES_TEST) the logic for _nc_optimize_enable to make it
566           simpler to construct tests (for double-check of _nc_hash_map tests).
567         + correct ifdef's for c++ in curses.h
568         + change default xterm type to xterm-x11r6.
569         + correct quoting in configure that made man-pages installed with
570           $datadir instead of actual terminfo path.
571         + correct whitespace in include/Caps, which caused kf11, clr_eol and
572           clr_end to be omitted from terminfo.5
573         + fix memory leaks in delscreen() (adapted from Alexander Lukyanov).
574         + improve appearance of marker in multi-selection menu (Juergen
575           Pfeifer)
576         + fix behaviour for forms with all fields inactive (Juergen
577           Pfeifer)
578         + document 'field_index()' (Juergen Pfeifer)
579         > patch #321 by eric:
580         + add some more XENIX keycap translations to include/Caps.
581         + modify newwin to set initial state of each line to 'touched'
582           (from patch by Peter Wemm <peter@spinner.dialix.com>)
583         + in SET_TTY, replace TCSANOW with TCSADRAIN (Alexander Lukyanov).
584
585 960928  - snapshot
586         + ifdef'd out _nc_hash_map (still slower)
587         + add graphic characters to vt52 description.
588         + use PutAttrChar in ClrToEOL to ensure proper background, position.
589         + simplify/correct logic in 'mvcur()' that does wrapping; it was
590           updating the position w/o actually moving the cursor, which broke
591           relative moves.
592         + ensure that 'doupdate()' sets the .oldindex values back to a sane
593           state; this was causing a spurious refresh in ncurses 'r'.
594         + add logic to configure (from vile) to guard against builders who
595           don't remove config.cache & config.status when doing new builds.
596         + corrected logic for 'repeat_char' in EmitRange (from #317), which
597           did not follow the 2-parameter scheme specified in XSI.
598         + corrected logic of wrefresh, wnoutrefresh broken in #319, making
599           clearok work properly (from report by Michael Elkins).
600         + corrected problem with endwin introduced by #314 (removing the
601           scrolling-region reset) that broke ncurses.c tests.
602         + corrected order of args in AC_CHECK_LIB (from report by Ami Fischman
603           <fischman@math.ucla.edu>).
604         + corrected formatting of terminfo.5 tables (Juergen Ehling)
605         > patch 320 by eric:
606         + change ABI to 3.3
607         + emit a carriage-return in 'endwin()' to workaround a kernel bug in
608           BSDI.  (requested by Mike Karels <karels@redrock.bsdi.com>)
609         + reverse the default o configure --enable-termcap (consensus).
610         > patch 319 by eric:
611         + modified logic for clearok and related functions (from report by
612           Michael Elkins) - untested
613         > patch 318 by eric:
614         + correction to #317.
615         > patch 317 by eric:
616         + re-add _nc_hash_map
617         + modify EmitRange to maintain position as per original design.
618         + add hashtest.c, program to time the hashmap optimization.
619         > patch 316 by eric:
620         + add logic to deal with magic-cookie (how was this tested?)
621           (lib_doupdate.c).
622         + add ncurses.c driver for magic-cookie, some fixes to ncurses.c
623         > patch 315 by eric:
624         + merged A. Lukyanov's patch to use ech and rep - untested
625           (lib_doupdate.c).
626         + modified handling of interrupted system calls - untested
627           (lib_getch.c, lib_twait.c).
628         + new function _nc_mvcur_resume()
629         + fix return value for 'overlay()', 'overwrite()'
630
631 960914  - snapshot
632         + implement subwindow-logic in wresize, minor fixes to ncurses 'g'
633           test.
634         + corrected bracketing of fallback.c (reported/suggested fix by Juergen
635           Ehling <eh@eclipse.aball.de>).
636         + update xterm-color to reflect XFree86 3.1.3G release.
637         + correct broken dtterm description from #314 patch (e.g., spurious
638           newline.  The 'pairs' change might work, but no one's tested it
639           either ;-)
640         + clarify the documentation for the builtin form fieldtypes (Juergen
641           Pfeifer)
642         > patch 314 by eric:
643         + Enhancement suggested by A. Lukyanov -- reset scroll region on
644           startup rather than at wrapup time.
645         + Fix suggested by A. Lukyanov, make storage of palette tables
646           and their size counts per-screen for multi-terminal applications.
647         + Improved error reporting for infotocap translation errors.
648         + Update terminfo.src to 9.13.14.
649
650 960907  - snapshot
651         + rewrote wgetstr to make it erase control chars and also fix bogus use
652           of _nc_outstr which caused the display to not wrap properly (display
653           problem reported by John M. Flinchbaugh <glynis@netrax.net>)
654         + modify ncurses 'f' test to accommodate terminal responses to C1 codes
655           (and split up this screen to accommodate non-ANSI terminals).
656         + test enter_insert_mode and exit_insert_mode in has_ic().
657         + removed bogus logic in mvcur that assumes nl/nonl set output modes
658           (XSI says they are input modes; SVr4 implements this).
659         + added macros SET_TTY, GET_TTY to term.h
660         + correct getstr() logic that altered terminal modes w/o restoring.
661         + disable ICRNL, etc., during initialization to match SVr4, removing
662           the corresponding logic from raw, cbreak, etc.
663         + disable ONLCR during initialization, to match SVr4 (this is needed
664           for cursor optimization when the cursor-down is a newline).
665         + replaced Eric's imitation of wresize with my original (his didn't
666           work).
667
668 960831  - snapshot
669         + memory leaks (Alexander V. Lukyanov).
670         + modified pnoutrefresh() to be more tolerant of too-large screen
671           size (reported by Michael Elkins).
672         + correct handling of terminfo files with no strings (Philippe De
673           Muyter)
674         + correct "tic -s" to take into account -I, -C options.
675         + modify ncurses 'f' test to not print codes 80 through 9F, since they
676           are considered control codes by ANSI terminals.
677
678 960824  - snapshot
679         + correct speed variable-type in 'tgetent()' (reported by Peter Wemm)
680         + make "--enable-getcap" configuration-option work (reported by
681           Peter Wemm <peter@spinner.DIALix.COM>)
682
683 960820
684         + correct err in 960817 that changed return-value of tigetflag()
685           (reported by Alexander V. Lukyanov).
686         + modify infocmp to use library default search-path for terminfo
687           directory (Alexander V. Lukyanov).
688
689 960817  - snapshot
690         + corrected an err in mvcur that broke resizing-behavior.
691         + correct fall-thru behavior of _nc_read_entry(), which was not finding
692           descriptions that existed in directories past the first one searched
693           (reported by Alexander V. Lukyanov)
694         + corrected typo in dtterm description.
695         > patch 313 by eric:
696         + add dtterm description
697         + clarify ncurses 'i' test (drop vscanf subtest)
698
699 960810  - snapshot
700         + correct nl()/nonl() to work as per SVr4 & XSI.
701         + minor fixes to ncurses.c (use 'noraw()', mvscanw return-code)
702         + refine configure-test for -g option (Tim Mooney).
703         + correct interaction between O_BLANK and NEW_LINE request in form
704           library (Juergen Pfeifer)
705
706 960804
707         + revised fix to tparm; previous fix reversed parameter order.
708         > patch 312 by eric:
709           correct terminfo.src corrupted by #310
710         > patch 311 by eric:
711         + fix idlok() and idcok() and the default of the idlok switch.
712
713 960803  - snapshot
714         + corrected tparm to handle capability strings without explicit pop
715           (reported by William P Setzer)
716         + add fallback def for GCC_NORETURN, GCC_UNUSED for termcap users
717           (reported by Tim Mooney).
718         > patch 310 by eric:
719         + documentation and prototyping errors for has_color, immedok and idcok
720           (reported by William P Setzer <wsetzer@pams.ncsu.edu>)
721         + updated qnx terminfo entry (by Michael Hunter)
722
723 960730
724         + eliminate quoted includes in ncurses subdirectory, ensure config.h
725           is included first.
726         + newterm initializes terminal settings the same as initscr (reported
727           by Tim Mooney).
728
729 960727  - snapshot
730         + call cbreak() in initscr(), as per XSI & SVr4.
731         + turn off hardware echo in initscr() as per XSI & SVr4
732         > patch 309 by eric:
733         + terminfo changes (9.3.10), from BRL
734         + add more checks to terminfo parser.
735         + add more symbols to infocmp.
736
737 960720  - snapshot
738         + save previous-attribute in lib_vidattr.c if SP is null (reported by
739           Ju"rgen Fluk <louis@dachau.marco.de>)
740         + corrected calls on _nc_render so that background character is set
741           as per XSI.
742         + corrected wbkgdset macro (XSI allows background character to be null),
743           and tests that use it.
744         + more corrections to terminfo (xterm & rxvt)
745         + undid change to mcprint prototype (cannot use size_t in curses.h
746           because not all systems declare it in the headers that we can safely
747           include therein).
748         + move the ifdefs for errno into curses.priv.h
749         > patch 308 by eric:
750         + terminfo changes (9.3.8)
751         + modified logic of error-reporting in terminfo parser
752
753 960713  - snapshot
754         + always check for <sys/bsdtypes.h> since ISC needs it to declare
755           fd_set (Juergen Pfeifer)
756         + install shared-libraries on NetBSD/FreeBSD with ABI-version (reported
757           by several people:  Juergen Pfeifer, Mike Long)
758         + add LOCAL_LDFLAGS2 symbol (Juergen Pfeifer)
759         + corrected prototype for delay_output() -- bump ABI to 3.2
760         + terminfo patches #306/307 from Eric.
761         + moved logic that filters out rmul and rmso from setupterm to newterm
762           where it is less likely to interfere with termcap applications.
763
764 960707
765         + rollback Eric's #305 change to terminfo.src (it breaks existing
766           applications, e.g., 'less 290').
767         + correct path of edit_man.sh, and fix typo that made all man-pages
768           preformatted.
769         + restore man/menu_requestname.3x omitted in Zeyd's resync (oops).
770         + auto-configure the GCC_PRINTFLIKE/GCC_SCANFLIKE macros (reported by
771           Philippe De Muyter).
772
773 960706  - snapshot
774         + make lib_vidattr.c more readable using macros.
775         + filter out rmul, rmso that conflict with sgr0 when reading terminal
776           descriptions.
777         + added sanity-checking of various paired string attributes (Eric).
778         + work around autoconf bug, force $INSTALL to absolute path.
779           (reported by Zeyd).
780         + modify man-page install for BSDI to install preformatted .0 files
781           (reported by David MacKenzie).
782         + add/use gcc __attribute__ for printf and scanf in curses.h
783         + added SGR attributes test-case to ncurses
784         + revised ncurses 't' logic to show trace-disable effect in the menu.
785         + use getopt in ncurses program to process -s and -t options.
786         + make ncurses 'p' legend toggle with '?'
787         + disable scrollok during the ncurses 'p' test; if it is enabled the
788           stdscr will scroll when putting the box-corners in the lower-right
789           of the screen.
790
791 960629  - snapshot
792         + check return code of _nc_mvcur_scrolln() in _nc_scroll_optimize() for
793           terminals with no scrolling-support (reported by Nikolay Shadrin
794           <queen@qh.mirea.ac.ru>)
795         + added ^S scrollok-toggle to ncurses 'g' test.
796         + added ^T trace-toggle to ncurses tests.
797         + modified ncurses test program to use ^Q or ESC consistently for
798           terminating tests (rather than ^D), and to use control keys rather
799           than function keys in 'g' test.
800         + corrected misplaced wclrtoeol calls in addch to accommodate wrapping
801           (reported by Philippe De Muyter).
802         + modify lib_doupdate.c to use effective costs to tradeoff between
803           delete-character/insert-character vs normal updating (reported by
804           David MacKenzie).
805         + compute effective costs for screen update operations (e.g., clr_eos,
806           delete_character).
807         + corrected error in knight.c exposed by wrap fixes in 960622; the
808           msgwin needed scrollok set.
809         + corrected last change to IDcTransformLine logic to avoid conflict
810           between PutRange and InsStr
811         + modified run_tic.sh to not use /usr/tmp (reported by David MacKenzie),
812           and further revised it and aclocal.m4 to use $TMPDIR if set.
813         + corrected off-by-one in RoomFor call in read_entry.c
814
815 960622  - snapshot
816         + modified logic that wraps cursor in addch to follow the XSI spec,
817           (implemented in SVr4) which states that the cursor position is
818           updated when wrapping.  Renamed _NEED_WRAP to _WRAPPED to reflect the
819           actual semantics.
820         + added -s option to tic, to provide better diagnostics in run_tic.sh
821         + improved error-recovery for tabset install.
822         + change ABI to 3.1 (dropped tparam, corrected getbkgd(), added
823           _yoffset to WINDOW).
824         + modified initialization of SP->_ofp so that init_acs() is called with
825           the "right" file pointer (reported by Rick Marshall <rjm@nlc.net.au>
826         + documentation fixes (Juergen Pfeifer).
827         + corrected, using new SCREEN and WINDOW members, the behavior of
828           ncurses if one uses ripoffline() to remove a line from the top of the
829           screen (Juergen Pfeifer).
830         + modified autoconf scripts to prepare for Ada95 (GNAT) binding to
831           ncurses (Juergen Pfeifer).
832         + incorrect buffer-size in _nc_read_entry, reported by Eric Raymond.
833
834 960617
835         + corrected two logic errors in read_entry.c, write_entry.c (called by
836           tic, the write/read of terminfo entries used inconsistent rules for
837           locating the entries; the $TERMINFO_DIRS code would find only the
838           first entry in a list).
839         + refined pathname computation in run_tic.sh and shlib.
840         + corrected initialization of $IP in misc/run_tic.sh
841
842 960615  - snapshot
843         + ifdef'd out _nc_hash_map() call because it does not improve speed.
844         + display version of gcc if configure script identifies it.
845         + modify configure script to use /usr as Linux's default prefix.
846         + modify run_tic.sh to use shlib script, fixes some problems installing
847           with a shared-library configuration.
848         + adjusted configure script so that it doesn't run tests with the
849           warnings turned on, which makes config.log hard to read.
850         + added 'lint' rule to top-level Makefile.
851         + added configure option '--with-install-prefix' for use by system
852           builders to install into staging locations (from request by
853           charles@comm.polymtl.ca)
854         + corrected autoconfigure for Debian man program; it's not installed
855           as "man_db".
856         + set noecho in 'worm'; it was ifdef'd for debug only
857         + updated test/configure.in for timing-display in ncurses 'p' test
858         + corrected misspelled 'getbkgd()'.
859         + corrected wbkgdset to work like observed syvr4 (sets A_CHARTEXT part
860           to blank if no character given, copies attributes to window's
861           attributes).
862         + modified lib_doupdate.c to use lower-level SP's current_attr state
863           instead of curscr's state, since it is redundant.
864         + correction to IDcTransformLine logic which controls where InsStr is
865           invoked (refined by lav@yars.free.net).
866         > patches 303 by eric
867         + conditionally include Chris Torek's hash function _nc_hash_map().
868         + better fix for nvi refresh-bug (Rick Marshall)
869         + fix for bug in handling of interrupted keystroke waits,
870           (Werner Fleck).
871
872 960601  - snapshot
873         + auto-configure man-page compression-format and renames for Debian.
874         + corrected several typos in curses.h.in (i.e., the mvXXXX macros).
875         + re-order curses.priv.h for lint.
876         + added rules for lintlib, lint
877         + corrected ifdef for BROKEN_LINKER in MKnames.awk.in
878         + corrected missing INSTALL_DATA in misc/Makefile.in
879         + flush output when changing cursor-visibility (Rick Marshall)
880         + fix a minor bug in the _nc_ripoff() routine and improve error checking
881           when creating the label window (Juergen Pfeifer).
882         + enhancement to the control over the new PC-style soft key format.
883           allow caller now to select whether or not one wants to have
884           the index-line; see curs_slk.3x for documentation (Juergen Pfeifer).
885         + typos, don't use inline with -g (Philippe De Muyter)
886         + fixes for menus & wattr-, slk-functions (Juergen Pfeifer)
887
888 960526  - snapshot
889         + removed --with-ticdir option altogether, maintain compatibility with
890           existing applications via symbolic link in run_tic.sh
891         + patch for termio.h, signal (Philippe De Muyter)
892         + auto-configure gcc warning options rather than infer from version.
893         + auto-configure __attribute__ for different gcc versions.
894         + corrected special use of clearok() in hardscroll.c by resetting flag
895           in wrefresh().
896         + include stdlib.h before defs for EXIT_SUCCESS, for OSF/1.
897         + include sys/types.h in case stdlib.h does not declare size_t.
898         + fixes for makefile (Tim Mooney)
899         + fixes for menus & forms (Juergen.Pfeifer@T-Online.de)
900
901 960518  - snapshot
902         + revised ncurses.c panner test, let pad abut all 4 sides of screen.
903         + refined case in lib_doupdate.c for ClrToEOL().
904         + corrected prior change for PutRange (Alexander V.  Lukyanov:
905           lav@yars.free.net).
906         + autoconf mods (Tim Mooney: mooney@dogbert.cc.ndsu.NoDak.edu).
907         + locale fix for forms (Philippe De Muyter: phdemuyt@ulb.ac.be)
908         + renamed "--with-datadir" option to "--with-ticdir" to avoid
909           confusion, and made this check for the /usr/lib/terminfo pre-existing
910           directory.
911         > patches 299-301 by eric:
912         + added hashmap.c
913         + mods to tracing, especially for ACS chars.
914         + corrected off-by-one in IDCtransform.
915         + corrected intermittent mouse bug by using return-value from read().
916         + mods to parse_entry.c, for smarter defaults.
917
918 960512
919         + use getopt in 'tic'; added -L option and modified -e option to allow
920           list from a file.
921
922 960511
923         + don't use fixed buffer-size in tparm().
924         + modified tic to create terminfo directory if it doesn't exist.
925         + added -T options to tic and infocmp (for testing/analysis)
926         + refined the length criteria for termcap and terminfo
927         + optimize lib_doupdate with memcpy, PutRange
928         > patches 297, 298 by eric
929         + implement TERMINFO_DIRS, and -o option of tic
930         + added TRACE_IEVENT
931         + removed boolean version of 'getm'
932         + added lib_print.c (for Rick Marshall)
933         + added has_key()
934         + added 't' to ncurses.c test.
935         + moved delay_output() to lib_tputs.c
936         + removed tparam().
937         + misc cursor & optimization fixes.
938
939 960504  - snapshot
940         + modified ncurses 'p' test to allow full-screen range for panner size.
941         + fixes for locale (phdm@labauto1.ulb.ac.be)
942         + don't use fixed buffer-size in fmt_entry().
943         + added usage-message to 'infocmp'.
944         + modified install.includes rules to prepend subdirectory-name to
945           "#include" if needed.
946
947 960430
948         + protect wrefresh, wnoutrefresh from invocation with pad argument.
949         + corrected default CCFLAGS in test/Makefile.
950
951 960428  - snapshot
952         + implemented logic to support terminals with background color erase
953           (e.g., rxvt and the newer color xterm).
954         + improved screen update logic (off-by-one logic error; use clr_eos if
955           possible)
956
957 960426  - snapshot
958         + change ncurses 'a' test to run in raw mode.
959         + make TIOCGWINSZ configure test less stringent, in case user
960           configures via terminal that cannot get screen size.
961         > patches 295, 296 by eric:
962         + new "-e" option of tic.
963         + fix for "infocmp -e".
964         + restore working-directory in read_termcap.c
965         + split lib_kernel.c, lib_setup.c and names.c in order to reduce
966           overhead for programs that use only termcap features.
967
968 960418  - snapshot
969         + use autoconf 2.9
970         + fix for AIX 3.2.5 (must define _POSIX_SOURCE to get termios struct
971           definitions via <termios.h>, modified macros in lib_raw.c to avoid
972           K&R-style substitution)
973         > patches 293, 294 by eric:
974         + mods to wgetch() in cooked mode
975         + corrected askuser() logic in tset
976         + correct interaction of endwin() with mouse processing
977         + added trace support for TTY flags
978
979 960406
980         + fixes for NeXT, ISC and HPUX auto-configure
981         + autogenerate development header-dependencies (config.h, *.priv.h)
982         + corrected single-column formatting of "use=" (e.g., in tic)
983         + modify tic to read full terminfo-names
984         + corrected divide-by-zero that caused hang (or worse) when redirecting output
985         + modify tic to generate directories only as-needed (and corrected
986           instance of use of data from function that had already returned).
987
988 ### ncurses-1.9.8a -> 1.9.9e
989
990 * fixed broken wsyncup()/wysncdown(), as a result wnoutrefresh() now has
991   copy-changed-lines behavior.
992 * added and documented wresize() function.
993 * more fixes to LOWER-RIGHT corner handling.
994 * changed the line-breakout optimization code to allow some lines to be
995   emitted before the first check.
996 * added option for tic to use symbolic instead of hard links (for AFS)
997 * fix to restore auto-wrap mode.
998 * trace level can be controlled by environment variable.
999 * better handling of NULs in terminal descriptions.
1000 * improved compatibility with observed SVR4 behavior.
1001 * the refresh behavior of over-lapping windows is now more efficient and
1002   behaves like SVR4.
1003 * use autoconf 2.7, which results in a working setup for SCO 5.0.
1004 * support for ESCDELAY.
1005 * small fixes for menu/form code.
1006 * the test directory has its own configure.
1007 * fixes to pads when optimizing scrolling.
1008 * fixed several off-by-one bugs.
1009 * fixes for termcap->terminfo translation; less restrictions more correct
1010   behavior.
1011
1012 ### ncurses-1.9.7 -> 1.9.8a
1013
1014 * teach infocmp -i to recognize ECMA highlight sequences
1015 * infocmp now dumps all SVr4 termcaps (not just the SVr4 ones) on -C
1016 * support infocmp -RBSD.
1017 * satisfy XSI Curses requirement that every macro be available as a function.
1018 * This represents the last big change to the public interface of ncurses. The
1019   ABI_VERSION has now been set at 3.0 and should stay there barring any great
1020   catastrophies or acts of God.
1021 * The C++ has been cleaned up in reaction to the changes to satisfy XSI's
1022   requirements.
1023 * libncurses now gets linked to libcurses to help seamless emulation
1024   (replacement) of a vendor's curses. --disable-overwrite turns this behavior
1025   off.
1026
1027 ### ncurses-1.9.6 -> 1.9.7
1028
1029 * corrected return values of setupterm()
1030 * Fixed some bugs in tput (it does padding now)
1031 * fixed a bug in tic that made it do the wrong thing on entries with more than
1032   one `use' capability.
1033 * corrected the screen-size calculation at startup time to alter the
1034   numeric capabilities as per SVr4, not just LINES and COLS.
1035 * toe(1) introduced; does what infocmp -T used to.
1036 * tic(1) can now translate AIX box1 and font[0123] capabilities.
1037 * tic uses much less core, the dotic.sh kluge can go away now.
1038 * fix read_entry() and write_entry() to pass through cancelled capabilities OK.
1039 * Add $HOME/.terminfo as source/target directory for terminfo entries.
1040 * termcap compilation now automatically dumps an entry to $HOME/.terminfo.
1041 * added -h option to toe(1).
1042 * added -R option to tic(1) and infocmp(1).
1043 * added fallback-entry-list feature.
1044 * added -i option to infocmp(1).
1045 * do a better job at detecting if we're on SCO.
1046
1047 ### ncurses-1.9.5 -> 1.9.6
1048
1049 * handling of TERMCAP environment variables now works correctly.
1050 * various changes to shorten termcap translations to less that 1024 chars.
1051 * tset(1) added
1052 * mouse support for xterm.
1053 * most data tables are now const and accordingly live in shareable text space.
1054 * Obey the XPG4/SVr4 practice that echo() is initally off.
1055 * tic is much better at translating XENIX and AIX termcap entries now.
1056 * tic can interpret ko capabilities now.
1057 * integrated Juergen Pfeifer's forms library.
1058 * taught write_entry() how not to write more than it needs to; this change
1059   reduces the size of the terminfo tree by a full 26%!
1060 * infocmp -T option added.
1061 * better warnings about historical tic quirks from tic.
1062
1063 ### ncurses 1.9.4 -> 1.9.5
1064
1065 * menus library is now included with documentation.
1066 * lib_mvcur has been carefully profiled and tuned.
1067 * Fixed a ^Z-handling bug that was tanking lynx(1).
1068 * HJ Lu's patches for ELF shared libraries under Linux
1069 * terminfo.src 9.8.2
1070 * tweaks for compiling in seperate directories.
1071 * Thomas Dickey's patches to support NeXT's brain-dead linker
1072 * Eric Raymond's patches to fix problems with long termcap entries.
1073 * more support for shared libraries under SunOS and IRIX.
1074
1075 ### ncurses 1.9.3 -> 1.9.4
1076
1077 * fixed an undefined-order-of-evaluation bug in lib_acs.c
1078 * systematically gave non-API public functions and data an _nc_ prefix.
1079 * integrated Juergen Pfeifer's menu code into the distribution.
1080 * totally rewrote the knight test game's interface
1081
1082 ### ncurses 1.9.2c -> 1.9.3
1083
1084 * fixed the TERMCAP_FILE Support.
1085 * fixed off-by-one errors in scrolling code
1086 * added tracemunch to the test tools
1087 * took steps to cut the running time of make install.data
1088
1089 ### ncurses 1.9.2c -> 1.9.2d
1090
1091 * revised 'configure' script to produce libraries for normal, debug,
1092   profile and shared object models.
1093
1094 ### ncurses 1.9.1 -> 1.9.2
1095
1096 * use 'autoconf' to implement 'configure' script.
1097 * panels support added
1098 * tic now checks for excessively long termcap entries when doing translation
1099 * first cut at eliminating namespace pollution.
1100
1101 ### ncurses 1.8.9 -> 1.9
1102
1103 * cleanup gcc warnings for the following: use size_t where 'int' is not
1104   appropriate, fixed some shadowed variables, change attr_t to compatible with
1105   chtype, use attr_t in some places where it was confused with 'int'.
1106 * use chtype/attr_t casts as appropriate to ensure portability of masking
1107   operations.
1108 * added-back waddchnstr() to lib_addstr.c (it had been deleted).
1109 * supplied missing prototypes in curses.h
1110 * include <termcap.h> in lib_termcap.c to ensure that the prototypes
1111   are consistent (they weren't).
1112 * corrected prototype of tputs in <termcap.h>
1113 * rewrote varargs parsing in lib_tparm.c (to avoid referencing memory
1114   that may be out of bounds on the stack) -- Purify found this.
1115 * ensure that TRACE is defined in lib_trace.c (to solve prototype
1116   warnings from gcc).
1117 * corrected scrolling-region size in 'mvcur_wrap()'
1118 * more spelling fixes
1119 * use 'calloc()' to allocate WINDOW struct in lib_newwin.c (Purify).
1120 * set default value for SP->_ofp in lib_set_term.c (otherwise SunOS dumps
1121   core in init_acs()).
1122 * include <errno.h> in write_entry.c (most "braindead" includes declare errno
1123   in that file).
1124
1125 ### ncurses 1.8.8 -> 1.8.9
1126
1127 * compile (mostly) clean with gcc 2.5.8 -Wall -Wstrict-prototypes
1128   -Wmissing-prototypes -Wconversion and using __attribute__ to flush out
1129   non-portable use of "%x" for pointers, or for chtype data (which is declared
1130   as a long).
1131 * modified doupdate to ensure that typahead was turned on before attempting
1132   select-call (otherwise, some implementations hang).
1133 * added trace mask TRACE_FIFO, use this in lib_getch.c to allow finer
1134   resolution of traces.
1135 * improved bounds checking on several critical functions.
1136 * the data directory has been replaced by the new master terminfo file.
1137 * -F file-comparison option added to infocmp.
1138 * compatibility with XSI Curses is now documented in the man bages.
1139 * wsyncup/wsyncdown functions are reliable now; subwindow code in general
1140   is much less flaky.
1141 * capabilities ~msgr, tilde_glitch, insert_padding, generic_type, no_pad_char,
1142   memory_above, memory_below, and hard_copy are now used properly.
1143 * cursor-movement optimization has been completely rewritten.
1144 * vertical-movement optimization now uses hardware scrolling, il, dl.
1145
1146 ### ncurses 1.8.7 -> 1.8.8
1147 * untic no longer exists, infocmp replaces it.
1148 * tic can understand termcap now, especially if it is called captoinfo.
1149 * The Linux Standard Console terminfo entry is called linux insead of console.
1150   It also uses the kernel's new method of changing charsets.
1151 * initscr() will EXIT upon error (as the docs say) This wil mostly happen if
1152   you try to run on an undefined terminal.
1153 * I can get things running on AIX but tic can't compile terminfo. I have to
1154   compile entries on another machine. Volunteers to hunt this bug are welcome.
1155 * wbkgd() and wbkgdset() can be used to set a windows background to color.
1156   wclear()/werase() DO NOT use the current attribute to clear the screen.
1157   This is the way SVR4 curses works. PDCurses 2.1 is broken in this respect,
1158   though PDCurses 2.2 has been fixed.
1159 * cleaned up the test/ directory.
1160 * test/worm will segfault after quite a while.
1161 * many spelling corrections courtesy of Thomas E. Dickey
1162
1163 ### ncurses 1.8.6 -> 1.8.7
1164 * cleaned up programs in test/ directory.
1165 * fixed wbkgdset() macro.
1166 * modified getstr() to stop it from advancing cursor in noecho mode.
1167 * modified linux terminfo entry to work with the latest kernel to get
1168   the correct alternate character set.
1169 * also added a linux-mono entry for those running on monochrome screens.
1170 * changed initscr() so that it behaves like the man page says it does.
1171   this fixes the problem with programs in test/ crashing with SIGSEV if
1172   a terminal is undefined.
1173 * modified addch() to avoid using any term.h #define's
1174 * removed duplicate tgoto() in lib_tparm.c
1175 * modified dump_entry.c so that infocmp deals correctly with ',' in acsc
1176 * modified delwin() to correctly handle deleting subwindows.
1177 * fixed Makefile.dist to stop installing an empty curses.h
1178 * fixed a couple of out-of-date notes in man pages.
1179
1180 ### ncurses 1.8.5 -> 1.8.6
1181 * Implemented wbkgd(), bkgd(), bkgdset(), and wbkgdset().
1182 * The handling of attributes has been improved and now does not turn off color
1183   if other attributes are turned off.
1184 * scrolling code is improved. Scrolling in subwindows is still broken.
1185 * Fixes to several bugs that manifest them on platforms other than Linux.
1186 * The default to meta now depends on the status of the terminal when ncurses
1187   is started.
1188 * The interface to the tracing facility has changed.  Instead of the pair of
1189   functions traceon() and traceoff(), there is just one function trace() which
1190   takes a trace mask argument.  The trace masks, defined in curses.h, are
1191   as follows:
1192
1193         #define TRACE_DISABLE   0x00    /* turn off tracing */
1194         #define TRACE_ORDINARY  0x01    /* ordinary trace mode */
1195         #define TRACE_CHARPUT   0x02    /* also trace all character outputs */
1196         #define TRACE_MAXIMUM   0x0f    /* maximum trace level */
1197
1198   More trace masks may be added, or these may be changed, in future releases.
1199 * The pad code has been improved and the pad test code in test/ncurses.c has
1200   been improved.
1201 * The prototype ansi entry has been changed to work with a wider variety
1202   of emulators.
1203 * Fix to the prototype ansi entry that enables it to work with PC emulators
1204   that treat trailing ";m" in a highlight sequence as ";0m"; this doesn't
1205   break operation with any emulators.
1206 * There are now working infocmp, captoinfo, tput, and tclear utilities.
1207 * tic can now compile entries in termcap syntax.
1208 * Core-dump bug in pnoutrefresh fixed.
1209 * We now recognize and compile all the nonstandard capabilities in Ross
1210   Ridge's mytinfo package (rendering it obsolete).
1211 * General cleanup and documentation improvements.
1212 * Fixes and additions to the installation-documentation files.
1213 * Take cursor to normal mode on endwin.
1214
1215 ### ncurses 1.8.4 -> 1.8.5
1216 * serious bugs in updating screen which caused erratic non-display,
1217   fixed.
1218 * fixed initialization for getch() related variable which cause
1219   unpredictable results.
1220 * fixed another doupdate bug which only appeared if you have
1221   parm_char.
1222 * implemented redrawln() and redrawwin().
1223 * implemented winsnstr() and related functions.
1224 * cleaned up insertln() and deleteln() and implemented (w)insdeln().
1225 * changed Makefile.dist so that installation of man pages will
1226   take note of the terminfo directory.
1227 * fixed Configure (removed the mysterious 'X').
1228 * Eric S. Raymond fixed the script.* files so that they work with
1229   stock awk.
1230
1231 #### ncurses 1.8.3 -> 1.8.4 #### ####
1232 * fixed bug in refreshing the screen after return from shell_mode.
1233   There are still problems but they don't manifest themselves on
1234   my machine (Linux 0.99.14f).
1235 * added wgetnstr() and modified things accordingly.
1236 * fixed the script.src script.test to work with awk not just gawk.
1237 * Configure can now take an argument of the target system.
1238 * added test/ncurses.c which replaces several other programs and
1239   performs more testing.
1240 [Thanks to Eric S Raymond for the last 4]
1241 * more fixes to lib_overlay.c and added test/over.c to illustrate
1242   how it works.
1243 * fixed ungetch() to take int instead of ch.
1244 * fixes to cure wgetch() if flushinp() is called.
1245
1246 One note I forgot to mention in 1.8.3 is that tracing is off by
1247 default starting in the version. If you want tracing output, put
1248 traceon(); in your code and link with -ldcurses.
1249
1250 #### ncurses 1.8.2 -> ncurses 1.8.3 #### ####
1251 MAJOR CHANGES:
1252 1) The order of capabilities has been changed in order to achieve
1253 binary compatibility with SVR4 terminfo database. This has the
1254 unfortunate effect of breaking application currently linked with
1255 ncurses. To ensure correct behavior, recompile all such programs.
1256 Most programs using color or newer capabilities will break, others
1257 will probably continue to work ok.
1258
1259 2) Pavel Curtis has renounced his copyright to the public domain.
1260 This means that his original sources (posted to comp.sources.unix,
1261 volume 1) are now in the public domain.  The current sources are
1262 NOT in the public domain, they are copyrighted by me.  I'm
1263 entertaining ideas on what the new terms ncurses is released under.
1264
1265 3) Eric S. Raymond has supplied a complete set of man pages for
1266 ncurses in ?roff format. They will eventually replace most of the
1267 current docs. Both sets are included in this release.
1268
1269 Other changes and notes from 1.8.2 include:
1270 * SIGSEGV during scrolling no longer occurs.
1271 * Other problems with scrolling and use of idl have been corrected.
1272 * lib_getch.c has been re-written and should perform flawlessly.
1273   please use test/getch.c and any other programs to test this.
1274 * ripoffline() is implemented (Thanks to Eric) and slk_ functions
1275   changed accordingly.
1276 * I've added support for terminals that scroll if you write in the
1277   bottom-right corner.
1278 * fixed more bugs in pads code. If anybody has a program that uses
1279   pads I'd love a copy.
1280 * correct handling for terminal with back_color_erase capability
1281   (such as Linux console, and most PC terminals)
1282 * ^Z handling apparently didn't work (I should never trust code
1283   sent me to me without extensive testing). It now seems to be
1284   fixed. Let me know if you have problems.
1285 * I've added support for Apollo and NeXT, but it may still be
1286   incomplete, especially when dealing with the lack of POSIX
1287   features.
1288 * scrolling should be more efficient on terminals with idl
1289   capabilities. Please see src/lib_scroll.c for more notes.
1290 * The line drawing routines were offset by 1 at both ends. This
1291   is now fixed.
1292 * added a few missing prototypes and macros (e.g. setterm())
1293 * fixed code in src/lib_overlay.c which used to crash.
1294 * added a few more programs in test/ The ones from the PDCurses
1295   package are useful, especially if you have SVR4 proper. I'm
1296   interested in the results you get on such a systems (Eric? ;-).
1297   They already exposed certain bugs in ncurses.
1298 * See src/README for porting notes.
1299 * The C++ code should really replace ncurses.h instead of working
1300   around it. It should avoid name-space clashes with nterm.h (use
1301   rows instead of lines, etc.)
1302 * The C++ should compile ok. I've added explicit rules to the
1303   Makefile because no C++ defaults are documented on the suns.
1304 * The docs say that echo() and nocbreak() are mutually exclusive.
1305   At the moment ncurses will switch to cbreak() if the case above
1306   occurs. Should it continue to do so? How about echo() and noraw()?
1307 * PDCurses seem to assume that wclear() will use current attribute
1308   when clearing the screen. According to Eric this is not the case
1309   with SVR4.
1310 * I have discovered, to my chagrin, SunOS 4.x (and probably other systems)
1311   * doesn't have vsscanf and God knows what else!  I've will do a vsscanf().
1312 * I've also found out that the src/script.* rely on gawk and will not
1313   work with stock awk or even with nawk. Any changes are welcome.
1314 * Linux is more tolerant of NULL dereferences than most systems. This
1315   fact was exposed by hanoi.
1316 * ncurses still seems inefficient in drawing the screen on a serial
1317   link between Linux and suns. The padding may be the culprit.
1318 * There seems to be one lingering problem with doupdate() after shelling
1319   out. Despite the fact the it is sending out the correct information
1320   to the terminal, nothing takes effect until you press ^L or another
1321   refresh takes place. And yes, output does get flushed.
1322
1323 #### ncurses 1.8.1 -> ncurses 1.8.2 #### Nov 28, 1993 ####
1324
1325 * added support for SVR4 and BSDI's BSD/386.
1326 * major update and fix to scrolling routine.
1327 * MORE fixes to stuff in lib_getch.c.
1328 * cleaned-up configuration options and can now generate
1329         Config.* files through an awk script.
1330 * changed setupterm() so it can be called more than once,
1331         add added set_curterm(), del_curterm().
1332 * a few minor cleanups.
1333 * added more prototypes in curses.h
1334
1335 #### ncurses 1.8 -> ncurses 1.8.1 #### Nov 4, 1993 ####
1336
1337 * added support for NeXTStep 3.0
1338 * added termcap emulation (not well tested).
1339 * more complete C++ interface to ncurses.
1340 * fixed overlay(), overwrite(), and added copywin().
1341 * a couple of bug fixes.
1342 * a few code cleanups.
1343
1344 #### ncurses 0.7.2/0.7.3 -> ncurses 1.8 #### Aug 31, 1993 ####
1345
1346 * The annoying message "can't open file." was due to missing
1347   terminfo entry for the used terminal. It has now been
1348   replaced by a hopefully more helpful message.
1349 * Problems with running on serial lines are now fixed.
1350 * Added configuration files for SunOS, Linux, HP/UX, Ultrix,
1351   386bsd/BSDI (if you have others send'em to me)
1352 * Cleaner Makefile.
1353 * The documentation in manual.doc is now more uptodate.
1354 * update optimization and support for hp terminals, and 386bsd
1355   console driver(s).
1356 * mvcur optimization for terminals without cursor addressing
1357   (doesn't work on Linux)
1358 * if cursor moved since last update, getch() will refresh the
1359   screen before working.
1360 * getch() & alarm() can now live together. in 0.7.3 a signal
1361   interrupted getch() (bug or feature?) now the getch is
1362   restarted.
1363 * scanw() et all were sick, now fixed.
1364 * support for 8-bit input (use meta()).
1365 * added default screen size to all terminfos.
1366 * added c++ Ncursesw class.
1367 * several minor bug fixes.
1368
1369 #### ncurses 0.7.2 -> ncurses 0.7.3 #### May 27, 1993 ####
1370
1371 * Config file to cope with different platforms (386BSD, BSDI, Ultrix, SunOS)
1372 * more fixes to lib_getch.c
1373 * changes related to Config
1374
1375 #### ncurses 0.7 -> ncurses 0.7.2 #### May 22, 1993 ####
1376
1377 * docs updated slightly (color usage is now documented).
1378 * yet another fix for getch(), this one fixes problems with ESC being swallowed
1379   if another character is typed before the 1 second timeout.
1380 * Hopefully, addstr() and addch() are 8-bit clean.
1381 * fixed lib_tparm.c to use stdarg.h (should run on suns now)
1382 * order of capabilities changed to reflect that specified in SYSV
1383   this will allow for binary-compatibility with existing terminfo dbs.
1384 * added halfdelay()
1385 * fixed problems with asc_init()
1386 * added A_PROTECT and A_INVIS
1387 * cleaned up vidputs()
1388 * general cleanup of the code
1389 * more attention to portability to other systems
1390 * added terminfos for hp70092 (wont work until changes to lib_update.c are
1391   made) and 386BSD pcvt drivers.
1392
1393 Thanks to Hellmuth Michaelis for his help.
1394 optimization code is slated for the next major release, stay tuned!
1395
1396 #### ncurses 0.6/0.61 -> ncurses 0.7 #### April 1, 1993
1397 Please note that the next release will be called 1.8. If you want to know about
1398 the rationale drop me a line.
1399
1400 Included are several test programs in test/.
1401 I've split up the panels library, reversi, tetris, sokoban. They are now
1402 available separately from netcom.com:pub/zmbenhal/
1403
1404 * color and ACS support is now fully compatible with SYSV at the terminfo
1405   level.
1406 * Capabilities now includes as many SYSV caps I could find.
1407 * tigetflag,tigetnum,tigetstr functions added.
1408 * boolnames, boolfnames, boolcodes numnames, numfnames, numcodes,
1409   strnames, strfnames, strcodes arrays are now added.
1410 * keyname() is added.
1411 * All function keys can be defined in terminfo entries.
1412 * fixed lin_tparm.c to behave properly.
1413 * terminfo entries for vt* and xterm are included (improvements are welcome)
1414 * more automation in handling caps and keys.
1415 * included fixes from 0.6.1
1416 * added a few more missing functions.
1417 * fixed a couple of minor bugs.
1418 * updated docs JUST a little (still miles behind in documenting the newer
1419         features).
1420
1421 #### ncurses 0.6 -> ncurses 0.61 ####
1422
1423 1) Included the missing data/console.
1424
1425 2) allow attributes when drawing boxes.
1426
1427 3) corrected usage of win->_delay value.
1428
1429 4) fixed a bug in lib_getch.c. if it didn't recognize a sequence it would
1430         simply return the last character in the sequence. The correct
1431         behavior is to return the entire sequence one character at a time.
1432
1433 #### ncurses0.5 -> ncurses0.6 #### March 1, 1993 ####
1434 * removed _numchngd from struct _win_st and made appropriate changes.
1435 * rewritten kgetch() to remove problems with interaction between alarm and
1436   read(). It caused SIGSEGV every now and then.
1437 * fixed a bug that miscounted the numbers of columns when updating.
1438   (in lib_doupdate.c(ClrUpdate() -- iterate to columns not columns-1)
1439 * fixed a bug that cause the lower-right corner to be incorrect.
1440   (in lib_doupdate.c(putChar() -- check against columns not columns-1)
1441 * made resize() and cleanup() static to lib_newterm.c
1442 * added notimeout().
1443 * added timeout() define in curses.h
1444 * added more function prototypes and fixed napms.
1445 * added use_env().
1446 * moved screen size detection to lib_setup.c.
1447 * fixed newterm() to confirm to prototype.
1448 * removed SIGWINCH support as SYSV does not define its semantics.
1449 * cleaned-up lib_touch.c
1450 * added waddnstr() and relatives.
1451 * added slk_* support.
1452 * fixed a bug in wdeleteln().
1453 * added PANEL library.
1454 * modified Makefile for smoother installation.
1455 * terminfo.h is really term.h
1456
1457 #### ncurses 0.4 -> ncurses 0.5 #### Feb 14, 1993 ####
1458 * changed _win_st structure to allow support for missing functionality.
1459 * Addition of terminfo support for all KEY_*.
1460 * Support for nodelay(), timeout(), notimeout().
1461 * fixed a bug with the keypad char reading that did not return ESC until
1462   another key is pressed.
1463 * nl mapping no longer occur on output (as should be)
1464   fixed bug '\n' no causing a LF.
1465 * fixed bug that reset terminal colors regardless of whether we use color
1466   or not.
1467 * Better support for ACS (not quite complete).
1468 * fixed bug in wvline().
1469 * added curs_set().
1470 * changed from signal() to sigaction().
1471 * re-included the contents of important.patch into source.
1472
1473 #### ncurses 0.3 -> ncurses 0.4 #### Feb 3, 1993 ####
1474 * Addition of more KEY_* definitions.
1475 * Addition of function prototypes.
1476 * Addition of several missing functions.
1477 * No more crashes if screen size is undefined (use SIGWINCH handler).
1478 * added a handler to cleanup after SIGSEGV (hopefully never needed).
1479 * changed SRCDIR from /etc/term to /usr/lib/terminfo.
1480 * renamed compile/dump to tic/untic.
1481 * New scrolling code.
1482 * fixed bug that reversed the sense of nl() and nonl().
1483
1484 #### ncurses 0.2 -> ncurses 0.3  #### Jan 20, 1993 ####
1485 * more support for color and graphics see test/ for examples.
1486 * fixed various files to allow correct update after shelling out.
1487 * more fixes for updates.
1488 * no more core dumps if you don't have a terminfo entry.
1489 * support for LINES and COLUMNS environment variables.
1490 * support for SIGWINCH signal.
1491 * added a handler for SIGINT for clean exits.
1492
1493 #### ncurses 0.1 -> ncurses 0.2 #### Aug 14, 1992 ####
1494 * support for color.
1495 * support for PC graphic characters.
1496 * lib_trace.c updated to use stdarg.h and vprintf routines.
1497 * added gdc.c (Great Digital Clock) as an example of using color.
1498
1499 #### ncurses -> ncurses 0.1 #### Jul 31, 1992 ####
1500 * replacing sgtty stuff by termios stuff.
1501 * ANSIfication of some functions.
1502 * Disabling cost analysis 'cause it's incorrect.
1503 * A quick hack for a terminfo entry.