Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > f2e1f2901005dc55ba3b221942c863c8 > files > 3

ripmime-1.3.0.2-1mdk.ppc.rpm

CHANGES---------------------------------------------------------------
Mon Mar 17 2003
	- PLD: Emergency release of 1.3.0.2

	- PLD: Fixed major bug in the MIMEH_headers_read() call which would 
		cause the first line of the headers to be overwritten by following
		lines ( in memory ) - Ultimate effect of this is that several files
		would not be decoded because the vital file information would be
		lost.

	- PLD: Unified logging output across all modules

	- PLD: Fixed space retention on header-wrapped filenames ( again
			thanks to Kees Damen for providing a suitable mailpack )

Fri Mar 14 2003
	- PLD: Fixed linewrap filename issues in headers ( thanks to Kees Damen
		for pointing this issue out ).

	- PLD: Fixed 0 length string issue with PLD_strncpy and replaced 
		existing algorithm with a more robust one as provide by 'Defrost'

	- PLD:  Rolled in unified pldstr module which replaces strlower,
		XAM_strtok and zstr.

	
Sat Mar 01 2003
	- PLD: Patched parameter parsing code to allow it to accept non-space
		seperated parameters, ie, -d/tmp ( Patch supplied by Bernard Fischer )

Sat Feb 22 2003
	- PLD: TNEF: Corrected pointer clobbering on 64-bit systems in TNEF decoding,
		and added memory allocation free'ing.  Both patches submitted by
		Bernard Fischer and adapted by PLD

Thu Feb 19 2003
	- PLD: Fixed content-type 'trailing' issue causing ripMIME to report
		the previous content-type if the new attachment headers did
		not contain a content-type. ( Mailpack contributed by Bernard Fischer )

Wed Feb 19 2003
	- PLD: Converted command-line options to use hyphens '-' rather 
		than underscores '_' for word seperators.  NOTE, the old
		underscore seperators will still work but they are considered
		depricated.

	- PLD: Added multiple additional verbosity options:
		--verbose-oldstyle : Output information in the format
			used from the 1.2.x series of ripMIME
		--verbose-contenttype : Output content-type information
			of each file decoded ( Contributed by Thomas E Dell )

	- PLD: Introduced a new verbose information format for file details.
		The new format uses name=value pairings for the output, this
		allows parsers to easially decode the output into useful data
		if need be.  An example of the output is now:

		Decoding content-type=text/html filename=foobar.html

		Currently only 'content-type' and 'filename' are reported but more
		options will most likely be added in the future.
		

	- PLD: Commenced v1.3-dev development.


Fri Feb 07 2003
	- PLD: Released as 1.2.17.0 ( This is the last 1.2.x release, we
		will now move to 1.3-dev and 1.4-stable releases

Thu Feb 06 2003
	- PLD: Corrected testing conditions of the name= substring to test for
		both a space OR a ';' (semicolon) in order to accept the value
		after the 'name=' as being a filename.
		(Thanks to Marc Bleuwart for the supplied mailpack exhibiting this
		issue )

Wed Feb 05 2003
	- PLD: Added total BASE64 decode line count output for failed decoding
		operations when in --debug mode

Sat Feb 01 2003
	- PLD: Corrected some *_init() calls and *_set_verbose() as well as
		*_set_debug().

	- PLD: Broke down the mime.c file into some smaller modules:
		boundary-stack.[ch] - Handles the boundary string ordering for
			the mailpack decoding.

		filename-filter.[ch] - Performs basic filename sanity / paranoia
			checking.

		uuencode.[ch] - A bit of a misnomer, this module currently deals
			with the detection and decoding of uuencoded data.

	- PLD: Merged 3 string handling modules into one.  While this seems to go
		against the flow against the move to modularise the mime.c file
		it is better to have the files XAM_strtok, zstr and strlower all
		merged as they are all part of the same family of strings handlers.

	- PLD: Moved ISO decoding to directly after all the headers have been read
		and a "true blank" has been received.  This way we do not have to
		worry about decoding the individual components of the headers, rather
		they are presented in an already decoded form when the calling program
		gets back the header pointer.

Fri Jan 31 2003
	- PLD: Reordered the MIME_decode_filename() function so that it attempts to
		decode ISO filenames -before- any paranoia filters are applied.  This
		is because certain BASE64 characters ( ie / ) are interepreted as
		paranoid invoking characters, thus are stripped from the filename 
		before ISO decode gets to use them.

		Thanks to Michal Perchel for supplying the mailpack exhibiting this
		property.


Tue Jan 28 2003
	- PLD: Replaced MIME_read() fgetc/fputc calls with a fread/fwrite binary
		functions to prevent ripMIME from terminating its file/stdin reading
		too soon if it received an EOF character.

Mon Jan 27 2003
	- PLD: Corrected segfault in parameter parsing if the last parameter was 
		a -d, -i or -p.  Whole parameter parsing block moved to its own
		function.

	- PLD: Replaced scandir() calls in mime.c ( for post-decode cleanup ) with
		opendir()/readdir() - Solaris ( and possibly other OS's ) have 
		different implementations of scandir() compared to Linux/BSD

	- PLD: Silenced several messages in MIME_headers and MIME tnef decoding which
		were appearing despite having -v selected

Sun Jan 26 2003
	- PLD: in MIME_decode_filename(), removed limitation of filenames only having
		a space character and lengths greater than two (2).

	- PLD: Corrected header unfolding in MIMEH_read_headers()
		This rectifies the situation where some filenames are cropped because they
		were spread over two lines in the headers.

	- PLD: Moved ISO decoding functions and QuotedPrintable functions into a new
		module called 'libmime-decoders'.  

	- PLD: Initialised encoding_type in the ISO decoding routines in order to 
		silence some compilers about a 'usage unitilised' warning.

	- PLD: Corrected situation where an attempt to extract a file name would
		be misled due to a substring 'name' appearing anywhere within headers.

		Narrowed down the conditions required in order for a 'name' word to appear.
		This corrects the issue as reported by Chris Hine

	- PLD: I've sorted out the Quoted-Printable decoding
		issues.  Who would have thought such a relatively simple 
		decoding process could cause so much pain.  As a consequence
		some of the prior 'patches' have now been removed as they are
		no longer needed. ( removed patches: Mirko Buffoni )

Sat Jan 25 2003
	- Planning on releasing as 1.2.17.0

Fri Jan 24 2003
	- Created a new function to handled decoding of ISO encoded strings, now called
		MIME_decode_ISO().  This function is used by MIME_decode_filename() and
		will also be used by any programs wanting to decode other ISO encoded strings
		such as email addresses and such.

	- Removed MIME_init_hexconv() call ( which previously setup the BASE64 conversion
		matrix - but we now have a compile-time static array setup for that )

	- Renamed 'quick_clean_filename()' to be MIME_filename_paranoid_filter()
		which is called from within MIME_decode_filename()

	- Renamed MIME_clean_MIME_filename() to MIME_decode_filename() as its
		primary function is mostly to handle ISO decoding as well as path
		prefix stripping.

	- Deprecated --no_paranoid and rather added in --paranoid. 
		Setting --paranoid on will result in any high-ascii
		characters to be set to _'s

	- Changed void return value of quick_clean_filename to 'int'

	- Added testing of '=' char prior to a ? for testing presence of
		an ISO encoded filename in MIME_clean_MIME_filename()

	- Added functional handling of ISO encoded filenames in headers
		( see MIME_clean_MIME_filename() ).  Still need to merge
		the functions of MIME_clean_MIME_filename() and quick_clean_filename()

Wed Jan 22 2003
	- Corrected functioning of --no_nameless operations.

Tue Jan 21 2003
	- Added trailing \n break after decoding a QuotePrintable line
		(submitted by Mirko Buffoni )


Mon Dec 16 2002
	- Corrected soft-break decoding of Quoted-Printable encoded data

Tue Nov 12 2002
	- Released as 1.2.16.21
	- Updated FFGET module to 1.0.0.3 release - fixes garbage-end
		problem with some BASE64 decodes which don't terminate
		their data with a \n[\r]

Sat Nov 09 2002
	- NOT-RELEASED (internal use only, see 1.2.16.21)  1.2.16.20
	- Changed the strlower() function to use unsigned char rather
		than signed char, this allows for non-ASCII conversions
		on the tolower() call without breaking (ie on non-english
		character sets)

Wed Nov 06 2002
	- Released as 1.2.16.19
	- Added a patch from Phil Brutsche to deal with space-embedded
		filename, name MIME fields.


Fri Oct 11 2002
	- Corrected segfault when a filename with a \" ending was encountered
	- Cropped filenames with ? in them which are NOT ISO encoded to only
		include the part before the ?

Thu Oct 10 2002
	- Updated the logger file which contained a segfault issue
		when sending a string containing a % symbol to syslog.
	- 

Wed Jun 26 2002
	- Added MIME-headers save-file closing function. This prevents
		a segfault when MIME_unpack() is called multiple times
		within the same program.

Fri May 31 2002
	- Release as 1.2.16.16
	- Fixed same issue for Double-CR saved files
	- Failure to prefix the unpackdir onto the recursive decoding of 
		mailpacks extracted from within mailpacks (ie, EML files) caused
		extractions to directories other than the present-working-dir to 
		fail [partially] due to not being able to locate the newly created
		/ extrated mailpack.
		
		That teaches me to 'ignore' the warnings that were popping up in my
		syslogs about 'Cannot locate file'.
		
		
Sun May 26 2002
	- Release as 1.2.16.15
	- bug causing ripMIME to enter into an infinite loop if the boundary
		contained the phrase "boundary=" within it.  Thanks to
		Steffen Clausjuergens for supplying the mailpack exhibiting
		this defect!

Sat May 25 2002
	- Release as 1.2.16.14
	- Minor bug in FFGET_raw() causing missing of decoding due in 
		mailpacks which have mixed EOL definitions, ie, the 
		email uses \n only in the main headers, but then switches
		to \r\n in the bodies [ Can someone /PLEASE/ tell me why
		any peice of email software would do this !?!? ]

Wed May 22 2002 
	- Release as 1.2.16.13
	- Corrected block-boundary read line error with FFGET_fgets()
	- Corrected segfault error with UUDECODE due to XAM_strtok() 

Sun May 12 2002 (Mothers Day - Be nice to your mother and take the day off
		from IRC'ing or sufing the net)

	- Release 1.2.16.12 .... one day I'll release 1.2.17.0

	- Improved nested decoding.  There was a very strange size-specific
		decoding mishap which was causing some packs to unpack 
		flawlessly, others to fail, with the only difference being that
		one had more than 1089 bytes of headers. Cleaning up the memory
		leak issues resolved it.  Though I'm always a bit fearful of
		such dissapearing bugs.

	- Cleaned up memory free'ing, used 'ccmalloc', nice little tool
		I recommend it to people trying to at least get a coarse
		view of what is being left out. I found that simply by fixing
		up the memory leaks I had, one of my "wierd" bugs went away
		very nice of it.

Tue May 07 2002 pldaniels@pldaniels.com
	- Added new function to MIME_headers object, to return the
		current status of the headers save status. This allows
		us to prevent opening up multiple FILE *'s on the same
		named _header_ file, potentially causing corruption
	- Removed the "WARNING: Possible pointer size being sent" debugging
		message.

Tue Apr 30 2002 pldaniels@pldaniels.com
	- Updated TNEF with patch supplied by Joe Gooch (Thanks Joe)
		corrects segfault when decoding certain TNEF's.
	- Added new function in FFGET.  FFGET_set_watch_SDL() tells FFGET
		to either be watching out for ^M^M sequence, or not to
		(1, 0 respectively).  This is required so that we can 
		prevent ripMIME from interpreting the ^M^M sequence if it's
		found in the email BODY as a SDL-Outlook exploit.
		Thanks to Elio de Santi for the mailpack which revealed this

Fri Apr 26 2002 pldaniels@pldaniels.com
	- Lots of fixes in the FFGET routines. Including the introduction
		of a two-stage FEOF status.  Initially we mark that we've
		reached the end of the /real/ file by flagging FILEEND, 
		then, when we actually try to read a new data block using
		FFGET_getnewblock() we flag FFEOF.  Previously we'd flag
		FEOF too early. This would cause corruption of various 
		attachments.

Tue Apr 23 2002 pldaniels@pldaniels.com
	- corrected memory leak causing "Killed" messages on large 
		mailpacks with lots of text/print-quotable attachments
Mon Apr 22 2002 pldaniels@pldaniels.com
	- Re-tuned the UUencode line detection sequence.  If anyone is
		aware of a /precise/ method to detect a uuencoded attachment
		in mailpacks, both as RFC and Outlook[stupid], please email
		me on pldaniels@pldaniels.com

Fri Apr 19 2002 pldaniels@pldaniels.com
	- Corrected FFGET_fgets() function which was returning NULL 
		one call too early.  Rather than sending back the last
		"partial" line read (end of buffer), it would assign
		the data to the buffer, but also return NULL, which 
		caused some programs to exit early from their reading
		loops.
		
		I'm actually quite surprised things even worked with
		this error... amazing what can slip by.


Sun Apr 14 2002 pldaniels@pldaniels.com
	- Corrected _headers_ file output location, which was defaulting
		to the execution dir, rather than the unpackdir

Fri Mar 08 2002 pldaniels@pldaniels.com
	--Released as 1.2.16.6

	- Added ability to decode "x-uuencode" files even though this
		type technically is not specified by the RFC's (one 
		should be using BASE64 or QuotePrintable.

	- Corrected UUencode filename extraction from the header 
		triple

Thu Mar 07 2002 pldaniels@pldaniels.com
	--Released as 1.2.16.5

	- Fixed XAM_strtok() call which was occasionally failing if
		there was a delimeter at the end of the string.

Wed Mar 06 2002 pldaniels@pldaniels.com
	- Renamed zstrncpy.[ch] as zstr.[ch] as it's becoming a generic
		library with more than just the zstrncpy function in it.
		It now contains the zstrncat and zstrncate calls

Tue Mar 05 2002 pldaniels@pldaniels.com
	--Released as 1.2.16.4
	
	- Replaced all strncpy and strcpy routines with zstrncpy() calls.


Sun Mar 03 2002 pldaniels@pldaniels.com
	--Released as 1.2.16.3
	
	- Replaced file write routines in BASE64 and UUDEC decoders so that they
		use buffered write (reduces the number of fwrite() calls. This
		also gained another 10% of performance over direct write.

Sat Mar 02 2002 pldaniels@pldaniels.com

	- Replaced in MIME_base64_decode() the FFGET_fgetc() call with a direct 
		source code from the FFGET_fgetc() routine. Whilst this does mean
		that I will have to keep track of the changes I make in FFGET_fgetc
		and ensure that I port them across to the BASE64 decode routine, it
		does make for a good 10% gain in performance as shown on a 80Mb data
		test suite.

	- Converted Base64, Hexconv and UUDEC routines into static (compile time)
		fixed tables so that there isn't any need to build them each
		time the program is run. This saves us on startup time, although
		minimal, it does help.

Thu Feb 28 2002 pldaniels@pldaniels.com
	- Released as 1.2.16.2
	- Updated FFGET routines with patch as supplied by J.Gooch
	
Tue Feb 26 2002 pldaniels@pldaniels.com
	- Moved to 4 digit version numbers

	- Added f->FFEOF = 0 to the ffget_set_stream function.  Was causing
		an intermittent FEOF() status based on random data without
		it being there.

Sat Feb 23 2002 pldaniels2pldaniels.com
	- Committed ripMIME to local CVS

Wed Feb 20 2002 pldaniels@pldaniels.com
	- Releasing as v1.2.16
	- Cleaned up FFGET routines and added more comments.
	- Added new DEBUG mode selection routines.  Now debugging can be
		activated on a per-level basis, with (default) now there being
			*_DNORMAL == Debug normal
			*_DPEDANTIC == Pedantic debugging (lots of output)

		ie, in mime.c, there is now lines like

			if (MIME_DPEDANTIC) fprintf(stdout,"%s",line);

		This replaces the existing non-level sensitive routines of

			if (_MIME_debug) ....


	- HUGE stuff up.  Non-quoteprintable encoded text files were not
		being written out because I accidently left out the fprintf
		statement in MIME_decode_text() routine... REALLY bad MISTAKE.
		This was causing text files to be written out as 0-byte files.

		Fortuntely this error was picked up by the Xamime testing suite.

	- Releasing as v1.2.15 (I wonder if these releases will stop coming
		out so quickly)

	- _FINALLY_ fixed TNEF decoding, many thanks to Chea Chee Keong
		for the help provided, very valuable.

	- Releasing as v1.2.14

	- FEOF detection mishandling in MIME_decode_uu() cleaned up (uses
		the FFGET_feof() call rather than feof(), which (the feof)
		could prematurely return TRUE rather than when FFGET returns
		true, this is due to the fact that the FFGET routines will
		(on the last valid read) read up to the end of the file causing
		feof() to return TRUE, however, until all the data is read out
		of the FFGET buffer, it should not return true.  Hence, all
		routines using feof() were replaced with FFGET_feof()

Mon Feb 18 2002 pldaniels@pldaniels.com
	- Releasing as v1.2.13

	- CRCR logic cleaned up in FFGET_fgets() (thanks to Joseph Gooch for
		his help in resolving the logic routines)
	- Initialisation of ungetc flag in FFGET
	- Removed MIME detection debugging output
	- Added anti \0 poisoning filtering

Sun Feb 17 2002 pldaniels@pldaniels.com

	- Releasing as v1.2.12
		Although I've not had a chance to verify that ripMIME extracts all
		the possible \r explioits which can be used against Outlook/Express
		I am certainly confident it can extract most of them.  I've ran this
		ripMIME against about 600Mb of normal emails, all of which have extracted
		correctly in regression tests.

		I'm _STILL_ seeking more assistance to deal with TNEF decoding.  I have
		one mail pack which refuses to correctly extract, rather it results in
		the TNEF routines attempting to access data beyond the limits of the file
		(yes, it's protected against that, but it's still annoying!)

	- Added FFGET_fgets() true blank detection for reads, this is to
		deal with potential trickery as mentioned in bugtraq regarding
		fgets() falsely returning a single \n as though it was a blank line
		when really, it was just the previous fgets didn't have enough
		buffer space to include the last \n.

	- Corrected file Unique Nameing name cropping.

Fri Feb 15 2002 pldaniels@pldaniels.com

	- Made ripMIME report its version via STDOUT instead of STDERR

	- Changed "Decoding TNEF format" report to report to STDOUT instead
		of STDERR

	- Replaced entire file I/O routines to use FFGET, which now supports
		fgets(), fgetc() and raw-get routines.  This was done so that we
		could (originally) detect the presence of an offending <CR><CR>
		double byte in the headers of some emails which may be used to
		exploit Outlook's interpretation.

	- Fixed zstrncpy which was copying one byte too few when a strncpy
		was done.  This was causing filename crop problems. -NOTE- this
		was primarily due to the fact that the size of buffer specified
		was inclusive of the \0 terminator.... as apposed to an actual BUG

	- Added into MIME_headers the ability to decode "Content-Location"
		to extract filenames from the new Microsoft MHF formatted emails
		(basically it's a bundled together WWW page HTML + images)

Thu Feb 14 2002 pldaniels@pldaniels.com
	- Added header detection of double CR exploit usable against
		MS Outlook (This feature is more of use to programs which
		actively filter against exploits such as Inflex/Xamime

	> Need more help with TNEF decoding!!!!!

Wed Jan 30 2002 pldaniels@pldaniels.com
	- v1.2.11
	- Added ability to decode MULTIPLE UUEncoded attachments within the
		same body of text.

Tue Jan 29 2002 pldaniels@pldaniels.com
	- v1.2.10
	- Corrected mistaken use of 'n' count in UUdecode byte count resulting
		in excessive sized files (with useless data)
	- v1.2.9 released
	- Removed non-used functions MIME_getchar() and MIME_insert_X_header()
	- Added UUDecode routines
	- Added --no_uudecode option

Mon Jan 28 2002 pldaniels@pldaniels.com
	- v1.2.8 released

	- Patch suppled by Tim J. Robbins for buffer-smash as specified by
		BugTraq applied
Thu Nov 15 2001 pldaniels@pldaniels.com
	- Corrected potential buffer overrun situation in raw-decode mode
	- Corrected buffer overrun with MIME_headers which allowed massive
		sized filenames to cause segfaults (Thanks to Tristan Aston
		for bringing this to my attention)
	- Various code cleanups and extentions to the mime.[ch] files to
		deal with new advances in Xamime (http://xamime.com)

Fri Nov 09 2001 pldaniels@pldaniels.com
	- Replaced several sprintf()'s with snprintf
	- Set a global _MIME_STRLEN_MAX length to 1023 and used
	 	with snprintf() to avoid buffer-overflows as reported by
		Tristan Aston (Solaris 8).
	-
Mon Nov 05 2001 pldaniels@pldaniels.com
	- Resolved TNEF segfault issue with some winmail.dat packs which do
		not seem to conform to the standard which we have for the current
		tnef decoding module.  Some winmail.dat packs still dont unpack
		but that's an issue with the MAPI data I believe (anyone want to
		help?)
	- Added "RAW" format for encoding, RAW basically is a slower form of
		read/decode, but, it will at least correctly (??) save non-format
		specified files.  RAW decoding routines are kept in rawget.[ch]
		which is nothing more than a specific version of fgets().  This may
		change later [back to fgets()].  The difference is that rawget
		returns how many bytes it read, because the data returned by a
		binary file may contain \0's which would otherwise fool length
		testing function calls (ie, strlen()) into indicating there are
		less bytes than what there really is.  This could be resolved by
		performing a test for the \n or \r, but it's more overhead.
	- Added patch from Xerox to correct occasional issue with non
		constant BASE64 line lengths (previously used to determine when
		the encoding had finished)

Fri Oct 26 2001 pldaniels@pldaniels.com
	- 1.2.5 released
	- Removed mailbox "\n\rFrom " line detection routines out of text
		decoding section, created new function MIME_unpackmailbox()
		which will break apart the mailbox email at at time and feed it
		to MIME_unpack()
	- [mime.c, tnef.h, tnef.c ] Fixed issue with TNEF decoding segfaulting
		if -d param was used in ripMIME
	- [config.h] Cleaned up the __BYTE_ORDER mangling issue by renaming
		as __TNEF_BYTE_ORDER
	- Added numerous debugging messages available by using --debug on
		ripMIME
	- [tnef.c] Removed extensive deadcode from tnef modules
	- [tnef.c] Removed compressed RTF decoding
	- Improved error reporting and messages

Thu Oct 18 2001 pldaniels@pldaniels.com
	- 1.2.4 released
	- Added TNEF decoding ability through use of modified tnef2txt
  		library as created by Brandon Long (blong@uiuc.edu), April 1997.
		As yet, I have not been able to successfully contact this person.


Tue Oct 09 2001 pldaniels@pldaniels.com
	- Updated MIME Boundary stack "cmp" operation so that it pops off
		any boundaries -above- the detected one.  This is because
		technically, all boundaries should be nested in their occurances.
		This is a hoped fix for most of the .eml attachment extraction
		problems that were occuring.

Tue Sep 11 2001 pldaniels@pldaniels.com
	- Cleaned up source and added in more comments
	- Released v1.2.3

Mon Sep 10 2001 pldaniels@pldaniels.com
	- changed the detection string for quoted-printable from
		"quote-printable" to "quoted-printable".  A small, but oh so
		painful mistake!
	- changed boundary line detection in header files to improve the
		detection and extraction of multiply-nested mailpacks

Sun Sep 9 2001 pldaniels@pldaniels.com
	- Improved name= parameter discrimination when headers have mixed in
		<META ... name="..."> components.  Now correctly decodes name= when
		the headers have a <ID 23523535255> type identifier.
	- Changed XAM_strncasecmp and strlower to use inline/macro version of
		isupper / tolower

Wed Aug 29 2001 pldaniels@pldaniels.com
	- Added ability for ripMIME to uncompress BASE64 encoded inline
		mailpacks (these are like forwarded emails, but they've been
		coded up in BASE64 format! I kid you not!)

	- Added Handling for Quote-Printable filenames

Fri Aug 24 2001 pldaniels@pldaniels.com
	- Added recursive calling if mailpack contained encoded mailpack
		ie, when we get a named rfc822/message type attachment.

	- Inserting new code from MIME_headers.[ch] which will do explicit
		analysis of the headers in a single-line stream format. Makes
		things far far easier to deal with later.

Tue Aug 21 2001 pldaniels@pldaniels.com
	- mime.c: added explicit handling of mailbox format (/var/spool/mail)

Fri Aug 03 2001 pldaniels@pldaniels.com
	- mime.c: added --no_paranoid option for filename filtering

Wed Aug 01 2001 pldaniels@pldaniels.com
	- mime.c: MIME_test_uniquename(): used strrchr rather than XAM_strtok()
		to locate the last '.' seperator for filenames. Fixes problem with
		misnaming of multiple .'d filenames.

Tue Jul 31 2001 pldaniels@pldaniels.com
	- XAM_strtok.c: Corrected end-of-tokens bug in XAM_strtok(), would
		return a null string when it should return the remainder of the
		string.
	- mime.c: added additional method for renaming of file
			--prefix
			--infix
			--postfix
	- mime.c: added "--unique_name" function to preserve existing filenames
		when decoding (ie, no clobbering)

Tue Jun 12 2001 pldaniels@pldaniels.com
	- mime.c: replaced strncasecmp() with XAM_strncasecmp() to permit
	portability to sysV and others
	- mime.c: replaced random() call with rand()
	- Added early exit routine for base64 if it detects two consecutive
	hyphens ('-'), this is needed in order to deal with 1-in-1000
	situation where a small file is encoded, and there is no separating
	double CR\LF between the end of the base64 encoding, and the new
	boundary line.


Sun Jun 03 2001 pldaniels@pldaniels.com
	-Release as 1.0.2
	- Fixed occasional issue of a second attachment decoding to 57 bytes
		in a BASE64 decode, added extra test routine for the length
		comparisons so that a length of 0 could not be accepted.
		MIME_decode_64:
				else if (p_length == -1) {
++					if (t_length > 0) p_length = t_length;
				}

	- Replaced strtok() calls with own XAM_strtok() from the XaMime project
		NOTE- This strtok call DOES NOT compress consecutive delimeters like
		strtok. The behaviour of XAM_strtok() is more like that of strsep().

		The replacement was required to ensure thread-safety, as strtok() is
		far from being thread-safe (it's bad enough when you 'accidently'
		nest strtok() calls!. XAM_strtok() can be safely nested.


Mon May 21 2001 pldaniels@pldaniels.com
	- Fixed issue of ripMIME not successfully extracting a RFC822
		"embedded" pack if it started with "From" or ">From"

Mon May 14 2001 pldaniels@pldaniels.com
	- Replaced fgetc() calls in BASE64 decoding routine with a set of
		routines as defined in the new module ffget.[ch].  These new
		routines read in the MIME encoded file line at a time using
		fgets() and then feed out the file char at a time using the call
		FFGET_fgetc(). Speed improvement is nearly DOUBLE thanks to this
		routine (the more BASE64 decodes you do the better.

Mon Apr 02 20:54:45 EST 2001 pldaniels <pldaniels@pldaniels.com>
	- Added new var, _no_nameless[= 0].  If set to something other than
		zero, then any attachments without an internally specified filename
		will be removed (After processing)
	- Added CLI param to turn on no_nameless.

Wed Mar 28 14:26:06 EST 2001 pldaniels <pldaniels@pldaniels.com>
	- Added patch for filename cleaning. Fixed patch to not overwrite '.'s
	- Put MIME_clean_MIME_filename() into action, hopefully ISO filenames
		should be supported without kludgy characters now.

Tue Mar 27 21:39:24 EST 2001 pldaniels <pldaniels@pldaniels.com>
	- Added MIME_get_attachment_count() which returns how many filename'd
		attachments were found.
	- Added in _current_line for the purpose of debugging, good for being
		able to tell where ripMIME is through the reading of a mailpack
	- Added "default" encoding method as being PLAINTEXT in the event
		that there is no encoding format handled specifically (Thanks to
		Hans Arder for supplying mailpack to display this)

Tue Mar 21 <pldaniels@pldaniels.com>
	-PR5
	-a debugging line in the collect_headers fn was causing potential
		encoding-format loss due to absorbing the vital Content-Type
		line.

Fri Mar 16 <pldaniels@pldaniels.com>
	-Prerelease 4
	-Implemented a stack based boundary layer detection system to
		allow for nested in-line attachments, as typically generated
		by drag'n'dropping files to email
	-ISO filename decoding commenced, needing more examples of mailpacks
		with ISO encoded filenames!
	-Created the "daily update" version of ripMIME, to follow suit with
		the new Inflex style of releases.


Tue Feb 13 <pldaniels@pldaniels.com>
	-Prerelease 3
	-Fixed up some quote-printable glitches (pack supplied by
		James Cownie, thanks!)

Tue Jan 30 00:49:51 EST 2001 worker <worker@inflex>
	-Prerelease 2
	-Removed tmpnam() call out of MIME_XHeader() function, not that this
		 is actually ever used by ripMIME (its part of the cInflex suite)
		 thanks to both Dave DeMaagd and Justin (SuidAfrika) for pointing
		 this out to me.
	- Corrected directory naming spec so that there aren't double //'s
		(Thanks to James Cownie for preliminary notification)

	-Changed the 'From' line detection routine to work with both un-read
		(ones with just 'From joe@xxx.bbbb') as well as READ emails (ones
		with '>From joe@xxx.bbbb'). Thanks to Sven for pointing this out
		(Im too used to using pop3-pickup ;) Also allowed the FROM line to
		be detected in the MIME_find_next_header() function.

Sun Jan 28 15:10:49 EST 2001 worker <worker@inflex>
	-v1.0.0 PreRelease 1
	-Added in multiple-email (sequential) and nested (forwarded) email
		attachment extraction support (painful!)
	-Passed ripMIME through several thousand "real life" emails to
		verify extraction ability
	-Modified flag passing structures to contain most in struct _MIME_info
		(required to get nested emails to extract correctly)
	-Allowed user to turn on/off each logging option (syslog or stderr)
	-Tried cleaning up comments a bit
	-Added in more _debug() calls, making watching the process of decoding
		via syslog() a bit easier.

Fri Jan 12 11:00:12 EST 2001 worker <worker@inflex>
	- Added patch supplied by Rolf to also counter for boundary specifiers which dont' have
	enclosing "'s

Tue Jan 09 13:38:16 EST 2001 worker <worker@inflex> (0.1.10)
	-Added ability to handle mailpacks which had no CR/LF separator after the end of BASE64
	decoding (Thanks to Hans Harder for suppling the mailpack!)

Sun Jan 07 00:02:19 EST 2001 worker <worker@inflex> (0.1.9)
	- Removed error reporting code from mime.c which said that end-of-file had been reached,
	this is no longer required as we correctly handle plain-text (into the _headers_ file)
	-Considering to release as v1.0.0

Sat Dec 30 23:47:18 SAST 2000 worker <worker@inflex> (0.1.8)
	- Added print-quotable decoder
	- release 0.1.9

Thu Dec 28 22:13:56 SAST 2000 worker <worker@inflex>
	- Handler for mailpacks WITHOUT a boundary specified (single file emails)
	- Forgot to change the version indicator in 0.1.7

Sun Dec 24 23:32:09 SAST 2000 worker <worker@inflex>
	- Modify base64 decoder to allow a _MAXIMUM_ of 76 chars on the line.
	  and capable of any length of line less than 76 chars.
	 - Release 0.1.7

Fri Dec 22 23:02:57 SAST 2000 worker <worker@inflex>
	Commenced fixing ripMIME for new style of MIME headers which have multiple
	statements on a single line.

Sat Nov 25 17:45:45 SAST 2000 worker <worker@inflex>
	version 0.1.6
		-Applied patch from Matthew to allow input from STDIN
		-Added feature to allow headers to be dumped to a file (for picking up
			kak virus etc)
		-Added more comments to source code

Thu Nov 23 18:30:20 SAST 2000 worker <worker@inflex>
	version 0.1.5
		-Corrected EOL detection for 76 char MIME encodings

Thu Nov 23 18:30:20 SAST 2000 worker <worker@inflex>
	version 0.1.4
		-Corrected End of encoding MIME breakage
		-Added better -DDEBUG reporting via syslog()

Mon Oct 30 09:45:04 SAST 2000 worker <worker@inflex>
	version 0.1.3
		-Added input parameters to allow for more control
		-Added ability to specify own text-only filename prefix

Mon Oct 30 00:46:05 SAST 2000 worker <worker@inflex>
	version 0.1.2
		-Added code to remove zero byte files.

Sun Oct 29 18:16:46 SAST 2000 worker <worker@inflex>
	version 0.1.1 released.