Changes summary for next release of mhonarc

1996-01-24 17:19:03
I believe I got all the enhancements/fixes I'm going to do for
the next release of mhonarc.

The big thing to do now is update the documentation (Ugh).  However,
if anyone is interested in testing out the next release, I can make
a tar bundle available.  I should warn that some changes are
significant, so have care on testing.  I'd try it out on some
test mail first before using it on any main archives.

Changes list:

        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.
                MSGPGEND        - Closing markup for message pages.
                NEXTBUTTON      - Defines the 'Next' button.
                NEXTBUTTONIA    - Defines the 'Next' button when it is
                NEXTLINK        - Defines the 'Next' link.
                NEXTLINKIA      - Defines the 'Next' link when it is
                NOTSUBSORT      - Do not sort threads by subject.
                OTHERINDEXES    - List other resource files defining
                                  other indexes to create when creating,
                                  or updating, an archive.
                PREVBUTTON      - Defines the 'Prev' button.
                PREVBUTTONIA    - Defines the 'Prev' button when it is
                PREVLINK        - Defines the 'Prev' link.
                PREVLINKIA      - Defines the 'Prev' link when it is
                TIDXPGBEGIN     - Opening markup for thread index page.
                                  Allows one to redefine opening HTML
                                  element, HEAD element, TITLE element,
                                  opening BODY element, etc.
                TIDXPGEND       - Closing markup for thread index page.
                TOPLINKS        - May be used to completely customize
                                  the buttons at the top of messages.
                TSUBSORT        - Sort threads listed by subject.

        o  Removed resources:


           Resource were removed because they were no longer applicable
           and/or have been superceded by other resources.  MHonArc
           will still honor old resource settings (where applicable) of
           older archives and incorporate them into the new resource

        o  When specifying the resource file, mhonarc will now do
           the following to determine its location:

                1.  If its an absolute pathname, mhonarc uses it.
                2.  If it is a relative pathname, mhonarc checks for
                    it relative to the current working directory.
                3.  Otherwise, mhonarc checks for it relative to
                    location of the archive as specified by outdir.

           This resolution will allow you to place resource files with
           the archive if desired (can be useful when using the
           OTHERINDEXES resource element).

        o  Because of the new resources available, many <HR>'s are no
           longer hard-coded and are controllable by resources.  <HR>'s
           are still used in message pages to separate message data
           from mhonarc data.

        o  Added resource variables:
           (NOTE: Some variables are only valid in certain contexts)

                $DDMMYY$        - Date of message in dd/mm/yy format
                $IDXSIZE$       - Max size of index list
                $MMDDYY$        - Date of message in mm/dd/yy format
                $MSGID$         - Message id
                $NEXTBUTTON$    - Next button markup
                $NEXTFROM$      - From field of next listed message
                $NEXTFROMADDR$  - From e-mail address of next listed message
                $NEXTFROMNAME$  - From name of next listed message
                $NEXTLINK$      - Next link markup
                $NEXTMSGNUM$    - Number of next listed message
                $NEXTSUBJECT$   - Subject text of next listed message
                $NUMOFIDXMSG$   - Number of messages in index list
                $PREVBUTTON$    - Previous button markup
                $PREVFROM$      - From field of previous listed message
                $PREVFROMADDR$  - From e-mail address of prev listed message
                $PREVFROMNAME$  - From name of previous listed message
                $PREVLINK$      - Previous link markup
                $PREVMSGNUM$    - Number of previous message
                $PREVSUBJECT$   - Subject text of previous listed message
                $YYMMDD$        - Date of message in yy/mm/dd format

        o  Can specify a 'U' with variable length specifier to denote
           replacement string is to be used in a URL.  Examples:


           The 'U' causes the replace text to have special characters
           escaped as denoted by the URL spec.  NOTE: Specify ":U"
           should NOT be used in the MAILTOURL resource; the variables
           will automatically be expanded according to the URL spec.
           Specifyind ":U" or a length specifier in the MAILTOURL
           resource will prevent mhonarc from detecting the variable.

        o  New command-line options:

                -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 has been added that provides
           a filter to process ISO-2022 (Japanese) encoded mail messages.
           See on how to hook it in.

        o  The 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,

           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.


           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.


           "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:

                image/gif:inline usename

           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 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

        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