This a log of changes that ncurses has gone through since I
started working with Pavel Curtis' original work of 1982:

#### ncurses -> ncurses 0.1 #### Jul 31, 1992 ####
replacing sgtty stuff by termios stuff.
ANSIfication of some functions.
Disabling cost analysis 'cause it's incorrect.
A quick hack for a terminfo entry.

#### ncurses 0.1 -> ncurses 0.2 #### Aug 14, 1992 ####
support for color.
support for PC graphic characters.
lib_trace.c updated to use stdarg.h and vprintf routines.
added gdc.c (Great Digital Clock) as an example of using color.

#### ncurses 0.2 -> ncurses 0.3  #### Jan 20, 1993 ####
more support for color and graphics see test/ for examples.  
fixed various files to allow correct update after shelling out.
more fixes for updates.
no more core dumps if you don't have a terminfo entry.
support for LINES and COLUMNS environment variables.
support for SIGWINCH signal.
added a handler for SIGINT for clean exits.

#### ncurses 0.3 -> ncurses 0.4 #### Feb 3, 1993 ####
Addition of more KEY_* definitions.
Addition of function prototypes.
Addition of several missing functions.
No more crashes if screen size is undefined (use SIGWINCH handler).
added a handler to cleanup after SIGSEGV (hopefully never needed).
changed SRCDIR from /etc/term to /usr/lib/terminfo.
renamed compile/dump to tic/untic.
New scrolling code.
fixed bug that reversed the sense of nl() and nonl().

#### ncurses 0.4 -> ncurses 0.5 #### Feb 14, 1993 ####
changed _win_st structure to allow support for missing functionality.
Addition of terminfo support for all KEY_*.
Support for nodelay(), timeout(), notimeout().
fixed a bug with the keypad char reading that did not return ESC until
	another key is pressed.
nl mapping no longer occur on output (as should be)
fixed bug '\n' no causing a LF.
fixed bug that reset terminal colors regardless of whether we use color or not.
Better support for ACS (not quite complete).
fixed bug in wvline().
added curs_set().
changed from signal() to sigaction().
re-included the contents of impotrtant.patch into source.

#### ncurses0.5 -> ncurses0.6 #### March 1, 1993 ####
removed _numchngd from struct _win_st and made appropriate changes.
rewritten kgetch() to remove problems with interaction between alram and 
	read(). It caused SIGSEGV every now and then.
fixed a bug that miscounted the numbers of columns when updating.
	(in lib_doupdate.c(ClrUpdate() -- iterate to columns not columns-1)
fixed a bug that cause the lower-right corner to be incorrect.
	(in lib_doupdate.c(putChar() -- check against columns not columns-1)
made resize() and cleanup() static to lib_newterm.c
added notimeout().
added timeout() define in curses.h
added more function prototypes and fixed napms.
added use_env().
moved screen size detection to lib_setup.c.
fixed newterm() to confirm to prototype.
removed SIGWINCH support as SYSV does not define its semantics.
cleaned-up lib_touch.c
added waddnstr() and relatives.
added slk_* support.
fixed a bug in wdeleteln().
added PANEL library.
modified Makefile for smoother installation.
terminfo.h is really term.h

#### ncurses 0.6 -> ncurses 0.61 ####

1) Included the missing data/console.

2) allow attributes when drawing boxes.

3) corrected usage of win->_delay value.

4) fixed a bug in lib_getch.c. if it didn't recognize a sequence it would
	simply return the last character in the sequence. The correct
	behavior is to return the entire sequence one character at a time.

#### ncurses 0.6/0.61 -> ncurses 0.7 #### April 1, 1993
Please note that the next release will be called 1.8. If you want to know about
the rationale drop me a line.

Included are several test programs in test/.
I've split up the panels library, reversi, tetris, sokoban. They are now
available separately from netcom.com:pub/zmbenhal/

color and ACS support is now fully compatible with SYSV at the terminfo level.
Capabilities now includes as many SYSV caps I could find.
tigetflag,tigetnum,tigetstr functions added.
boolnames, boolfnames, boolcodes
numnames, numfnames, numcodes,
strnames, strfnames, strcodes arrays are now added.
keyname() is added.
All function keys can be defined in terminfo entries.
fixed lin_tparm.c to behave properly.
terminfo entries for vt* and xterm are included (improvements are welcome)
more automation in handling caps and keys.
included fixes from 0.6.1
added a few more missing functions.
fixed a couple of minor bugs.
updated docs JUST a little (still miles behind in documenting the newer
	features).

#### ncurses 0.7 -> ncurses 0.7.2 #### May 22, 1993 ####

docs updated slightly (color usage is now documented).
yet another fix for getch(), this one fixes problems with ESC being swallowed
	if another character is typed before the 1 second timeout.
Hopefully, addstr() and addch() are 8-bit clean.
fixed lib_tparm.c to use stdarg.h (should run on suns now)
order of capabilities changed to reflect that specified in SYSV
	this will allow for binary-compatiblilty with existing terminfo dbs.
added halfdelay()
fixed problems with asc_init()
added A_PROTECT and A_INVIS
cleaned up vidputs()
general cleanup of the code
more attention to portability to other systems
added terminfos for hp70092 (wont work until changes to lib_update.c are made)
and 386BSD pcvt drivers.

Thanks to Hellmuth Michaelis for his help.
optimization code is slated for the next major release, stay tuned!

#### ncurses 0.7.2 -> ncurses 0.7.3 #### May 27, 1993 ####

Config file to cope with different platforms (386BSD, BSDI, Ultrix, SunOS)
more fixes to lib_getch.c
changes related to Config

#### ncurses 0.7.2/0.7.3 -> nucrses 1.8 #### Aug 31, 1993 ####

*) The annoying message "can't open file." was due to missing
terminfo entry for the used terminal. It has now been
replaced by a hopefully more helpful message.
*) Problems with running on serial lines are now fixed.
*) Added configuration files for SunOS, Linux, HP/UX, Ultrix,
386bsd/BSDI (if you have others send'em to me)
*) Cleaner Makefile.
*) The documentation in manual.doc is now more uptodate.
*) update optimization and support for hp terminals, and 386bsd
console driver(s).
*) mvcur optimization for terminals without cursor addressing
(doesn't work on Linux)
*) if cursor moved since last update, getch() will refresh the
screen before working.
*) getch() & alarm() can now live together. in 0.7.3 a signal
interrupted getch() (bug or feature?) now the getch is
restarted.
*) scanw() et all were sick, now fixed.
*) support for 8-bit input (use meta()).
*) added default screen size to all terminfos.
*) added c++ Ncursesw class.
*) several minor bug fixes.

#### ncurses 1.8 -> ncurses 1.8.1 #### Nov 4, 1993 ####

*) added support for NeXTStep 3.0
*) added termcap emulation (not well tested).
*) more complete C++ interface to ncurses.
*) fixed overlay(), overwite(), and added copywin().
*) a couple of bug fixes.
*) a few code cleanups.

#### ncurses 1.8.1 -> ncurses 1.8.2 #### Nov 28, 1993 ####

*) added support for SVR4 and BSDI's BSD/386.
*) major update and fix to scrolling routine.
*) MORE fixes to stuff in lib_getch.c.
*) cleaned-up configuration options and can now generate
	Config.* files throught an awk script.
*) changed setupterm() so it can be called more than once,
	add added set_curterm(), del_curterm().
*) a few minor cleanups.
*) added more prototypes in curses.h

#### ncurses 1.8.2 -> ncurses 1.8.3 #### ####
MAJOR CHANGES:
1) The order of capabilties has been changed in order to achieve
binary compatibility with SVR4 terminfo database. This has the
unfortunate effect of breaking application currently linked with
ncurses. To ensure correct behavior, recompile all such programs.
Most programs using color or newer capabilities will break, others
will probably continue to work ok.

2) Pavel Curtis has renounced his copyright to the public domain.
This means that his original sources (posted to comp.sources.unix)
are now in the public domain. The current sources are NOT in the
public domian, they are copyrighted by me. I'm entertaining ideas
on what the new terms ncurses is released under.

3) Eric S. Raymond has supplied a complete set of man pages for
ncurses in ?roff format. They will eventually replace most of the 
current docs. Both sets are included in this release.

Other changes and notes from 1.8.2 include:
*) SIGSEGV during scrolling no longer occurs.
*) Other problems with scrolling and use of idl have been corrected.
*) lib_getch.c has been re-written and should perform flawlessly.
   please use test/getch.c and any other programs to test this.
*) ripoffline() is implemented (Thanks to Eric) and slk_ functions
   changed accordingly.
*) I've added support for terminals that scroll if you write in the
   bottom-right corner.
*) fixed more bugs in pads code. If anybody has a program that uses
   pads I'd love a copy.
*) correct handling for terminal with back_color_erase capability
   (such as Linux console, and most PC terminals)
*) ^Z handling apparently didn't work (I should never trust code
   sent me to me without extensive testing). It now seems to be
   fixed. Let me know if you have problems.
*) I've added support for Apollo and NeXT, but it may still be
   incomplete, especially when dealing with the lack of POSIX
   features.
*) scrolling should be more effecient on terminals with idl
   capabilities. Please see src/lib_scroll.c for more notes.
*) The line drawing routines were offset by 1 at both ends. This
   is now fixed.
*) added a few missing prototypes and macros (eg. setterm())
*) fixed code in src/lib_overlay.c which used to crash.
*) added a few more programs in test/ The ones from the PDCurses
   package are useful, especially if you have SVR4 proper. I'm
   interested in the results you get on such a systems (Eric? ;-).
   They already exposed certain bugs in ncurses.
*) See src/README for porting notes.
*) The C++ code should really replace ncurses.h instead of working
   around it. It should avoid name-space clashes with nterm.h (use
   rows instead of lines, etc.)
*) The C++ should compile ok. I've added explicit rules to the
   Makefile because no C++ defaults are documented on the suns.
*) The docs say that echo() and nocbreak() are mutually exclusive.
   At the moment ncurses will switch to cbreak() if the case above
   occurs. Should it continue to do so? How about echo() and noraw()?
*) PDCurses seem to assume that wclear() will use current attribute
   when clearing the screen. According to Eric this is not the case
   with SVR4.
*) I have discovered, to my chagrin, the sun (and probably other
   systems) doesn't have strerror or vsscanf and God knows what else!
   I've added a strerror() and will do a vsscanf().
*) I've also found out that the src/script.* rely on gawk and will not
   work with stock awk or even with nawk. Any changes are welcome.
*) Linux is more tolerant of NULL dereferences than most systems. This
   fact was exposed by hanoi. 
*) ncurses still seems ineffecient in drawing the screen on a serial
   link between Linux and suns. The padding may be the culprit.
*) There seems to be one lingering problem with doupdate() after shelling
   out. Despite the fact the it is sending out the correct information
   to the terminal, nothing takes effect until you press ^L or another
   refresh takes place. And yes, output does get flushed.
*) FILL IN THE BLANK.

#### ncurses 1.8.3 -> 1.8.4 #### ####
*) fixed bug in refreshing the screen after return from shell_mode.
   There are still problems but they don't manifest themselves on
   my machine (Linux 0.99.14f).
*) added wgetnstr() and modified things accordingly.
*) fixed the script.src script.test to work with awk not just gawk.
*) Configure can now take an argument of the target system.
*) added test/ncurses.c which replaces several other programs and
   performs more testing.
[Thanks to Eric S Raymond for the last 4]
*) more fixes to lib_overlay.c and added test/over.c to illustrate
   how it works.
*) fixed ungetch() to take int instead of ch.
*) fixes to cure wgetch() if flushinp() is called.

One note I forgot to mention in 1.8.3 is that tracing if off by
default starting in the version. If you want tracing output, put
traceon(); in your code and link with -ldcurses.


