Bug History for MHonArc
=======================
<URL:http://www.oac.uci.edu/indiv/ehood/mhonarc.html>
@(#) BUGS 99/06/25 17:11:16

Each bug listing has the following fields:

    Version: 	    Lists the version of MHonArc that the bug was
		    reported against.  It is possible a bug could
		    be applicable to earlier versions.  Version listed
		    is when the bug was discovered.
    Problem:	    A description of the bug.
    Solution:	    A description of what was done to fix the bug.
    Version Fixed:  The version that the solution exists in, if
		    applicable.

Bug List
------------------------------------------------------------------------
Version:	2.3.3
Problem:   	Duplicate message-ids in a message's reference list
		were not removed.
Solution:	Array changed to my() scope caused remove_dups()
		to not do anything (it takes a typeglob).  Array
		changed back to local().
Version Fixed:	2.4.0
------------------------------------------------------------------------
Version:	2.3.0-3
Problem:   	TFIRST, TLAST, and PARENT arguments to resource
		variables always produced null values.
Solution:	Fixed.  Note, PARENT is now TPARENT to be consistent
		with other thread-related arguments.
Version Fixed:	2.4.0
------------------------------------------------------------------------
Version:	2.3.0-3
Problem:   	SUBJECTHEADER resource not printed when -savemem is
		used.
Solution:	Problem is due to the new resource variable handling
		in 2.3.  The solution is to support the editing of
		SUBJECTHEADER (and HEADBODYSEP) in existing message
		pages.
Version Fixed:	2.4.0
------------------------------------------------------------------------
Version:	2.3.3, and earlier versions
Problem:   	Multipart processing not done properly if boundary
		parameter not enclosed in quotes and is terminated
		by a semi-colon.
Solution:	Fixed in readmail.pl.
Version Fixed:	2.4.0
------------------------------------------------------------------------
Version:	2.3.3, and earlier versions
Problem:   	%h not recognized in time format strings.
Solution:	Fixed.
Version Fixed:	2.4.0
------------------------------------------------------------------------
Version:	2.3.3
Problem:   	Use of $ICON$ will generate defective tag like
		`ALT="[text/plain]">'.
Solution:	Fixed typo in join() call in mhrcvars.pl.
Version Fixed:	2.4.0
------------------------------------------------------------------------
Version:	2.3.3, and earlier versions
Problem:   	Some messages with specified inline images are not
		having images inlined.
Solution:	Content-Disposition parsing fixed.
Version Fixed:	2.4.0
------------------------------------------------------------------------
Version:	2.3.3, and earlier versions
Problem:   	Clip length not handled properly in resource variables.
		Ie.  Characters that are translated into entity
		references are not handled properly when computing clip
		adjustment.  Incorrect clipping can occur.
Solution:	Fixed.
Version Fixed:	2.4.0
------------------------------------------------------------------------
Version:	2.3.3, and some possible earlier versions
Problem:   	MHonArc checking for writable OUTDIR in SINGLE mode.
Solution:	Fixed.
Version Fixed:	2.4.0
------------------------------------------------------------------------
Version:	2.3.3, and earlier
Problem:   	Default resource file not read if located in MHonArc
		lib directory.
Solution:	Fixed improper assumption of @INC setting.
Version Fixed:	2.4.0
------------------------------------------------------------------------
Version:	2.3.3, and earlier
Problem:   	TLIEND not generated at proper times when thread level
		goes beyond TLEVELS.
Solution:	A check is made in thread index printing to generate a
		TLIEND properly for TLITXT when deeper than TLEVELS.
Version Fixed:	2.4.0
------------------------------------------------------------------------
Version:	2.3.0-2.3.2
Problem:   	-otherindex and -perlinc command-line options do not
		work.  Using them has no affect.
Solution:	Subtle precedence issue in Perl variable operations;
		problem fixed.
Version Fixed:	2.3.3
------------------------------------------------------------------------
Version:	2.3.0-2.3.2
Problem:   	Resource variable expansion not working properly in
		MAILTOURL resource.
Solution:	Certain variables in read_mail_header() where put in
		my() declarations when they should stay as local()'s.
		Changed back.
Version Fixed:	2.3.3
------------------------------------------------------------------------
Version:	2.3.0-2.3.2
Problem:   	Next/previous message link resource variables are
		reversed when REVERSE is on.
Solution:	REVERSE check was left out in new v2.3 replace_li_var().
		Check added in.
Version Fixed:	2.3.3
------------------------------------------------------------------------
Version:	2.3.0, 2.3.1
Problem:   	Some resource variables (eg $SUBJECTNA$) expand to
		blank values when using -single.
Solution:	SINGLE mode sets @MListOrder and %Index2MLoc to support
		the new way in v2.3 replace_li_var() resolves resource
		variables.
Version Fixed:	2.3.2
------------------------------------------------------------------------
Version:	2.3.1 (maybe earlier versions also)
Problem:   	MHonArc does not handle message range specification
		with leading zeros in numbers in -rmm mode.
Solution:	int() is used within Perl's range operator to force
		the stripping of leading zeros.
Version Fixed:	2.3.2
------------------------------------------------------------------------
Version:	2.3.0
Problem:   	Attachments of the same type get written to the same
		filename.
Solution:	Another my/local gotcha.  Note, writing attachments
		has been redone so other filters besided mhexternal.pl
		can write data to files.
Version Fixed:	2.3.1
------------------------------------------------------------------------
Version:	2.0.0 - 2.2.0
Problem:   	A bogus TCONTBEGIN may get printed at the beginning
		of a thread index page.  Most common when TREVERSE
		specified.
Solution:	@TListOrder now serves as the basis for list iteration
		when printing a thread index page instead of the list
		returned by t_sort_messages().  Note, old method may
		cause other minor errors in thread index page
		generation.
Version Fixed:	2.3.0
------------------------------------------------------------------------
Version:	2.2.0, 2.3.0 beta
Problem:   	Duplicate index list entries are generating for threads
		indexes generated via OTHERINDEXES with TREVERSE active.
Solution:	All key data structures are now reset when recomputing
		threads.
Version Fixed:	2.3.0
------------------------------------------------------------------------
Version:	2.2.0, 2.3.0 beta
Problem:   	Threads are not listed in reverse order when THREAD
		and TREVERSE are set for an OTHERINDEXES resource file.
Solution:	Thread data structures are now reset before each
		OTHERINDEXES index.  If an OTHERINDEXES resource file
		specified THREAD, than threads will be recomputed
		for the given index defined by resource file.
Version Fixed:	2.3.0
------------------------------------------------------------------------
Version:	2.3.0 beta
Problem:   	Mail addresses in message headers are not getting
		converted to mailto links.
Solution:	MHonArc still uses typeglobs for passing data around
		by "reference" (left-over from Perl 4 days).  One
		of the variables in the message header formatting
		routine was changed back to a local() variable to
		supporting passing it via a typeglob sub-routines.
Version Fixed:	2.3.0
------------------------------------------------------------------------
Version:	2.3.0 beta
Problem:   	Cannot copy file error occurs during installation when
		copy documentation to destination location.
Solution:	Updated install.cfg to reflect file changes to
		documentation.
Version Fixed:	2.3.0
------------------------------------------------------------------------
Version:	2.3.0 beta
Problem:   	Author index generated via the OTHERINDEXES resource
		does not list messages in proper order.  Other main
		indexes generated via OTHERINDEXES may suffer the
		same problem.
Solution:	The write_main_index() did not reset %Index2MLoc
		properly, affecting resource variable resolution.  If
		@MListOrder is recomputed, %Index2MLoc will be
		redefined.
Version Fixed:	2.3.0
------------------------------------------------------------------------
Version:	2.3.0 beta
Problem:   	PG(PREV) and PG(TPREV) did not resolve to IDXFNAME and
		TIDXFNAME, respectively.  They resolved to (T)IDXPREFIX
		with the page number 1.
Solution:	Simple fix to page number check.
Version Fixed:	2.3.0
------------------------------------------------------------------------
Version:	2.2.0, 2.3.0 beta
Problem:   	Messages grouped under wrong date in date-based index.
Solution:       The problem is related to a descrepency of GMT time
		and local time, and what time format is being used
		in the DAYBEGIN resource.  The resource USINGLOCALTIME
		has been added to give the choice betweem GMT or
		local time for determining day groups.
Version Fixed:	2.3.0
------------------------------------------------------------------------
Version:	2.2.0
Problem:   	Get "times not implemented at mhamain.pl line 74" error
		on Win32 systems.
Solution:	Call to times is put in an eval block.
Version Fixed:	2.3.0 alpha
------------------------------------------------------------------------
Version:	2.2.0
Problem:   	When a message that gets automatically deleted via
		MAXSIZE or the message expiration, related message
		sometimes do not get update -- causing messages to
		have links to non-existent messages.  Problem manifiest
		when main sort option is not by date.
Solution:	Automatic message deletion now properly marks related
		message by specified main sort option.
Version Fixed:	2.3.0 alpha
------------------------------------------------------------------------
Version:	2.1.2
Problem:   	The @TListOrder array is empty in .mhonarc.db when
		MULTIPG is set.  This may cause some messages not
		getting properly updated when new messages are added.
Solution:	Removed use of splice on @TListOrder when MULTIPG.
		Now, array slices are used so @TListOrder is preserved.
Version Fixed:	2.2.0
------------------------------------------------------------------------
Version:	2.1.2
Problem:   	Convert ISO-2022-JP messages can generate "Out of
		Memory" errors.
Solution:	The cleanup of mhtxtplain.pl's iso-2022-jp code
		introduced a bug that caused an infinite loop and
		to gobble memory until it ran out.  The fix was
		straight-forward.
Version Fixed:	2.2.0
------------------------------------------------------------------------
Version:	2.1.2
Problem:   	Quoted text that is broken due to maxwidth setting of
		the mhtxtplain.pl filter did not have the quote
		character prepended to broken the text.
Solution:	A regex updated to dealing with a leading space before
		quote character.
Version Fixed:	2.2.0
------------------------------------------------------------------------
Version:	2.1.1
Problem:   	Documentation of MAILTOURL incorrectly states that
		the $TO$ resource variable is the value of the
		To: message header field.
Solution:	Fixed documentation to state that $TO$ represents the
		address being hyperlinked.
Version Fixed:	2.1.2
------------------------------------------------------------------------
Version:	2.1.1
Problem:   	Attachments saved to files with spaces in filename
		(due to "usename" option set to m2h_external::filter),
		will cause anchors to the attachments in the HTML
		message contain spaces.
Solution:	Fixed m2h_external::filter to escape special characters
		in the URL linking to the external file.
Version Fixed:	2.1.2
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	Message with dates after 2037, or before 1970, will hang
		MHonArc, not get processed, or listed in wrong order.
Solution:	The problem is that Perl's timelocal.pl library cannot
		handle dates out of those ranges (same applies to
		Time::Local).  Since get_time_from_date() is the only
		routine require the services of timelocal.pl, the
		routine will generate a warning of bad years and use
		the current year.
Version Fixed:	2.1.1 (Work-around)
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	Anchors to attachments in a message converted via
		SINGLE do not contain OUTDIR if OUTDIR is specified.
		OUTDIR may want to be set to all attachments to be
		contained in a separate directory from the converted
		message.
Solution:	mhexternal.pl now checks $SINGLE variable set by the
		main code during startup.  If set, the value of
		$OUTDIR is prepending to any hrefs to external files.
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	February is misspelled "Febuary" in mhtime.pl.
Solution:	Change the spelling so its correct.
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	Lowercase timezones in dates are not recognized.
Solution:	Code modified to convert zones to uppercase when
		performing hash lookups.
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	Specified filenames of attachments sometimes have a
		';' appended when utilizing the "usename" option is
		set for mhexternal.pl.
Solution:	Fixed MAILhead_get_disposition() in readmail.pl to
		strip off ';' parameter separator.
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	Specified filenames with spaces of attachments are not
		recognized properly.  Filename gets truncated to first
		occurance of a space.
Solution:	Fixed MAILhead_get_disposition() in readmail.pl to
		to handle filenames with spaces.
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	The HTMLEXT resource does not affect the numbered index
		page filenames of a MUTLIPG archive.
Solution:	write_main_index() and write_thread_index() fixed.
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	Anchor text of MAILTOURL links is translated to URL
		escaped text.
Solution:	mailUrl() routine fixed.
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	Message 0 could not be deleted if specified with more
		than one 0 (eg: 00000);
Solution:	rmm() routine fixed.
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	SUBJECTHEADER does not get stored in the db.
Solution:	output_db() routine updated to save SUBJECTHEADER.
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	Empty links can be created if there is no "From" defined
		for a message and it is used as link text.
Solution:	Use 'No Author' as "From" if not defined.
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.1.0
Problem:	If a user defined resource variable is a string that
		Perl interprets as a false value, it will not be used.
Solution:	Changed code to used define() function in
		replace_li_vars().
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.1.0
Problem:   	Expired messages are not removed when a the main index
		is not sorted by date.
Solution:	Always sort message by date when doing expire check.
Version Fixed:	2.1.1
------------------------------------------------------------------------
Version:	2.0.1
Problem:   	An undefined subroutine error occured during an
		RMM operation when there are messages with non-ASCII
		encodings in message headers.
Solution:  	Proper libraries are now loaded for RMM operations.
Version Fixed:	2.1.0
------------------------------------------------------------------------
Version:	2.0.1
Problem:   	Subjects using the "... -Reply" convention started
		a new thread.
Solution:  	Fixed typo in regexp.
Version Fixed:	2.1.0
------------------------------------------------------------------------
Version:	2.0.1
Problem:   	Nested anchor markup occurs on index pages when
		a message's subject contains a URL and the subject
		is used to link to the message page.
Solution:  	Replaced default routine that converts subject text
		to HTML to a routine that does not hyperlink URLs.
Version Fixed:	2.1.0
------------------------------------------------------------------------
Version:	2.0.0
Problem:   	Bogus empty entry shows up in the database.  Bogus
		entry appears if a duplicate message is detected.
		Potential visible problems of bogus entry are: mailto
		links in headers corrupted; a blank listing in the
		index.  Maybe other potential problems.
Solution:  	There is a bug in some versions of Perl where a
		hash key gets added invalidly.  The section of code that
		this occurs has been modified to avoid the problem.
		For existing databases with a bogus empty entry,
		MHonArc now removes any empty key entries.
		However, it is recommed to rebuild the archive.
Version Fixed:	2.0.1
------------------------------------------------------------------------
Version:	2.0.0
Problem:   	Index pages are not properly updated if zero messages
		are in the archive (like through the -rmm option).
		Even -editidx cannot cause a proper update.
Solution:  	Page count was set to zero when no messages exist.  This
		caused problems in conditional checks in the write index
		routines.  To fix, page count is forced to 1 if their
		are no messages.
Version Fixed:	2.0.1
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:   	Index pages with last page links are not updated
		when a new page is added.
Solution:  	All index pages are regenerated if a new page
		is added.
Version Fixed:	2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:   	"-idxsize 0" does not give unlimited page size.
Solution:  	Problem fixed and now works as documented.
Version Fixed:	2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:   	"-maxsize 0" does not reset archive with
		unlimited messages allowed.
Solution:  	Problem fixed and now works as documented.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:   	Non-ASCII text encodings (=?ISO-..?...) are not
		properly decoded when EDITIDX is set.
Solution:  	The charset filter libraries are now loaded
		for EDITIDX.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:   	MODTIME resource setting not remembered across
		archive updates.
Solution:  	MODTIME resource is now properly stored in the
		database.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:   	Specifying -rmm and -single caused confusion on
		what MHonArc does.
Solution:  	The case is properly handled, with -rmm taking
		precedence.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:	4 digit year not checked before 2 digit year
		when parsing dates.
Solution:	Fixed.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:	Some index pages in multipage indexes not
		updated when messages expire.
Solution:	Fixed; all pages are regenerated when a message
		expires.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:	Setting MONTHS and MONTHSABR had no effect.
Solution:	Fixed.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:	$TNEXTFROM$ actually gave the value of $NEXTFROM$.
Solution:	Fixed.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:	Numerical timezone offsets not handled properly
		when the offset contained non-zero minutes.  This
		caused message to be sorted wrong by date.
Solution:	Fixed.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:	Some characters were not properly escaped when
		specifying the "in URL" modifier to a resource
		variable.
Solution:	Fixed.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:	Thread (formatting) information lost when a
		thread is split across multiple pages.
Solution:	Fixed.  New resources (TCONTBEGIN, TCONTEND,
		TINDENTBEGIN, TINDENTEND) exist to preserve
		formatting of threads across pages.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 3
Problem:	If specifying the REVERSE resource, the next/prev
		links in messages do not point to the proper
		message as one may expect.
Solution:	This should be fixed by the new behavior of
		$NEXT...$ and $PREV...$ resource variables.
Version Fixed:  2.0.0
------------------------------------------------------------------------
Version:	2.0.0 beta 2
Problem:	Perl aborts with message "Undefined subroutine
		&main::output_db called ..." when the GENIDX resource
		is set.
Solution:	Fixed.  The output_db function is not applicable when
		GENIDX is active.
Version Fixed:  2.0.0 beta 3
------------------------------------------------------------------------
Version:	2.0.0 beta 2
Problem:	Duplicate resource filenames are not removed from the
		OTHERINDEXES resource.  This caused duplicate work
		to be performed.
Solution:	Fixed.  Any duplicate filenames are removed before
		applying the OTHERINDEXES resource.
Version Fixed:	2.0.0 beta 3
------------------------------------------------------------------------
Version:	2.0.0 beta 2
Problem:	Indexes created via the OTHERINDEXES resource contain
		no messages.
Solution:	Fixed.
Version Fixed:	2.0.0 beta 3
------------------------------------------------------------------------
Version:	2.0.0 beta 2
Problem:	The markup defined by TSUBLISTEND may appear when there
		is no corresponding TSUBLISTBEG.
Solution:	Fixed.
Version Fixed:	2.0.0 beta 3
------------------------------------------------------------------------
Version:	2.0.0 beta 1
Problem:	A multipart boundary specified with a capital boundary
		parameter, and not in quotes, was not recognized.
Solution:	Fixed
Version Fixed:	2.0.0 beta 2
------------------------------------------------------------------------
Version:	1.2.3
Problem:	Generation of links of message-ids when editting
		messages w/o consideration that the message-ids
		may already be linked.  This caused nested anchor
		markup.
Solution:	Fixed.  Only new message-ids are checked for.
Version Fixed:	2.0.0 beta 1
------------------------------------------------------------------------
Version:	1.2.2
Problem:	The ';' character may appear in derived files if the
		"usename" option is set for the mhexternal.pl filter.
Solution:	Fixed.
Version Fixed:	1.2.3
------------------------------------------------------------------------
Version:	1.2.2
Problem:	The '/' character is not properly recognized in e-mail
		addresses when e-mail addressess are being converted
		to mailto links in message headers.
Solution:	Fixed.
Version Fixed:	1.2.3
------------------------------------------------------------------------
Version:	1.2.2
Problem:	Database read failures occur in add operations on
		MS-DOS systems.
Solution:	Fixed (?)
Version Fixed:	1.2.3
------------------------------------------------------------------------
Version:	1.2.1
Problem:	The TIDXPGEND resource actually sets the value of the
		TIDXPGBEG resource.
Solution:	Fixed.
Version Fixed:	1.2.2
------------------------------------------------------------------------
Version:	1.2.0
Problem:	MHonArc will abort execution under MS-DOS due to
		regular expression error.
Solution:	Fixed.
Version Fixed:	1.2.1
------------------------------------------------------------------------
Version:	1.2.0
Problem:	install.me will abort execution under MS-DOS due to
		regular expression error.
Solution:	Fixed.
Version Fixed:	1.2.1
------------------------------------------------------------------------
Version:	1.2.0
Problem:	A reverse index listing is incorrect if the index size
		is less than the archive size.
Solution:	Fixed.
Version Fixed:	1.2.1
------------------------------------------------------------------------
