MHonArc v2.3 -- Appendix: Bugs

# Appendix: Bugs

## Reporting Bugs

To report a bug against MHonArc, send mail to mhonarc@ncsa.uiuc.edu and please include the following information:

- Version of Perl (can be retrievied by "`perl -v`").
- Version of the program (can be retrievied by "`mhonarc -v`").
- The operating system you are using (on Unix the output of "`uname -a`" is useful).
- The exact command-line used to invoke the program.
- Error/diagnostic messages from the program.
- Any other information that might prove useful (eg. input files, resource files, environment settings, etc).

If possible, avoid sending a huge mail message. Try to make the bug reproducable with the smallest amount of data that is possible. If this is difficult, then either provide URLs to any data needed to reproduce the bug, or state that data can be provided via private mail to any persons concerned.

Note, some bug reports are not actual bugs, but usage errors. Make sure you have checked the problem against the documentation and FAQ before sending a report. Also, check the bug list in the documentation to see if the bug has already been reported (and maybe fixed). You may need to go the MHonArc home page to check the bug list in case you are not using the latest version of MHonArc.

## Bug List

The following gives a list of bugs reported against MHonArc. Each bug listing shows the version the bug was reported against (the bug may be applicable to earlier versions), a description of the problem, and if applicable, a solution and version of MHonArc the bug was fixed.

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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Fixed | 2.1.1
Version | 2.1.0
Problem | February is misspelled "Febuary" in mhtime.pl.
Solution | Change the spelling so its correct.
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.
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.
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.
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.
Fixed | 2.1.1
Version | 2.1.0
Problem | Anchor text of MAILTOURL links is translated to URL escaped text.
Solution | mailUrl() routine fixed.
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.
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.
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.
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().
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.
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.
Fixed | 2.1.0
Version | 2.0.1
Problem | Subjects using the "... -Reply" convention started a new thread.
Solution | Fixed typo in regexp.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Fixed | 2.0.0
Version | 2.0.0 beta 3
Problem | Setting MONTHS and MONTHSABR had no effect.
Solution | Fixed.
Fixed | 2.0.0
Version | 2.0.0 beta 3
Problem | $TNEXTFROM$ actually gave the value of $NEXTFROM$.
Solution | Fixed.
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.
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.
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.
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.
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.
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.
Fixed | 2.0.0 beta 3
Version | 2.0.0 beta 2
Problem | Indexes created via the OTHERINDEXES resource contain no messages.
Solution | Fixed.
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.
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
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.
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.
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.
Fixed | 1.2.3
Version | 1.2.2
Problem | Database read failures occur in add operations on MS-DOS systems.
Solution | Fixed (?)
Fixed | 1.2.3
Version | 1.2.1
Problem | The TIDXPGEND resource actually sets the value of the TIDXPGBEG resource.
Solution | Fixed.
Fixed | 1.2.2
Version | 1.2.0
Problem | MHonArc will abort execution under MS-DOS due to regular expression error.
Solution | Fixed.
Fixed | 1.2.1
Version | 1.2.0
Problem | install.me will abort execution under MS-DOS due to regular expression error.
Solution | Fixed.
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.
Fixed | 1.2.1