MHonArc

 view release on metacpan or  search on metacpan

CHANGES  view on Meta::CPAN

     5905   Modification of non-creatable array value attempted
     6208   Mhonarc creates slightly incorrect HTML-code
     7571   <include> element doesn't look for resource files in
	    $OUTDIR$
     7628   typo in mhrcfile.pl
    ------  ------------------------------------------------------------
    <https://savannah.nongnu.org/bugs/?group=mhonarc>

* New resources:

    ATTACHMENTDIR	Directory to save attachments.
    ATTACHMENTURL	Web URL to attachment directory.
    NEWSURL		URL template for linking to newsgroups.

* Attachment filenames have changed from the numeric-style
  <ext><#####>.<ext> to <ext><XXXXXXXXXX>.<ext> where <XXXXXXXXXX>
  is a random string.  The change corresponds with a change to the
  API to mhonarc::write_attachment() function in mhmimetypes.pl.

* m2h_text_plain::filter:
  . Changed default quoting styles: Left rule changed from 0.1em
    to 0.2em and the color changed from #0000FF to #5555EE.

  . Minor changes to flowed formatting in order to provide
    consistancy with how Mozilla's Gecko engine renders flowed text.

* base64.pl will use MIME::Base64 module if present.  MIME::Base64
  uses an underly C implementation for decoding, so it is noticably
  faster than the pure-Perl approach.

============================================================================
2003/08/12	(2.6.8)

* Bug Fixes:

    Bug ID  Summary
    ------  ------------------------------------------------------------
     4719   Spurious read_fmt_file call
    ------  ------------------------------------------------------------
    <https://savannah.nongnu.org/bugs/?group=mhonarc>

============================================================================
2003/08/07	(2.6.7)

* Bug Fixes:

    Bug ID  Summary
    ------  ------------------------------------------------------------
     4569   Problem with unfolding can mess up boundary processing in
	    multipart messages.
     4594   Initial space on lines removed when using fancyquote.
    ------  ------------------------------------------------------------
    <https://savannah.nongnu.org/bugs/?group=mhonarc>

* Added LANG resource to define locale.  Affects resource filename
  resolution and message subject and author sorting.

* readmail.pl updated to define the following special header field
  keys passed to filter routines:

    x-mha-content-type	  The media type of the entity extracted from
			  content-type entity header
    x-mha-part-number	  The relative part number of the entity with
			  respect to parent entity.  To get the
			  absolute part number, use
			  readmail::get_full_part_number($fields).
    x-mha-parent-header	  Reference to parent header fields hash.

  This, and other data structures, are now mentioned in the MIMEFILTERS
  resource page.

* Text/richtext tag, <samepage>, is quietly dropped in mhtxtenrich.pl.

============================================================================
2003/07/21	(2.6.6)

* Bug Fixes:

    Bug ID  Summary
    ------  ------------------------------------------------------------
     4387   m2h_text_plain::filter maxwidth usage can lead to crash
	    with a certain kind of input 
    ------  ------------------------------------------------------------
    <http://savannah.nongnu.org/bugs/index.php?group_id=1968
     &set=custom&advsrch=0&msort=0&report_id=105&go_report=Go
     &fix_release=2.6.6&chunksz=50>

============================================================================
2003/07/19	(2.6.5)

* Bug Fixes:

    Bug ID  Summary
    ------  ------------------------------------------------------------
     4126   Typo in mhopt.pl causes error message for big5
	    character set 
     4315   allowcomments' directive to filter() is ignored
    ------  ------------------------------------------------------------
    <http://savannah.nongnu.org/bugs/index.php?group_id=1968
     &set=custom&advsrch=0&msort=0&report_id=105&go_report=Go
     &fix_release=2.6.5&chunksz=50>

* An architecture independent RPM package is now provided for
  installation.  Because of this, the package name format has slightly
  changed to be consistent RPM, and other, package managers:

      Old format      New Format
      -------------   -------------
      MHonArcX.X.X    MHonArc-X.X.X

  Installation document has been updated to reflect this change.

  If you create third-party distribution bundles for MHonArc, you may
  need to update your bundling process to take account of this change,
  mainly because the directory created when extracting the tar or
  zip bundles now include the hyphen.

============================================================================
2003/06/20	(2.6.4)

* Bug Fixes:

CHANGES  view on Meta::CPAN

     &fix_release=2.5.6&chunksz=50>

* Added NOSUBJECTTXT resource: Defines raw subject text to use
  for messages that do not have a subject.

============================================================================
2002/05/28	(2.5.5)

* Bug Fixes: See
    <http://savannah.gnu.org/bugs/index.php?group_id=1968
     &set=custom&advsrch=0&msort=0&report_id=105&go_report=Go
     &fix_release=2.5.5&chunksz=50>

* Incorporated format=flowed support into mhtxtplain.pl contributed
  by Ken Hirsch, with some minor improvements.

* MODTIME resource is set to off if setting modification date on files
  is not supported for given platform.  A warning message will be
  generated.

* Added mha-preview program in examples/: A front-end program to
  MHonArc that provides support for the resource variable
  $X-MSG-PREVIEW$ that expands to first part of a message body.
  This program illustrated the usage of the callback API.

  NOTE: It is probable that support for message preview text
	may become a supported feature within the standard mhonarc
	program.  There are no guarantees that when implemented,
	it will be compatible with how mha-preview does it.

* Added blog.mrc in examples/: A resource file that generates
  a page containing the content of all messages.  This example
  is also listed in the resource file examples appendix.

* Some documentation updates and enhancements.

============================================================================
2002/05/03	(2.5.4)

* Added more API callback functions:

    $CBDbPreLoad
	Right before database file is loaded.
    $CBDbPreSave
	Right before database file is written.
    $CBDbSave
	When data has been written.
    $CBRawMessageBodyRead
	After message body is read from input
    $CBRcVarExpand
	When a resource variable is being expanded.

  See API appendix of the documentation for more information.

* mha-decode now supports the following option: -dcd-digest.  This
  tells mha-decode to not recursively process attached message/rfc822
  and message/news entities.  This option is useful to extract
  out all the individual messages of a message digest.

* Added message/rfc822 and message/news to mhmimetypes.pl
  content-type => extension/description hash.  The extension used
  is ".822".

* Added ISO-8859-15 to default value of CHARSETCONVERTERS.  This should
  have been done in the previous release.

* A readmail:: variable is not written to database file if it is
  the default value.  The readmail:: variables that can be saved
  are controled by the CHARSETCONVERTERS, MIMEFILTERS, and MIMEARGS
  resources.

============================================================================
2002/04/18	(2.5.3)

*   Added 'use locale' pragmas to be applied when sorting messages.
    This is considered experimental, but it appears to give better
    results when sorting text that contains 8-bit-non-English
    characters.  This is far from any real locale support, but
    hopefully it is better than nothing.

*   Beefed up HTML filtering in mhtxthtml.pl to eliminate some
    security exploits.

    CAUTION: If you are worried about security, it is recommended
	     that you disable support of text/html messages in
	     your mail archives.  There is no guarantee that
	     the mhtxthtml.pl library is robust enough to
	     eliminate all possible exploits that can occur with
	     HTML data.

    Thanks goto Jason Molenda and Hiromitsu Takagi for spotting
    more exploit cases.

*   mhtxtplain.pl checks MIMEXCS if text/html data is excluded
    when the htmlcheck option is specified.  Seems unnecessary
    because someone use excludes HTML data will probably not use
    the htmlcheck option to m2h_text_plain::filter.

*   Modified mail address extraction for $FROMADDR$ resource
    variable to help deal with malformed From: header fields.
    Thanks to Eugene Eric Kim for the recommendation.

*   Fixed uudecoding support in mhtxtplain.pl to handle spaces
    in filenames and \r\n EOLs.  Thanks to Jordan Russell for
    spotting this.

*   Added ISO-8859-15 mappings.  Thanks goto Jan Kraeber for the
    contribution.

*   Removed GIF images from distribution.  All GIF images
    have been converted to PNG format.  Transparency of PNG
    images may only be supported in the latest versions of various
    graphical web browsers.

    See <http://www.gnu.org/philosophy/gif.html> for reasons
    why GIF images should not be used.

*   Source code imported into CVS.  CVS respository is currently
    not available publicly.  Stilling wondering if a site like
    savannah.gnu.org should be used or if the respository should
    be hosted independently, like at www.mhonarc.org.

CHANGES  view on Meta::CPAN


    o	mha-dbrecover new options:

	  -dbr-startnum # 
	      The starting message number to recover data from. This
	      option is useful if you have many message files in a
	      directory, but you only want to recover a subset of the
	      files. If this option is not specified, the starting
	      number is 0.

	  -dbr-endnum # 
	      The ending message number to recover data from. This
	      option is useful if you have many message files in a
	      directory, but you only want to recover a subset of the
	      files. If this option is not specified, all messages
	      starting from -dbr-startnum will be recovered.

    o	MSGPGBEGIN default value changed where $SUBJECTNA:72$ has
	been replaced with $SUBJECTNA$.  This is so default values
	do not have any possible conflicts with variable-width
	character sets.

============================================================================
2001/11/13	(2.5.1)

    o	Added special note within the release notes about
	downgrading.

    o	Some documentation corrections.

============================================================================
2001/10/14	(2.5.0)

    [This is non-beta release of 2.5.0.  See the change notes
     below and for the various beta release for a complete list of
     changes from the last v2.4 release.]

    o	The ICONS resource has been updated to support the association
	of icons at the base type level (e.g. text/*) and to specify
	width and height hints.  The example icon resource file
	listed in an appendix of the documentation updated to
	to use changes to ICONS resource.

    o	Formatting of attachment links within the m2hexternal.pl
	filter has been updated to provide more verbose information.
	Description of the format provided in the MIMEFILTERS
	documentation.	Also, a 'frame' filter argument is now
	supported to instruct the filter to draw a frame around
	the link.

    o   Default value for MIMEArgs has been changed to the following:

	  <MIMEArgs>
	  m2h_external::filter; inline
	  </MIMEArgs>

	This is more concise then previous default value.

	On a resource file maintenance standpoint, it is generally
	best to specify filter arguments at the filter level and
	not at the content-type level.

    o   Value of Perl's $^O variable printed with version information
	for -V, -v, -help command-line options.

    o	The count of new messages added to archive are now printed
	along with the total message count when QUIET is not active.

============================================================================
2001/09/05	(2.5.0b2)

    o	Long overdue update of ACKNOWLG file.

    o	New resources:

	  TSLICELEVELS	-- Maximum depth for thread slices.

    o	New resource variables:

	  $TLEVEL$	-- Numeric level of message in thread.

    o	Added recognition of windows-1250 and windows-1252 charsets
	into MHonArc::CharEnt and to default value of CHARSETCONVERTERS
	resource.  To apply to existing archives, use mha-dbedit
	with examples/def-mime.mrc resource file.

    o	SUBJECTREPLYRXP now used to determine if "Re: " is added
	when $SUBJECT$ is used within MAILTOURL.

    o	Code cleanup to eliminate perl -w warnings.  Cleanup not
	required for running MHonArc, but convenient for those that
	use MHonArc with perl's -w option.

============================================================================
2001/08/26	(2.5.0b)

    o	API for MIMEFILTERS has been changed.  Content filters are
	now called as follows:

	  ($html, @files) =
	      &filter($fields_hash_ref, $body_data_ref, $is_decoded,
		      $filter_args);

	Paramaters:
	  $fields_hash_ref
		      A reference to hash of message/part header
		      fields.  Keys are field names in lowercase
		      and values are array references containing the
		      field values.  For example, to obtain the
		      content-type, if defined, you would do:

			$fields_hash_ref->{'content-type'}[0]

		      Values for a fields are stored in arrays since
		      duplication of fields are possible.  For example,
		      the Received: header field is typically repeated
		      multiple times.  For fields that only occur once,
		      then array for the field will only contain one
		      item.

	  $body_data_ref
		      Reference to body data.  It is okay for the
		      filter to modify the text in-place.

	  $is_decoded
		      Boolean flag if body data has been decoded.
		      This is normally true unless some non-standard
		      content-transfer-encoding is used.

	  $filter_args
		      String containing filter args as defined by
		      MIMEARGS resource.

	Return:
	  The return value is still treated in the same manner as
	  previous releases.  The first item in the return list is
	  the text that should printed to the message page.  Any
	  other items in the return list are derived filenames created
	  by the filter.  If undef, or the empty string, is returned,
	  readmail.pl assumes the filter was unable to filter the
	  data.

	All the filters provided in the MHonArc distribution have
	been modified to use the new calling convention.

    o	The HEADER and FOOTER resources are no longer supported.

    o	The default value of DEFRCNAME is now ".mhonarc.mrc"
	("mhonarc.mrc" for Win/DOS).

    o	ISO8859 character set data processing now defaults to using
	the MHonArc::CharEnt module.  The old iso8859.pl library
	is still provided for compatibility with older archives.
	To update archives to use the new settings, you can run
	the following command,

	    mha-dbedit -rcfile examples/def-mime.mrc \
		       -outdir /path/to/archive

	where "examples/def-mime.mrc" represents the default MIME
	processing resources for MHonArc provided within the MHonArc
	distribution.

	The new module is more efficient in memory usage by only
	loading mappings for character sets actually processed.  The
	old iso8859.pl library preloads all mappings.  Also, the
	module is designed to be easily extensible for processing
	any 8-bit-based character sets.

    o	Reference, follow-up, and derived file information of a
	message is now stored in a different format in the database
	(and internally).  MHonArc will auto-update older archives

CHANGES  view on Meta::CPAN

			    classid, data, longdesc -- will be
			    converted to 'javascript:void(0);'
			    if it is not a cid: URL.  This is to
			    prevent malicious URLs that verify mail
			    addresses for spam purposes, secretly set
			    cookies, or gather some statistical data
			    automatically with the use of elements
			    that cause browsers to automatically
			    fetch data: IMG, BODY, IFRAME, FRAME,
			    OBJECT, SCRIPT, INPUT.

	    notitle  	    Do not print title.

    o	Searching for OTHERINDEXES resource files has been modified.
	The following lists the search order for an OTHERINDEXES
	resource file:

	    1. Current working directory.
	    2. Same directory that the first resource file was read as
	       specified by the RCFILE resource.
	    3. User's home directory.
	    4. Archive directory.
	    5. Perl's @INC.

    o	FIRST, LAST, TFIRST, and TLAST idx_page_spec arguments to
	$PGLINK$ are now supported via the FIRSTPGLINK, LASTPGLINK,
	TFIRSTPGLINK, and TLASTPGLINK resources.

    o	$PGLINKLIST$ resource variable changed to print entire
	list of page links if no arguments are provided.  To get
	the entire list for thread indexes, use: $PGLINKLIST(T)$.

    o	Date parsing routine updated to recognize dates in the
	following format: Weekday, Month DD, YYYY HH:MM Zone.
	Apparently, this is useful if converting mail saved to
	a file in text format from MS Outlook.

    o	Support for defining Perl function callbacks when a
	new message header is read and just after a message body
	has been converted.  Documentation about the callbacks is
	provided in a new API appendix section in the documentation
	and is provided in comments in the example mhasiteinit.pl
	provided in the examples/ directory.

    o	Various internal changes have been made to try to eradicate
	Perl 4-based conventions.  For example, the use of typeglobs to
	pass by "reference" has been replaced by using real references.

	Assuming nothing was screwed up, this change should be
	transparent to most users (with the notable exception of the
	API changes to MIMEFILTERS registered routines).  However,
	if you have mucked with MHonArc internals, or created custom
	modifications, you may need to be aware that changes have
	been made.

============================================================================
2001/06/10	(2.4.9)

    o	Added the following resources:

	    MIMEEXCS		List of content-types to exclude
				from processing.  Exclusion occurs
				before data is passed to filters.

    o	mhtxtplain.pl: If decoding uuencoded data, the data will
	be excluded if application/octet-stream is listed the
	MIMEEXCS resource.

    o	mhtxthtml.pl: If a CID URL is not available, the CID URL
	is no longer preserved in the converted output.  The CID
	URL is stripped.

    o	Added the following to mhmimetypes.pl content-type table:

	  application/ms-excel		=> xls:MS-Excel spreadsheet
	  application/ms-powerpoint	=> ppt:MS-Powerpoint presentation
	  application/ms-project	=> mpp:MS-Project file

	The "vnd." official versions are already present, but
	some application use the above.

    o	TODO list added to distribution.

=======================================================================
2001/04/13	(2.4.8)

    o	Added the following resources:

	    KEEPONRMM   	Do not remove message files from disk
				when messages are removed from the
				archive.

    o	m2h_text_plain::filter now uses CHARSETCONVERTERS for
	translating text data with a specified charset parameter.
	The only exception is iso-2022-jp, which is handled directly
	to properly support nourl flag.

    o	m2h_external::filter new arguments:

	excludeexts=ext1,...
		  A comma separated list of message specified filename
		  extensions to exclude.  I.e.	If the filename
		  extension matches an extension in excludeexts, the
		  content will not be written.	The return markup
		  will contain the name of the attachment, but no
		  link to the data.  This option is best used with
		  application/octet-stream to exclude unwanted data
		  that is not tagged with the proper content-type.
		  The m2h_null::filter can be used to exclude content
		  by content-type.

    o	m2h_null::filter will now output a one line description
	of the excluded content.  This is so the reader knows that
	there was message content not saved within the archive.

    o	m2h_text_plain::filter new arguments:

	usename		If extracting uuencoded data, the filename
			specified should be used.

    o	m2h_text_html::filter new arguments:

 	allowcomments	Preserve any comment declarations.  Normally
 			Comment declarations are munged to prevent
 			SSI attacks or comments that can conflict
 			with MHonArc processing.  Use this option
 			with care.

	(NOTE: Comment declarations were completely stripped before,
	 but the regex used was known to crash perl on large comment
	 declarations, so a simplier expression is now used to
	 modify comment declarations to prevent possible attacks.)

=======================================================================
2000/10/28	(2.4.7)

    o	Added the following options to m2h_text_plain::filter:

	attachcheck	Honor attachment disposition.  By default,
			all text/plain data is displayed inline on
			the message page.  If attachcheck is specified
			and Content-Disposition specifies the data as
			an attachment, the data is saved to a file
			with a link to it from the message page.
	htmlcheck	Check if message is actually an HTML message
			(to get around abhorrent MUAs).  The message
			is treated as HTML if the first non-whitespace
			data looks like the start of an HTML document.

    o	FROMFIELD resource default value is now:

	  from:mail-reply-to:reply-to:return-path:apparently-from:
	  sender:resent-sender

	The change is the addition of "mail-reply-to."

    o	Added the following resource variables:

	    $MSGTORDNUM$	Ordinal number of message in current
				thread.

    o	Added the following resource variable message specificiers:

	    TEND		Last message of current discussion
				thread.
	    TTOP		Top/root message of current discussion
				thread.

    o	Changes to readmail.pl:
	-   %Cid hash keys are now URLs.  Content-Ids are denoted

CHANGES  view on Meta::CPAN


    o	MHonArc is now smarter when the RMM resource is used.  MHonArc
	will now only update pages that are required when messages
	are removed instead of doing a force update on all pages.
	RMM operations will now perform much faster.

    o	Subject based replies are *no longer* treated as a separate
	"group" when printing thread index pages.  I.e.  Subject based
	replies no longer cause a separate TSUBLISTBEG and TSUBLISTEND
	to be invoked.	Before, it was a problem if the HTML OL
	element was used.  OL numbering would restart when subject
	based replies were printed.

    o	GENIDX now supports the use of MULTIPG (w/IDXSIZE).

    o	MHonArc uses rename instead of file copying when editing
	pages.  Should provide a speed increase when editing archive
	pages.

    o	Reason when a file cannot be opened or created is printed
	($! is now included in the error message).

    o	If unable to lock an archive (and -force not specified),
	MHonArc will now return an exit status of 75 (EX_TEMPFAIL).
	This is for the benefit of MTAs (like sendmail) where
	MHonArc is called via an alias.

    o	Some changes to code to make it suitable for MHonArc to be
	embedded into other Perl programs.  The most significant
	changes was to make it possible to process more than one
	archive in a single process instance (note, archives can
	only be processed in sequence and not in parallel).  Now it
	easier to write different application front-ends to MHonArc.

    o	Some other code cleanup in the hopes to improve performance.

=======================================================================
1998/03/03	(2.2.0)

	o  New resource

		MSGIDLINK	  - Hyperlink markup for message-ids
		SUBJECTARTICLERXP - Regex to match articles (a,an,the)
				    in subject text.
		SUBJECTREPLYRXP	  - Regex to match reply annotation
				    in subject text.
		TSLICE		  - Set the size of a thread slice listing
		TSLICEBEG	  - Begin markup of a thread slice listing
		TSLICEEND	  - End markup of a thread slice listing

	o  New resource variables

		$TSLICE$	  - Print thread listing slice relative to
				    current message.

	o  Added default=charset option to mhtxtplain.pl filter.

	o  Added mhtxttsv.pl to handle text/tab-separated-values
	   content.

	o  Expanded list of recognized content-types in mhexternal.pl.

	o  Changed loading of decoders, charset convertes, and
	   content-type filters to be done on demand.  Should
	   provide an increase in start-up time.

	o  Modified source so no Perl structures are in the "main"
	   package.  The base package is now "mhonarc".  This
	   should make it easier for incorporating mhonarc into
	   another Perl program.

	   *IMPORTANT*: This change causes changes to db file format.
	   See release notes on how to upgrade pre v2.2 archives.

	o  Main routines are now located in mhamain.pl.  The main
	   mhonarc source file now just requires mhamain.pl and
	   just calls two main functions.

	o  Although code should still be Perl 4 compatible, Perl
	   related resource documentation now puts preference to
	   Perl 5 notations (eg: MIMEFILTERS, CHARSETCONVERTERS).

=======================================================================
1998/02/23	(2.1.2)

	o  Added the following resources:

		ARCHIVE   	Create archive files
		FROMFIELDS	Define fields to extract "FROM"
		USINGLASTPG	Is $LASTPG$ in use

	o  Removed (almost) all uses of $& in code.  Still used
	   in readmail.pl for decoding non-ASCII encoded text.

	o  Changed the default value of CHARSETCONVERTS resource.
	   The plain, us-ascii, and iso-8859-1 charsets now
	   default to main::htmlize.  This provided a significant
	   performance improvement when process a large amount of
	   input.

	o  Moved thread related routines into a file called
	   mhthread.pl.

	o  MIMEFILTERS, MIMEARGS, and CHARSETCONVERTS resources
	   support Perl 5 package qualification in function names
	   if a semi-colon is used instead of a colon as the
	   list values separator.

	o  Probably some other changes I forgot about.

=======================================================================
1998/02/18	(2.1.1)

	o  Added DATEFIELDS resource.  The resource allows the user to
	   specify the fields (and order) that are checked when
	   MHonArc extracts the date of a message.

	o  RMM can now take message number ranges and/or message-ids.

	o  Added $FROMADDR$ variable for MAILTOURL resource.

	o  Message-id printed in warning about unable to parse date.
	   Helps users locate offending message.

	o  'No Author' used if no message sender is not present.

=======================================================================
1997/06/09	(2.1.0)

	o  Added the following resources:

		DEFRCNAME	Base name of default resource file
		FOLUPBEGIN	Begin markup for message follow-ups
		FOLUPEND	End markup for message follow-ups
		FOLUPLITXT	Markup for follow-up list entry
		GZIPEXE		Pathname of gzip executable
		GZIPFILES	Gzip files
		GZIPLINKS	Add ".gz" to filenames in URLs
		HTMLEXT		HTML extension for files
		MSGBODYEND	Markup at end of converted message body
		MSGPREFIX	Prefix for message filenames
		REFSBEGIN	Begin markup for message references
		REFSEND 	End markup for message references
		REFSLITXT	Markup for reference list entry
		TSORT		Sort threads by date or message number
		TSUBSORT	Sort threads by subject

	o  Changes to mhexternal.pl filter:
	
	    -  Two new options: useicons and iconurl="url".
	    -  Added some more content-types to CTExt hash.

	o  Added filter for text/enriched data (mhtxtenrich.pl).

	o  Changed default setting for MIMEFILTERS.  The following
	   was added:

	    model/*:m2h_external'filter:mhexternal.pl
	    text/enriched:m2h_text_enriched'filter:mhtxtenrich.pl
	    text/richtext:m2h_text_enriched'filter:mhtxtenrich.pl

	o  Some code moved to new library files (mhopt.pl,
	   mhfile.pl).

=======================================================================
1997/05/23	(2.0.1)

    Bug Fixes

=======================================================================
1997/05/16	(2.0.0)

	o  Added TCONTBEGIN, TCONTEND, TINDENTBEGIN, TINDENTEND
	   resources.  They are provided to support the formatting
	   of threads that split across multiple pages of a
	   multipage index.

	o  Added "nonfixed", "maxwidth", and "keepspace" options
	   to text/plain (mhtxtplain.pl) filter.

	o  A directory file is now used for performing archive
	   locking.  This should provide better portability across
	   operating systems.

	o  Dervied files returned from filters can be directories.
	   If so, the any directory is completely removed if the
	   message is removed.

	o  The mhexternal.pl filter can now output files into
	   a subdirectory with the "subdir" option.  This may be
	   useful for those wanting to use the "usename" option
	   and avoid potential filename conflicts.

	o  The $NEXT...$ and $PREV...$ resource variables now
	   behave as one may expect.  I.e.  The are always relative
	   to the base sort method: date, author, subject, message
	   number.  The REVERSE resource has no effect on their
	   values.  Therefore, the variables no longer refer to
	   the actual physical listing order.  This new behavior
	   no longer requires a users to redefine button and link
	   resources for the sake of specifying REVERSE.

	o  "Resent-To" and "Resent-Cc" will now have e-mail
	   address hyperlinked.

	o  Unknown types processed by mhexternal.pl now default
	   to have a ".bin" extension.  This should cause HTTP
	   servers to treat the file as application/octet-stream.

	o  Standard input can be specified as the source of a
	   mailbox by using a lone "-" on the command-line.  Note:

CHANGES  view on Meta::CPAN

	o  New resource variables
		
		$IDXLABEL$	- Label for main index
		$MSGGMTDATE$	- Date of message in GMT format
		$MSGLOCALDATE$	- Date of message in local format
		$TIDXLABEL$	- Label for thread index

	o  Some enhancements to the documentation.

	o  Some code changes.

=======================================================================
1997/01/31	(2.0.0 beta 1)

	o  RFC 1522 support.  Charset filters can be plugged in to
	   handle character sets not recognized by mhonarc.
	   The library, iso8859.pl, contains charset filters for
	   character sets iso-8859-[1-10].

	o  Multi-page index generation.

	o  Subject-based threading is done inconjunction with explicit
	   threading.

	o  Missing messages in a thread are recognized when processing
	   messages that utilize the References field.

	o  New resources for customizing thread indexes.  There is
	   now complete user control on how thread indexes are
	   formatted.

	o  Resource are available to access the next and previous messages
	   in thread from messages.

	o  Inclusion of files containing resource settings can be
	   done within a resource file.

	o  Support for a default resource file.  The default resource
	   file is one of the following, in the order of precedence:

		1. File specified by the M2H_DEFRCFILE envariable
		2. $HOME/.mhonarc.rc
		3. <Install-Library-Dir>/.mhonarc.rc

	   "<Install-Library-Dir>" is the path of the MHonArc library
	   directory defined during installation.  For MS-DOS, replace
	   ".mhonarc.rc" with "MHONARC.RC".

	o  Support for user defined resource variables.

	o  Support for user defined derived files for messages.

	o  Support for the Content-Length field.

	o  Modification time of messages, and derived files, can be
	   set to the Received/Date time specified in the message.

	o  More control on how mail headers get formatted.

	o  Added filter in mhexternal.pl to be the default filter
	   for main content-types: application, image, video, audio.

	o  List of enhancements to mhexternal.pl:
	
		- Show content-type if the data is not recognized.
		- New `ext' filter option to define the extension to
		  use for the created file.
		- New `type' filter option to define the "english"
		  type name of the create file.
		- Content-Disposition is supported.  Filenames are
		  ignored still unless `usename' argument passed to
		  filter.
		- Added recognition of few more content-types

	o  Updated date parsing to figure out the date of a message to be
	   more robust on how it parses a date.  If unable to parse
	   date, the message will take on the current time for sorting
	   purposes.  Also, character case is ignored in month and weekday
	   names.

	o  The comment declaration "<!--X-Body-of-Message-->" is
	   now inserted between the message header and body.  Helps
	   in the building of some search indexes to restrict searches
	   on message data.

	o  Many resource settings are no longer stored in database if
	   the resource is the default value.  Save some disk space and
	   allows resources to self adjust when a dependent resource is
	   changed.

	o  The text/plain filter in mhtxtplain.pl has the following
	   enhancements:
	   
	       -  Check for charset to control character conversion.
	       -  Integrated iso-2022-jp filter (keys off charset)
	       -  Filter option "quote" cause quoted text in message
		  to be italicized.
	       -  Filter option "asis" defines a list of charsets to
		  not convert to sgml entitites.  Example usage:

			asis=iso-8859-1:iso-8859-2

	o  mhtxt2022.pl has been removed since the code has been
	   integrated into mhtxtplain.pl.

	o  Resource file elements that have textual content (ie. no
	   line oriented content) can specify the "chop" attribute
	   to have the last end-of-line stripped from the content.
	   Example usage:

		<nextbuttonia chop>
		[Next]
		</nextbuttonia>

	o  Fixed bug in creating links of message-ids.  Mhonarc blindingly
	   made links of message-ids when editting messages w/o
	   consideration that the message-ids may already be linked.  This
	   caused markup like the following to occur:

	    <A HREF="..."><A HREF="..."><A HREF="...">...</A></A></A>...

	   Browsers handle the invalid markup with no problems, causing
	   the bug to go unnoticed for a long time.  Now, only new
	   added message-ids are scanned for when creating links.

	o  $readmail'FieldSep should now be used instead of $FieldSep
	   for separating duplicate fields in a parsed message header.

	o  The -scan output now prints a 4 digit year.

	o  Bogus space no longer appears in subjects and dates.

	o  Outdir permissions are not checked if -single specified.

CHANGES  view on Meta::CPAN

	   The file is just required from the main source.

	o  Use q{} instead of qq{} when trying to read database file.
	   Should fix require problem under MS-DOS.

	o  Added <!--X-Reference-Id: ... --> comments at beginning
	   of messages.  May aid in database recovery techniques.

	o  ';'s are now deleted in filenames in mhexternal.pl
	   (applicable only when "usename" option specified)

	o  Added recognition of '/' when converted e-mail addresses
	   to mailto links in message headers.

	o  Simple fix to mhtxt2022.pl for execution under Perl 5.

=======================================================================
1996/04/18	(1.2.2)

	o  Increased the speed performance of base64 decoding.  Speed
	   increase is much greater under Perl 4 than Perl 5.

	o  Added -time option to print out total CPU execution time.
	   Mainly used for debugging reasons (like checking on
	   base64 decoding times).  Time information is sent to
	   standard error.

	o  Added M2H_LOCKDELAY envariable and -lockdelay option.
	   Either can be used to adjust the sleep time between
	   attempts to lock the archive.

	o  Added -force option to override a lock on an archive if
	   attempts to lock fail.

	o  Added image/x-bmp and image/x-pcx to the default supported
	   MIME types.

	o  Ignore "Sv:" at the beginning of subjects when sorting by
	   subject.  "Sv:" is Danish for "Re:".

	o  Fixed bug in mhutil.pl where TIDXPGEND actually set
	   TIDXPGBEG.

	o  Dynamically define exclude_field routine after reading
	   user options.  exclude_field is utilized when formatting
	   a message header in HTML.  Defining the routine at run-time
	   helps reduce the regular expression overhead the old version
	   of the routine entailed.  There should be an increase in
	   overall execution time.

=======================================================================
1996/03/22	(1.2.1)

	o  Added support for x-uuencode content-transfer-encoding.

	o  Added -locktries command-line option.

	o  Added the resource variable $OUTDIR$.

	o  mhexternal.pl filter will use the name parameter string
	   on the content-type field as the anchor text to the file
	   if there is no content-description.

	o  application/x-patch is recognized and processed by the
	   text/plain filter (mhtxtplain.pl).

	o  Fixed bug in install.me and osinit.pl where setting
	   $'PROG caused perl to terminate if $'DIRSEP was a backslash
	   (occured under MS-DOS usage).

	o  Fixed bug in install.me in the create_dir routine.
	   If $DIRSEP was a backslash, the regular expression setting
	   @a would cause perl to abort with an error.

	o  Fixed database bug where the MIMEARGS resource setting
	   was not being stored.

	o  Fixed index listing bug where a reverse listing was not
	   correct if an index size was specified less than the
	   current size of the archive.

=======================================================================
1996/03/01	(1.2.0)

	o  Rewrote message parser routine so it will work under Perl 5
	   for multipart messages.  The rewrite also allows some
	   additional features that are mentioned below.

	o  The -mbox and -mh options are no longer required.  MHonArc
	   will automatically determine which mode to operate in
	   based upon the file arguments.  Hence, one can specify
	   MH folders and mailbox files on the same command-line.
	   Both options are ignored if specified.

	o  An HTML index of an archive contents can be generated to
	   standard output (-genidx).

	o  Message header lines not conforming to RFC 822 are ignored.
	   (Eg: Those pesky "From " lines should not show up anymore --
	    please do not confuse this with the regular "From:" lines;
	    note the colon vs the space).

	o  New resources:

		BOTLINKS	- May be used to completely customize
				  the links at the bottom of messages.
		IDXPGBEGIN	- Opening markup for main index page.
				  Allows one to redefine opening HTML
				  element, HEAD element, TITLE element,
				  opening BODY element, etc.
		IDXPGEND	- Closing markup for main index page.
		IDXSIZE		- Set the maximum number of messages
				  listed in index.  This is different
				  in MAXSIZE where MAXSIZE will remove
				  older messages when the MAXSIZE limit
				  is reached in the archive.
		MIMEARGS	- Define arguments to filters
		MSGPGBEGIN	- Opening markup for message pages.
				  Allows one to redefine opening HTML
				  element, HEAD element, TITLE element,
				  opening BODY element, etc.

CHANGES  view on Meta::CPAN

		-genidx		- Generate HTML index of archive contents
				  to stdout.
		-idxsize	- Maximum number of messages shown in indexes
		-notsubsort	- Do not sort threads listed by subject.
		-savemem	- Write message data while processing
		-tsubsort	- Sort threads listed by subject.

	o  The library mhtxt2022.pl has been added that provides
	   a filter to process ISO-2022 (Japanese) encoded mail messages.
	   See mhtxt2022.pl on how to hook it in.

	o  The mhexternal.pl filter by default ignores any filename
	   specification in the message for creating derived files.
	   This avoids name conflicts and security problems.
	   The "usename" filter option may be used to override this.

	o  Mime filters are now called with two additional arguments:

		$converted_data = &function(
			$header, *parsed_header_assoc_array,
			*message_data, $decoded_flag,
			$optional_filter_arguments);

	   The $decoded_flag is set to 1 if the *message_data has been
	   decoded.  $optional_filter_arguments contains an optional
	   argument string as determined by the filter.

	o  Mime filters can now be registered for multipart types
	   and message types.  This allows one to override mhonarc's
	   conversion of these types, and completely replace mhonarc's
	   message->HTML conversion process.

	o  Mime filters should now use $'FieldSep instead of $'X for
	   accessing parsed message headers.

	o  Mime filters can be registered for a base type.  Ie.
	   It is no longer required to explicitly list each possible
	   subtype if a single filter is to be used for them all.
	   Example:

		<mimefilters>
		image/*:myfilter'imagefilter:myfilter.pl
		</mimefilters>

	   Registers "myfilter'filter" for all image data types,
	   regardless of subtype.  However, if an explicit entry
	   exists for a subtype, then that filter is called.
	   Example:

		<mimefilters>
		image/*:myfilter'imagefilter:myfilter.pl
		image/gif:myfilter'giffilter:myfilter.pl
		</mimefilters>

	   "myfilter'giffilter" is called for all image/gif data.
	   "myfilter'imagefilter" is called for all other image data.

	o  A new resource, MIMEARGS, may be used to pass optional arguments
	   to filters to control their behavior.  The format of the
	   argument string is controlled by the various filters.  The
	   arguments can be specified by a specific content-type, or
	   for the filter routine in general.  A content-type argument
	   will be used over any arguments specified for a filter.

	   Example usage:

		<mimeargs>
		image/gif:inline usename
		m2h_external'filter:usename
		</mimeargs>

	   See the documentation for possible arguments to filters.

	o  Installation program can now be invoked in batch mode.

	o  Thread index properly includes docurl as main index.
	   -nodocurl will prevent the inclusion as with the main index.

	o  Fixed bug in mhtxthtml.pl on properly propogating a base
	   URL to relative URLs starting with a "/".

	o  Fixed bug where single quotes, and backslashed in keys of
	   associative arrays in the database file were not getting
	   escaped.

	o  Fixed bug where spaces and special characters were not
	   properly escaped in URL strings: spaces were left as-is,
	   and special characters were deleted.

	o  Removed illegal invocation choices in the Synopsis of the
	   documentation.

=======================================================================
1995/04/24	(1.1.1)

	o  Fixed bug in -scan output where month in date was off by
	   one.

=======================================================================
1995/04/21	(1.1.0)

	o  Made modifications to make MHonArc suitable to run
	   under MS-DOS without modification.  MHonArc will
	   automatically detect if it is running under Unix or MS-DOS.

	o  Added support for a thread index.  MHonArc will create a
	   complimentary index to the main index showing message
	   threads.

	o  Archive messages can be deleted.

	o  A listing to stdout of an archives contents can be
	   generated.

	o  Maximum number of messages for an archive can be set.
	   Older messages (based on sort method) are removed
	   automatically during add operations.

	o  MHonArc will now recognize if you try to add in a message
	   that already exists in an archive.

	o  The -editdx option will now also cause a updating of all

CHANGES  view on Meta::CPAN

		THEAD		-- Text at top of thread index page
		THREAD		-- Create thread index
		TLEVELS		-- Depth of thread listing
		TLITXT		-- Template text for entry in thread
				   index
		TIDXFNAME	-- Thread index filename
		TINDEXBL	-- Top button label in messages to
				   thread index
		TINDEXFL	-- Verbose label in message to thread
				   index
		TTITLE		-- Title of thread index page

	o  Added the following command-line options:

		-maxsize	-- Maxinum # messages in an archive
		-nodoc		-- Do not put link to documentation
		-nothread	-- Do not create thread index
		-rmm		-- Remove messages from an archive
		-scan		-- Listing of archive to stdout
		-thread		-- Create thread index
		-tidxfname	-- Thread index filename
		-tlevels	-- Depth of thread listing
		-ttitle		-- Title of thread index page

	o  Added the following environment variables:

		M2H_MAXSIZE	-- Maxinum # messages in an archive
		M2H_THREAD	-- If non-zero, create thread index
		M2H_TIDXFNAME	-- Thread index filename
		M2H_TLEVELS	-- Depth of thread listing
		M2H_TTITLE	-- Title of thread index page

	o  Added the following variables for template resources
	   (applicability of variables vary depending on the resource):

		$DOCURL$	-- URL to documentation
		$IDXFNAME$	-- Main index page filename
		$IDXTITLE$	-- Main index page title
		$NEXTMSG$	-- Next message filename
		$PREVMSG$	-- Previous message filename
		$PROG$		-- Program name
		$TIDXFNAME$	-- Thread index page filename
		$TIDXTITLE$	-- Thread index page title
		$VERSION$	-- Version number of the program

	o  Added $FROM$, $MSGID$, and $SUBJECT$ variables to be used
	   in the MAILTOURL resource.

	o  The string `$$' in template resources will produce a `$' in
	   the output.

	o  Fixed problem with messages (with follow-ups) getting
	   unnecessarily updated when messages are added to an archive.

	o  Only a CR/LF, or LF, pair will terminate a message head.
	   Before, MHonArc was terminating message heads when
	   encountering an empty line or a line that only contained
	   whitespace (which was incorrect behavior).

	o  Fixed bug in mhexternal.pl dealing with the `name' parameter
	   in the content-type field.  Surrounding "s or 's were not
	   being deleted causing filenames with quotes to be written.

	o  mhexternal.pl: The head of a pathname in the `name'
	   parameter in the content-type field is stripped off before
	   writing the external file.  I.e. Only the base filename is
	   used.

	o  Only one <HR> after the H1 subject in messages will appear
	   if no message header fields are printed.

	o  Added recognition of the following content-types in
	   mhexternal.pl:

		application/mac-binhex40

	o  Added a extras/ directory containing useful programs for
	   MHonArc.  See README in the directory for information on
	   the programs contained in there.

	o  To support -rmm, MIME filters now return an array.  The
	   first array value is the HTML for the message, and any other
	   array values are filenames of files generated by the
	   filter.  This allows MHonArc to know of any extra files that
	   must be deleted when a message is removed.

	o  Some routines from the main mhonarc source file have been
	   moved into a separate librarys: readmail.pl, mhdb.pl,
	   mhutil.pl

	o  The default URL to the documentation is now,

		http://www.oac.uci.edu/indiv/ehood/mhonarc.html

	   The old URL,

		http://www.oac.uci.edu/indiv/ehood/mhonarc.doc.html

	   is still valid.

	o  There's probably other stuff, but I cannot remember.

=======================================================================
1994/10/01	(1.0.0)

	o  First release -- See RELNOTES about compatibility issues
	   with mail2html.

=======================================================================
Earl Hood, mhonarc@mhonarc.org
$Id: CHANGES,v 1.161 2014/04/22 02:33:09 ehood Exp $



( run in 0.351 second using v1.01-cache-2.11-cpan-524268b4103 )