These files were in the Waste 1.3 distribution, but they are missing from the
Waste 2.0 distribution. At least: from the 2.0 distribution as included with
MetroWerks CodeWarrior. As the Python Waste module needs them I have included them
here. There were a few minor changes (in function signatures) to accomodate
slight changes in the Waste 2.0 headers.

All the copyright notices in the files and in Waste 1.3 seem to indicate that it
is fine to redistribute these files. If I am mistaken in this please let me know
and I will rectify the situation immedeately.

Jack Jansen, jack@cwi.nl, 31-Jan-01.
