0.30 - changed commandline::value() to commandline::getValue()
	fixed a memory leak in dictionary
	added setHour/Minute/Second/etc. methods to datetime
	fixed readdir_r vulnerability
	added support for either "-arg value" or "--arg=value" to commandline
	added support for break and control characters to chat class
	added print method to environment class
	added close-on-exec methods to filedescriptor class
	added clear method to environment class
	made all methods in environment class static
	added wrappers for strspn/strcspn/strpbrk functions to charstring class
	fixed bug where datetime would set wrong timezone if it is initialized
		with a combined zone name like PST8PDT
	added directory::getChildCount()
	added datetime::validDateTime()
	xmldom class stores all strings found in the xml file in a stringlist
		and stores pointers to them in the xmldomnodes to reduce
		memory usage in xml files that have lots of duplicated strings
	added configure tests for dirfd/DIR.dd_fd/DIR.d_fd 
	initialize addrinfo struct pointer to NULL in inetclientsocket.C

0.29 - added check for whether SSL_read/write takes void * or char * parameter
	added _XOPEN_SOURCE to filedescriptorincludes.h for sys/socket for irix
	added collapse argument to charstring::split
	added configure test for -Wall
	switched lots of:
			char	a[charstring::length(b)];
		to:
			char	*a=new char[charstring::length(b)];
			...
			delete[] a;
		to improve compiler compatibility
	removed #ifdef __GNUC__ around static variable definitions, I'll add
		#ifndefs for compilers that don't allow them (like SCO's) if
		necessary
	added -D__EXTENSIONS__ to CPPFLAGS
	added charstring::escape/unescape
	defaulted zeropadding to 1 rather than 0, I'm not sure if it's a bug
		in glibc or not, but printf("%0*lld\n",0,(int64_t)0); prints
		nothing rather than 0, but printf("%0*ld\n",0,(int32_t)0);
		prints 0.  Using 1 instead of 0 for the number of 0's works
		in all cases.
	solaris's strchr/strrchr return const char *,
		so I made charstring::findFirst/findLast return const char *
	use snprintf's rather than sprintf's now
	uses fchmod/fchown rather than chmod/chown now
	made envelope classes out of all classes
	added a configure test for ftok that takes a char * argument
	switched a bunch of AC_TRY_LINK's to AC_TRY_COMPILE's in configure
		script
	configure script does less work looking for getpwnam_r and cousins now
	if pthread libs can't be found, configure also tries just plain -pthread
	added #ifdefs for individual POSIX_FADV_* and MADV_* macros
	in configure script, for cygwin, tests for w32api files and functions
		are omitted
	configure tests for strtoll/strtoull now
	configure tests for caddr_t types for all mmap-related functions
		individually now
	unsupported memorymap methods return false now rather than not existing
	added -pthread when compiling as well as linking
	fixed a time-remaining-related bug in snooze class
	fixed a bug where the date/time string buffer could easily be overrun

0.28.2 - filedescriptor desctructor removes the read buffer now

0.28.1 - fixed a bug in bufferedWrite()

0.28 - added strtou(l|ll) wrappers to charstring class
	added append(long|unsigned long|double...) methods to charstring class
	implemented ignoreParityErrors in serialportprofile class
	added baud methods to serialportprofile class that take string args
	xmldom::parseString() works now (properly calls xmlsax::parseString())
	regularexpression class zero's it's expression during init now to
		prevent a segfault when it's freed
	fixed several timezone-related bugs
	added modem client/server
	made default parseNumber base 10 instead of 0
	INSTALL is moved to INSTALL.txt for OS X now
	added detachBuffer, detachString to variablebuffer, stringbuffer
	added split to charstring class
	added shmfile class
	moved sleep methods into snooze class, changed sleep() to macrosleep()
	cleaned up xmlsax class a bit
	fixed problem where xml comments had ! prepended to them
	added write()/append() methods for all primitive types to
		variablebuffer/stringbuffer classes
	added parseNumber()/integerLength() methods for all primitive types to
		charstring class
	added variables() to environment class
	regularexpression::match() fails immediately if string is NULL now
	#ifdef'ed out OCRNL, ONOCR, ONLRET in serialportprofile for mac os x
	added process class
	updated config.guess
	uses c++ casting operators now
	fixed a bunch of const-related messes
	added rudiments namespace
	retired errorhandler class
	implemented copy constructors, = operators for many classes
	charstring class doesn't use strndup or strdup anymore so
		strings created using malloc aren't freed using delete[]
	removed errant connect() definitions from inetclientsocket,
		unixclientsocket
	added WNOHANG back to waitpid() call in daemonprocess class and made
		sure the call gets restarted if it's interrupted by a signal
	added .PHONY makefile flag, removed INSTALL -> INSTALL.txt hack
	added /usr/sfw to configure scripts search paths
	added error class
	added /sw to configure script search paths
	added -Wno-long-double if system supports it
	moved inetserversocket::getClientAddress() to
		filedescriptor::getPeerAddress()

0.27 - added (slightly modified) pkgconfig stuff from Dolphpower's pkgconfig
		patch
	fixed comment detection in xmlsax
	STRIPPROG is set before calling install-sh now
	made return value of pass/receiveFileDescriptor a bool
	fixed filedescriptor::safeRead(); when trying to read more bytes than
		are available, it now returns the number of bytes read rather
		than 0
	updated rudiments-config and pkgconfig scripts to include pthreads/ssl
		libs and cflags
	added optional ssl support to filedescriptor class and all child classes
	added optional pcre support
	re-engineered regular expression class
	xmlsax class uses mmap if it's available
	inet/unix client/server sockets inherit from generic socket class now
	added blocking/non-blocking mode switches to filedescriptor/socket class
	added support for connect with timeout to socket client classes
	changed (void *) cast to (const void *) for setsockopt calls
	added check for (const void *) vs. (const char *) for setsockopt calls
	added setDelimiter method to parameterstring class
	added support for cygwin >=1.5.7-1
	added search for gthreads to configure for SCO
	added netToHost/hostToNet virtual methods to fildescriptor class,
		override them in datatransport class to call ntohl/ntohs
		and htonl/htons, removed a bunch of read/write methods from
		datatransport
	added primitve xml path methods
	added static getLength() method to charstring class
	added wait() with timeout methods to semaphore class
	added chown/fchown,unlink,rename,link,symlink,readlink,fsync,fdatasync,
		utimes,mknod,mkfifo,mkstemp,access,xattr-related function
		wrappers to the file class
	added basename/dirname methods and ftok wrapper to file class
	added a few pathconf wrappers to file class
	added dup/dup2 wrappers to filedescriptor class
	added directory class
	removed static methods that took an "int fd" from file class
	added device class
	added intervaltimer class
	reworked filedescriptor/client/server heirarchy to reduce size of
		library's data segment
	added test for crypt.h
	made charstring/rawbuffer classes NULL-safe
	added zero method to rawbuffer class
	no stripping is done at compile, link or install time now
	added getMonthName/Abbreviation to datetime class

0.26.3 - updated spec file to work on suse 9.0
	config.mk uses includedir instead of incdir now
	docs are installed in ${datadir}/doc/rudiments instead of
		${prefix}/doc/rudiments now

0.26.2 - fixes for Mac OS 10.2 and Fedora Core 1 compatibility
	timezonefile class build is now independent of datetime

0.26.1 - a couple of build fixes
	added shadowentry, serviceentry and rpcentry classes and test programs
	reorganized *entry class code a bit to generate smaller code
	uses -pipe compilation flag now if possible
	-fomit-frame-pointer -fno-exceptions are used now, debugging
		build just uses -fno-exceptions
	rpc/rpcent.h is included if necessary for getrpcbyxxx_r
	rpc/rpc.h is included if necessary for getrpcbyxxx_r
	pthread.h is included for xxxentry classes now no matter what
	shadowentry is disabled on systems that have no shadow support
	added filesystem class
	added test for s_warn, s_inact, s_expire and s_flag in struct spwd and
		compile in support for them if found in shadowentry class
	applied Taguchi Takeshi's listener and inetsocketclient patches
	check for shmat()!=-1 instead of shmat()>-1 in sharedmemory class now
		as a memory address could actually be larger than 2^31-1 (or
		2^64-1), appear to be negative and still be valid as long as
		it's not -1
	fixed rpm 4.1 doc-install complaints
	added --enable-debug option to configure, only 1 library is built now
	fixed xmldomnode::getNextTagSibling()
	reworked xmldom relationship in dtd class
	fixed ssize_t safeSelect() -> int safeSelect() declaration
	updated config.sub, config.guess and ltmain.sh
	made a bunch of methods return bool instead of int
	renamed string class charstring to avoid stl collision

0.25 -	doc's mention genericsocket class now
	configure script figures out rpm build directory better
	added rudiments-config script
	Makefile.in's are just Makefile's now
	read/write methods return ssize_t's now
	added logger class and logdestination classes
	implemented totally different client/server class structure
	renamed lots of methods to just read(),write(),open(),close(),etc.
	added xmlsax,xmldom,xmldomnode class
	added errorhandler class
	made other classes report errors through the errorhandler class
	added SONAME_VERSION_INFO and WITH_LIBTOOL variables to config.mk (fmw)
	added the debian directory (fmw)
	added memorypool class
	made lots of (char *)'s into (const char *)'s.
	made lots of methods const methods
	inlined lots of methods
	used autoconf/autoheader 2.53
	made libtool build the default
	made build process cross-compile-friendly
	added --with-system-libtool option to configure (fmw)
	added fileproperties class (wrapper for stat/lstat)
	added conectiondata class for use with clienttransport children
	added right/left justify and center methods to text class
	added --debug-profiling-libs to rudiments-config
	added stringbuffer class, made errorhandler use it
	added --enable-small-code and --with-inlines to configure script
	added -fno-exceptions to default CXXFLAGS
	added variablebuffer class
	added dtd class
	uses reentrant getpw/getgr functions if available
	uses reentrant gethostbyname/getprotobyname functions if available
	uses localtime_r function if available
	uses static instead of dynamically allocated variables now where
		possible
	configure defines -DSMALL_CODE=1 so routines can be written one way
		or the other
	moved fileproperties class into file class
	incorporated matthias saou's spec file instead of mine, added devel
		package to it
	removed make rpm target and associated cruft
	removed kdevelop files
	uses RUDIMENTS_INLINE instead of just INLINE to avoid conflicts
	added slackware packaged build target
	added support for gcc-3.2.2
	added a features.mk file so features could be compiled in/out
	moved text class stuff into string class
	removed unnecessary -pedantic from CXXFLAGS
	added linkedlist/dictionary classes, other classes use them instead of
		implementing their own lists/dicts
	added environment class
	datetime class handles timezones properly now
	added mutexes to datetime, *entry classes
	added read/write with timeout methods to filedescriptor/datatransport
	inetsocketclient uses getaddrinfo_r now if possible

0.24 -	fixed poor linger implementation
	added options for SO_REUSEADDR
	added simple/complex port initilization methods to server class
	added options to server/client class to automatically retry reads that
		were interrupted by signals
	spec file takes libdir, incdir, prefix and exec_prefix into account
	added support for file descriptor passing over unix sockets
	server/client classes split into genericsocket, serversocket, 
		clientsocket classes
	serversocketpool class added which can listen on an 
		arbitrary number of ports
	make generates a profiling version of librudiments.a now
	test programs are statically linked now
	added create/attach and createOrAttach methods to semaphoreset class
	semaphoreset correctly cleans up now
	include files moved to rudiments subdir of incdir
	in genericsocket class, reads which didn't get all of the data but
		did not encounter an error keep trying until all the data
		is read now
	safeRead handles count>SSIZE_MAX and eof conditions correctly now
	setuid/setgid were replaced with setreuid/setregid
	added #include <netinet/in.h> and defined _XPG4_2 around 
		#include <socket.h> for solaris8
	tests don't build by default now
	clientsocket correctly checks for connect() error now

0.23 -	fixed stupidity where semaphoreset destructor was trying to
		individually delete all of the semaphores in a set rather
		than just the whole set at once

0.22 -  added support for "make rpm"
	added lingerOnClose and disconnectClient calls to svr.C test program
	check for ld -G vs ld -shared

0.21 -	got rid of some compiler warnings
	made client/server write/read methods use unsigned long/short
	added strip commands to text class
	made configure script take --includedir and --exec-prefix into account
	added return values for disconnectClient(), stopListening() and 
		closeConnection() methods in client/server classes
	added linger socket options to server/client classes

0.20 -	changed DYNAMICAR to use ld -G -o instead of g++ -Wl,-G -o, it was
		putting an undefined main symbol in the library which java
		doesn't like
	tries=0 in client class causes the client to loop infinitely now
	changed daemon class name to daemonprocess to avoid conflict with
		daemon function in unistd.h
	made daemonprocess signal handlers pointers and handled them as such;
		not doing so and using ld -G -o to create the library caused 
		any program using the daemonprocess class to crash
	client class reports a "failed to connect" error only after it's tried
		for the number of times it's supposed to try, not each time
	added server/client programs to the test suite

0.19 -	added test suite
	simplified random number scaling code
	added negative number tests to random number tester
	changed randomnumber to prefer rand/srand over nrand48/srand48
		because SCO's RAND_MAX is 2^15-1 but it's nrand48 returns
		a number between 0 and 2^32-1 which caused scaling errors
		but it's rand returns a number between 0 and 2^15-1.
	added a getRandMax method to the randomnumber class
		
	

0.18 -	getUnixServerPort() returns NULL now if the unix socket was never
		opened in server class
	initialized serverportin in server class
	initialized serversock in client class
	made a bunch of methods static 
	rolled casechange, trim and encoding classes into text class
	totally changed random number class
	added setUsername/setGroupname methods to semaphoreset class
	daemon class handles SIGCLD by waiting on dead child processes 
		on it's own now
	changed several method names in the server class
	some tweaks for microsoft platform compatibility
	added a permissions class
	changed some method names in the signalhandler class
	added documentation to all of the header files
	added signalset and signalmanager classes
	changed signalhandler.h/C to signalclasses.h/C
	added programming examples to documentation
	added isNumber/isInteger methods to text class, made them both 
		recognize negative numbers
	make clean now removes the .pics directories that Konqueror makes


0.17.1 - quick-fix: closeServerSocket() doesn't unlink the unix socket anymore

0.17 -  added some new methods to the regularexpression class
	added datetime class

0.16 -  got rid of some unnecessary strlen()'s
	fixed some "I wasn't such a good programmer back then" errors
	removed idiotic readFromXXX(char *buffer) functions which had no
		length parameters from client/server classes
	added methods to daemon class so it can run as a given user/group

0.15 -  tweaks for gcc-2.96

0.14 -	added more writeToServer/writeToClient and readFromServer/readFromClient
		methods for writing/reading non-character data
	added chdir("/") and umask(0) to detach() method in daemon class
	closing a unix socket unlinks the associated file now
	added socket option SO_REUSEADDR to inet sockets in server class

0.13 -	removed redundant -fpic and unnecessary -DPIC
	added #include <sys/types.h> to regularexpression, sharedmemory and
		semaphoreset classes
	allowed c++ to be used instead of forcing g++
	changed check for integer signal handler type
	fixed a few memory leaks
	preliminary CYGWIN support
	added detach method to daemon class, must be explicitly called for the
		daemon to detach from the controlling tty.

0.12 -	added Unix Domain support to server and client classes
	removed the extern "C" { #undef __cplusplus ... #define __cplusplus }
		stuff, it caused more trouble than it overcame
	build improvements
	error messages go to stderr now and include the strerror() of the
		error number
	detect signal handler function signature
	changed signal handler function signature to void handler() from
		void handler(int) for greater compatibility
	added randomnumber class

0.11 -	added sharedmemory class
	removed select from the readfromfileptr routine 
		(wasn't supposed to be there anyway)
	made wait() and signal() semaphoreset class members not use SEM_UNDO
		by default and added waitWithUndo() and signalWithUndo() 
		members

0.10 -  added select before accept in server class

0.9 -	documentation improvements and fixes
	added -fpic -fPIC -DPIC to CXXFLAGS
	added extern "C" and #undef/#define __cplusplus in various places
	added modes to install scripts
	fixed the server class to allow connections using INADDR_ANY

0.8 -	build fix: made calls to "test" more compatible

0.7 -	cleaner build
	client::openConnection now tries to connect to all the addresses that
		a hostname resolves to before giving up
	client::openConnection fails gracefully if gethostbyname or
		getprotobyname fails

0.6 -	removed LDFLAGS from config.mk
	general Makefile maintenance

0.5 -	documentation installs now
	detection of union semun at configure time
	reingineered Makefiles to be frienlier to non-gnu make

0.4 -	more robust build/install/uninstall

0.3 -	configure based install. 
	Reorganization of includes.
	make install/uninstall directives.
	Got rid of RCS.

0.2 -	bug fixes.
	
0.1 -	First release.
