MHonArc Users, v2.4.0 is now available for download from <URL:http://www.oac.uci.edu/indiv/ehood/mhonarc.html>. The following lists the changes and bug fixes in v2.4.0: Enhancements/Changes -------------------- o Added the following resources: ADDRESSMODIFYCODE Perl expressions to apply to addresses during message header conversion. CHECKNOARCHIVE Check "no archive" flag in messages. LOCKMETHOD The type of archive locking performed. SPAMMODE Perform actions to deter email address harvesters. SSMARKUP Markup at the *very* beginning of any generated page. STDOUT Destination of stdout messages/data. STDERR Destination of stderr messages/data. SUBJECTTHREADS To check, or not to check, subjects when computing threads. o Added the following resource variables: $FROMADDRNAME$ Username portion of From email address. $FROMADDRDOMAIN$ Domain portion of From email address. $TOADDRNAME$ Username portion of an email address (applicable in MAILTOURL only). $TOADDRDOMAIN$ Domain portion of an email address (applicable in MAILTOURL only). o A new utility program: mha-decode. The program functions as a MIME message decoder. Can be used against mail folders or single messages. o The "PARENT" argument to applicable resource variables is now called "TPARENT". This change should not affect anyone since the "PARENT" argument did not work properly in previous releases. o SUBJECTHEADER and HEADBODYSEP resource changes will now affect existing messages that are edited during normal operations or via EDITIDX. Note, messages created from old versions of MHonArc may not be affected. o The default TIMEZONES settings now has a more complete list. o Timezone acronym settings now support [+-]HHMM specifications. o Support for ISO-2022-JP encoded strings in message headers is now supported. It does assume that HTML viewer supports ISO-2022-JP. o If Digest::MD5 is installed, md5_hex() will be used to create message-ids for messages without message-ids. This allows MHonArc to ignore non-message-id archived messages in ADD mode. The MD5 digest is computed only on message header for efficieny. If Digest::MD5 is not installed, a message-id will still be assigned if none present, but MHonArc will not be able to detect if message has already been archived in subsequent ADD operations. o Text/html filter supports the "noscript" option. If specified, any script-related markup will be removed. This provides added security to avoid sites being compromised with foreign client-side scripting. o Added the following options to mhexternal.pl (the save-to-file filter): forceattach, forceinline, and inlineexts. o Recognize mailing list headers as defined by RFC 2369 and hyperlink URLs listed. o If no boundaries exist in a multipart message (even though a boundary is defined in the header), MHonArc will treat the entire body as the first part. This prevents "unable to process" warnings. o The "<!--X-From" comment declaration at the top of converted messages is now munged by a modified ROT13 to facilitate anti-spam-bot measures, but still provide the "From" information for mha-dbrecover. o When editing message pages, the new version of the page is now created as a temporary file and then if successfully created, it will get renamed to its proper name. This help avoids "losing" a message page if there is an error during page editing. The same method is applied to the dumping of DBFILE. o Message sorting modified to improve sorting performance when sorting by subject and author. o URL matching expression in mhtxtplain.pl modified to handle '&' characters. Bug Fixes --------- 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(). 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. 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. 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. Problem: %h not recognized in time format strings. Solution: Fixed. Problem: Use of $ICON$ will generate defective tag like `ALT="[text/plain]">'. Solution: Fixed typo in join() call in mhrcvars.pl. Problem: Some messages with specified inline images are not having images inlined. Solution: Content-Disposition parsing fixed. 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. Problem: MHonArc checking for writable OUTDIR in SINGLE mode. Solution: Fixed. Problem: Default resource file not read if located in MHonArc lib directory. Solution: Fixed improper assumption of @INC setting. 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.