NetBSD/dist/cdk/CHANGES

328 lines
15 KiB
Plaintext

Cdk Version Change List
Copyright Mike Glover, 1995, 1996, 1997, 1998, 1999
Some changes copyright Thomas Dickey 1999, 2000
-------------------------------------------------------------------------------
This file outlines all of the changes/additions from one release to another.
You should also look at the BUGS file for information related to bugs which
were fixed from release to release.
2000/4/9 - T.E.Dickey <dickey@clark.net>
==========================================
+ modify newwin() call in subwindow_ex.c to account for actual screen
size rather than assuming 25 lines (reported by Gary Funck
<gary@Intrepid.Com>).
+ add CF_X_ATHENA and CF_X_TOOLKIT configure macros for --with-pdcurses
option, needed if the Xcurses or dependent libraries are static
rather than shared.
+ correct typo in configure check for HPUX 11.x (reported by Bjorn
Helgaas <helgaas@rsn.hp.com>).
2000/2/18 - T.E.Dickey <dickey@clark.net>
==========================================
+ add case for HPUX 11.x use of cur_colr library (reported by
Bjorn Helgaas <helgaas@rsn.hp.com>).
+ add configure option --with-pdcurses, to link with the X11 version
of PDCurses.
+ eliminate quoted includes, in favor of bracketed form.
+ ifdef'd limits.h, moving that into cdk.h with a fallback definition
for INT_MIN and INT_MAX.
+ minor fixes for building with SunOS 5lib version: configure check
for getopt variables, correction to demos/Makefile.in
2000/1/17 - T.E.Dickey <dickey@clark.net>
==========================================
+ add lib-prefix and executable suffix checks to configure script for
port to OS/2 EMX.
+ add configure check for lstat().
2000/1/16 - T.E.Dickey <dickey@clark.net>
==========================================
+ drop dependency on usleep(), using napms() which is standard with
SVr4 curses.
+ rewrote mode2Char(), making it table-driven and splitting out
mode2Filetype() to make porting simpler, by putting ifdef's for
S_ISSOCK in one place only.
+ use new freeCharList() to reduce clutter.
+ eliminate casts of NULL, to reduce clutter.
+ change several uses of control characters in source to use CONTROL()
macro.
+ correct format of date shown in bind_ex.c
+ correct nonstandard getcwd() usage in fselect.c
+ change demo and example makefiles to not strip executables.
+ modify demo/Makefile.in to work around Solaris' make program which
does not process ".c" rule as desired.
2000/1/8 - T.E.Dickey <dickey@clark.net>
==========================================
+ fix compiler warnings with Solaris cc.
1999/12/19 - T.E.Dickey <dickey@clark.net>
==========================================
+ update email and url for Mike Glover based on 4.9.9 version dated
1999/7/29.
1999/6/26 - T.E.Dickey <dickey@clark.net>
==========================================
+ add configure options --with-dbmalloc and --with-dmalloc to simplify
testing with those libraries.
+ correct error in rewrite of char2Chtype which broke repeat-counts.
1999/6/5 - T.E.Dickey <dickey@clark.net>
==========================================
+ correct reference to uninitialized memory in bindCDKObject()
+ add/use BINDFN_PROTO macro to simplify maintenance of Perl extension,
corrected corresponding functions to be typed void.
+ shorten/simplify mapChtype by making it table-driven.
+ shorten/simplify char2DisplayType by making it table-driven.
+ replace splitString() by CDKsplitString() and CDKcountStrings() to
eliminate buffer-limits.
+ simplify char2Chtype, eliminate fixed-buffer limits.
+ prevent recursion in segvTrap.
1999/5/29 - T.E.Dickey <dickey@clark.net>
==========================================
+ remove bindFunction and bindData arrays from individual widgets
+ make draw, erase, move methods accessed only via the CDKFUNCS table
in each widget.
+ add move method for menu.c
+ split-out positionCDKObject function from widget code.
1999/5/23 - T.E.Dickey <dickey@clark.net>
==========================================
+ remove WIN_WIDTH and related macros, use the more common getmaxx,
and similar macros. Provide fallback definitions for those.
+ replace log10() call in intlen with simple recursion.
+ add getendx() and getendy() macros.
+ add moveCursesWindow().
+ generate include/cdk_config.h, to simplify ifdef'ing for gcc
features, and to reduce clutter in the makefiles.
+ add functions ceilCDK() and floorCDK() to eliminate dependency on
the math library
+ simplified, corrected upper-limit checks in alignxy().
+ change bindings to be dynamically allocated, part of the CDKOBJS
structure.
+ correct overlap between title and percentage in drawCDKViewerInfo()
1999/5/15 - T.E.Dickey <dickey@clark.net>
==========================================
+ revised configure script, using autoconf macros which I've written
for other programs to check for ncurses configuration.
+ corrected language of copyrights - Mike Glover's intent to retain
copyright of CDK is not served by putting a 1990 copyright attributed
to UC Berkeley.
+ except for unused parameters, fix gcc compiler warnings.
+ change prototypes to not use parameter names, since this causes
namespace pollution.
+ make functions that do not have public prototypes static.
+ add missing exit() call in fileview.c, after endCDK() call.
+ move delwin() calls before endCDK() call in a few other examples.
+ correct apparent bug in widgets which process a binding (such as
KEY_DOWN, in the alphalist and fileview.c demos). They set the
exitType to vESCAPE_HIT rather than the expected vEARLY_EXIT.
+ ifdef'd out some debug code in scroll_ex.c
+ correct a loop limit freeing mesg[] array in selection_ex.c
+ move common object data into new struct CDKOBJS, making cdkscreen.c
much simpler and extensible.
+ change erase and draw functions (called from cdkscreen.c) to
object pointers, so only widgets used are linked, making example
programs half as big.
4.9.7 -> 4.9.8 (December 1998)
==========================================
* Changed the way key bindings worked. If the key binding exited
with a non-zero value then the widget would exit like the user
pressed the escape key. This provides more control over key
binding callbacks. Now the bind prototype is:
int function (EObjectType cdktype, void *object, void *clientData, chtype key);
* Reversed the order of this file. The most recent first.
4.9.6 -> 4.9.7 (December 1998)
==========================================
* Went from static Makefiles to autoconf and configure. (finally)
4.9.2 -> 4.9.6
==========================================
* Once again, it's a complete mystery.
4.9.1 -> 4.9.2
==========================================
* Changed the activateCDKViewer funtion to be more compliant
with the rest of the activateCDKXXX functions.
4.9.0 -> 4.9.1
==========================================
* Added the functions setCDKXXXULChar/URChar/LLChar/LRChar,
setCDKXXXVerticalChar, setCDKHorizontalChar, and
setCDKXXXBoxAttribute to each of the widgets but the menu
widget. These functions allow the programmer to define
the corner characters of the widget as well as the vertical,
horizontal, and attributes of the box.
* Added the function setCDKXXXBackgroundColor. This sets the
background color of the widget's window.
* Added makefile for the SGI
* Created the buttonbox widget.
* Added in Ctrl-N and Ctrl-P to switch between buttons on the
dialog box and viewer.
* Added the functions setCDKRadioItems and setCDKSelectionItems.
* Added the functions setCDKRadioTitle, setCDKSelectionTitle,
setCDKScrollTitle.
4.8.3 -> 4.9.0
==========================================
* Added a parameter to the setCDKViewer function to turn on/off the
line X of Y in the top left corner.
* Removed the eraseCDKXXX in each of the drawCDKXXX functions. This
results in a quicker refresh and less overhead when using the
widgets. This should make things A LOT faster. (I suppose it's about
time I had complete faith in curses optimized screen refreshing. :) )
The side effect is that you might have to change some programs to
force an eraseCDKXXX/drawCDKXXX when you think the screen is garbled.
* Added a little bit of logic in char2Chtype when a terminal cannot
display color, bold will be used instead.
* Cleaned up the way filename completion works in the file selector.
You may now type in a path and hit tab and that directory tree
will be loaded.
* Added the ability to use the ~ character to refer to a users home
directory, in the file selector. (like csh variants)
* Changed the setCDKXXX functions. Made many different setCDKXXX
functions, one for each item being set. This reduces the overhead
of all the setCDKXXX functions.
* Drastically changed cdk.h. Split the widget definitions and
functions into their own header files. This makes it easier
to expand CDK.
* Added the ability to have multiple line titles on most of the widgets.
* Added the functions setCDKSelectionChoice/getCDKSelectionChoice to
set/get a single choice value from a selection list.
* Added the functions setCDKSelectionModes/getCDKSelectionModes to
set/get the ability to set some items in the selection list as
editable/uneditable.
* Added makefile for the DEC Alpha (I forget who sent me this, if
you want recognition, mail me again)
* Created a 'visual install' using some of the widgets. Try it.
(type in make vinstall once the library has been made)
* Added the ability to set the width of the widget respective to the
screen size. If you pass in a negative value, the widget will
adjust to the width of the window the widget sits in minus the
given value. If zero is given, then the widget will be the full
width of the window. This removes the need to know how wide the
window is when the widget is created.
* Changed the demos and examples makefiles. I was making things too
difficult. It's simpler and easier to compile these directories.
* Re-Purified the code. (no leaks, no UMR's, no problem... :) )
* Quantified the code a bit for those who complained about the
performance. It has been sped up; I just hope it's enough for
some of you speed freaks. :)
* Added the functions get/setCDKTemplateMin. This allows you to
set the minimum number of characters to type in before the
widget will accept the typed in value.
* Changed the documentation to reflect all the changes.
4.8.1 -> 4.8.2 -> 4.8.3
==========================================
* It's a complete mystery.
4.8.0 -> 4.8.1
==========================================
* Changed the bind prototype function from
void function (EObjectType cdktype, void *object, void *clientData);
to
void function (EObjectType cdktype, void *object, void *clientData, chtype key);
* Added scroll bars to the scrolling list, the selection list, and
the radio list.
* Modified the template widget so the new character takes on the
color/attributes of the plate widget.
* Added the function classes moveCDKXXX and positionCDKXXX.
* Changed the structure of the makefile and created a single makefile
for each platform to compile on.
* Added support for the delete character KEY_DC.
4.7.0 -> 4.8.0
==========================================
* Fixed bugs documented by Miguel Marques (miguel@apex.cos.yorku.ca)
in the entry and mentry widgets. The bug displays itself when you
use vHINT or vINT display types. The vHINT actually showed the
numbers being typed in (which goes against the hidden element of
this display type) and in certain cases vINT allowed non-alpha
characters to be entered.
* Added compile support for Free BSD.
* Cleaned up the behavior of the entry field.
* Cleaned up the behavior of the scrolling list.
* Cleaned up the behavior of the radio list.
* Cleaned up the behavior of the selection list.
* Changed (improved) the behavior of the file selector widget.
* Made the activateCDKFselect behave like the other widgets.
* Added injectCDKFselect function.
* Added the calendar widget.
* Added the slider widget.
* Added the alphalist widget on the request of Luigi Rizzo.
(luigi@ien.unipi.it)
* Fixed a bug with addCDKScrollItem.
* Fixed segmentation fault in the rolodex demo.
* Changed the macros MAX, MIN, and DIFF to MAXIMUM, MINIMUM,
and DIFFERENCE respectively to avoid conflicts.
* Fixed errors with the alphalist and fselect widgets.
* Added the link format comand for the file viewer. This allows
users to 'hyper-link' text files.
* Removed the use of CTRL-N.
* Added the ability to load/save with the scrolling window.
* Added filename completion to the file selector.
* Cleaned up massive changes and errors in the documentation.
* Added 'emacs-like' field editing capabilities to the entry
and mentry widgets.
4.6.1 -> 4.7.0
==========================================
* Added injectCDKXXX class of functions. This allows you to inject a
single character into the widget.
* Changed the activateCDKXXX to take an array of chtype to send in a
set of predefined characters. This is very useful for performing
automated tests of your programs.
* Added functions setCDKXXXPreProcess and setCDKXXXPosProcess to
perform actions before and after a character has been hit.
* Made the use of CTRL-N consistent.
* Fixed manual page errors.
* Added the ability to cut text from the entry, mentry, and template
widgets. (uses a global buffer)
* Added the ability to copy text from the entry, mentry, and template
widgets. (uses a global buffer)
* Added the ability to paste text into the entry, mentry, and template
widgets. (uses a global buffer)
* Added the use of the escape key to exit a widget early.
* Added the functions addCDKScroll/deleteCDKScroll to insert and
delete items in an active scrolling list.
* Added a parameter to the menu to specify where the menu windows
were to be drawn. (top or bottom)
* Added execCDKSwindow to the swindow function list. This allows the
user to 'spawn' a command and direct the output to the scrolling
window.
4.6.0 -> 4.6.1
==========================================
* Removed the callback function parameter from the entry, mentry,
matrix, and template widgets. Added in a function setCDKXXXCB.
The XXX is the name of the widget.
* Changed the viewer widget functions around. Moved activateCDKViewer
to setCDKViewer. Moved manageCDKViewer to activateCDKViewer and
removed the old setCDKViewer.
* Added in special drawing characters.
* Added in indent format to indent lines.
4.6.0 (January 1996)
==========================================
* First pulic release of Cdk.
If you want to get a hold of me mail me at one of the following:
glover@credit.erin.utoronto.ca
mike@vexus.ca
The CDK Web page has several homes. They are:
http://www.vexus.ca/CDK.html (official)
http://www.datasoft.on.ca/~cdk (Sponsered by the nice folks at Datasoft)
ttfn,
Mike
PS: There is also a Perl5 extension of this library for you Perl5 fans.
Look under any CPAN site under the directory CPAN/authors/id/GLOVER.