Changelog started 20.04.2006.

12.06.2006:
	* bugs: fixed some small compile time-uglies.
	* version: 0.1.4 alpha - "stable" release, added to freshmeat.
	
04.06.2006:
	* STOR: added support for copying files from local machine to remote
	ftp.
	* structure: modularized further, for readability and clarity.
	* bug: fixed bug having ecp segfault on unknown command line options.
	* ftp: added signal handler to flush the file buffers on SIGINT, so REST might
	actually have a chance to work.
	* REST: added support for resuming broken downloads
30.05.2006:
	* port: added support for using other than default ports.
	* bugs: fixed a whole crapload of bugs in the ftp routines, but there
	are still some left. Like errorchecking being less than optimal.
	
28.05.2006:
	* version: 0.1.3 beta.
	
27.05.2006:
	* ftp: rewrote alot of the ftp functions, now they actually work on all
	the ftp test cases.
	* do_copy: rewrote a portion of do_copy, not integrated into the main 
	program yet, though. aiming to make it a little more on point.
	
25.05.2006:
	* memory: cleaned up some memory leaks here and there, forgetting to
	free.
	* ftp-parser: wrote a basic syntaxparser for downloading files from 
	an ftp. the syntax follows ftp://user:pass@server/dir/file
	* ftp-constants: defined a lot of the return codes that an ftp server
	can yield.
	
23.05.2006:
	* ftp: wrote most of the ftp functions. they aren't integrated into
	the main ecp program yet, but they connect and retrieve files now.
	* bugfix: small fix of single files being copied wrongly if source(s) are
	crazy socket-files.
	
21.05.2006:
	* ftp: started work on basic ftp functionality.
	* Makefile: now has make install to copy the binary into /usr/local/bin
	
13.05.2006:
	* portability: made detection of PATH_MAX a little more
	portable.
	
12.05.2006:
	* bugs: fixed a fiew bugs relating to pathnames.
	* recursion: started sketching out the details of deep 
	recursion. 
	
09.05.2006:
	* options.kill: now fully implemented, in a very crude and dirty way. 
	it chmod's every target 0777 before calling remove(), which could 
	potentially be very, very ugly.
	* bug: fixed a bug that resulted in too many open files when copying 
	large trees.
	* version: now 0.1.1 Zeta.
	* bugs: cleaned up alot of ugly hacks, and made ecp clean up after 
	itself even when it makes a nasty.
	* structure: rewrote do_copy so it no longer stat's the destination 
	file, but gets sent a bool to tell it if it is copying to a directory
	or not.
	* memcpy: cleaned up a couple of unnecessary memcpy's and mallocs.
	* version: decided to go with traditional alpha/beta-setup rather than
	all the greeks, even though I like them very much.
	* options.p-syms: is now d-syms, a little more consistent.
	* options: some small details in the --help output fixed.
	
08.05.2006:
	* structure: rewrote do_copy to use memory mapping instead of consecutive
	read/writes (still writes, though).
	* speed: increased slightly, but it is still not optimal.
	* bug: fixed new bug introduced by mmap, problem copying file of size 
	zero bytes.
	* options.hreadable: now makes a little more sense.
	
07.05.2006:
	* structure: rewrote a small part of the do_copy structure, more changes
	are planned.
	* bool: buttoned up some inconsistent use of bools.
	* planning: need to map out a layout of which options do what to the 
	other ones.
	
06.05.2006:
	* output: changed limit of b/kB from 1000 bytes to 1000000 (1 mb)
	* options.hreadable: implemented a bare bone human readable option
	* symlinks: ecp now handles symlinks a tad more intelligently, rather
	than going bonkers and reporting that it has copied 50000%
	* symlinks: default behaviour of ecp is to keep symlinks, and use option
	-s to dereference them. this is contrary to cp's practice. until I see
	a good example of why it should be defaulting to dereferencing, I will
	keep it this way. it seems logical.
	* version: 0.1.1 Epsilon.
	* mkdir: fixed a small bug that made copying read only directories very
	difficult.
	* hidden: fixed up some small issues with hidden files.
	* symlinks: working well and proper (it seems)
	* unification: started unifying ecps messages
	* options: improved handling of unknown command line options
	* memory: picked up on some possible memory leaks and corrected them, as
	of now the program can account for every byte it mallocs. one bad bug was
	not freeing the memory allocated by opendir.
	
05.05.2006:
	* options.remove: renamed to options.kill (option -r reminds just a 
	little too much	of -R)
	* options.symlinks: got a rudimentary symlinks-routine going
	* bug: fixed prefixing recursive copy with ./ etc. 
	* bug: fixed problem with files existing with same name as directory ecp 
	is trying to create.
	* newbug: when encountering a symlink, the percentage counter flips out 
	completely.
	* version: 0.1.1 Delta.
	* errorchecking: improved errorchecking dramatically. ecp now creates 
	directories correctly, responds correctly when target directory does not 
	exist, and generally behaves a lot better.
	
04.05.2006:
	* options.remove: removes files now (and almost directories, except for 
	empty ones)
	* bug: fixed a nasty bug making recursive copying behave badly
	* newbug: found that if a file exists under the name of a directory ecp 
	is trying to create, it really goes all nuts. should be an easy fix, but 
	no time now.
	
03.05.2006:
	* 0.1.1 gamma: version change, small fixups, public release.
	
28.04.2006:
	* chmod: permissions now get set correctly for all files and directories.
	* 0.1.1 beta: version change.
	* argv/argc: better checking of what actually gets passed to us at the 
	command	line.
	* types: more consistent use of types (ssize_t)
	
27.04.2006:
	* base: made some improvements to the base function in dir.c (no longer 
	uses strlen, resources saved :)
	
26.04.2006:
	* mkdir: fixed a stupid bug that made mkdir create directories with 
	wrong permissions
	
25.04.2006:
	* options.create: now works. it feels a bit hacky, so it needs 
	modification.
	* options.quiet: implemented silence.
	* options.remove: removes source directory.
	* options.symlinks: preserve symlinks instead of flattening them (_does 
	not work_).
	* version: went from 0.0.1 beta to 0.1.1 alpha, started employing old 
	linux kernel versioning system. odds are unstable, evens stable. (this 
	goes for all numbers) minor edits will be indicated by greek alphabet 
	letters.
	* options.update: copy file only if newer or non-existing
	
24.05.2006:
	* copy_recursive: started full rewrite of recursion functions, since
	they were acting up.
	* options.create: added option for creating destination directory if
	it does not exist already (not implemented).
	* options.no_zero_bytes: implemented
	* options.no_hidden_files: implemented
	* argc: actually checks to see if the program receives the right number
	of arguments now (very crudely).
	* 0.0.3 beta: went from alpha to beta.
	* remove_trailing_slashes: improved to actually work right.
	* argc: real checking of arguments, and working copy-loop
	* realpath: reduced usage of realpath to a bare minimum (one call at
	the moment.
	

23.04.2006:
	* base: own basename (base in dir.c) function to replace library one.
	* utime: program now supports --preserve option, to preserve atime 
	and mtime.
	* rpath: started function to find the real path of a file/directory.
	* PATH_MAX: became aware that PATH_MAX is actually 4096, added some
	hackish #ifdef PATH_MAX-stuff to copyfun.h.
	* Makefile: fixed a major, and fantastically unnoticed, bug.
	* #ifdef DEBUG: started using this for debugging purposes, instead of
	always flowing the screen with info.
	* strerror: went from using to strerror(errno).
	* struct opt options: struct now passed into copy_recursive and do_copy

20.04.2006:
	* copy_recursive: now checks inode number of original file against 
	target.
	* init_progress: function introduced.
	* permissions: are now kept through the copy (still no keeping of
	times, though.
	* filesize: support for bytes of size < 1000 and size 0, now we get 
	progress for them.
	* structs: updated and refined.

