home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 3 Comm / 03-Comm.zip / mmos2036.zip / HISTORY < prev    next >
Text File  |  2000-04-28  |  84KB  |  1,969 lines

  1. Revision History
  2. ================
  3.  
  4. 0.36 - 2000/04/28:
  5.  
  6. New features:
  7.  
  8. - The area list has a new mode, "Active", to accompany the existing "All"
  9.   and "Subscribed" views. The Active mode lists only those areas that
  10.   contain messages. The L key now cycles among all three modes. (Note that
  11.   in some cases, two modes may be equivalent; e.g., in plain QWK packets,
  12.   there's no way to distinguish Active from Subscribed.)
  13.  
  14. - There's also a new "Marked" view in the letter list. If any messages in
  15.   the area are marked, the L key cycles between all, unread, and marked
  16.   views. (Otherwise, it toggles all/unread, as before.) Marked messages are
  17.   no longer automatically included in the unread view.
  18.  
  19. - In the packet and letter lists, the current sort modes are now displayed.
  20.   And in the area and letter lists, the current mode is displayed. The
  21.   number of files is shown in the packet list, but only if the total number
  22.   of items (files + directories) exceeds the window length. The area and
  23.   letter lists now work similarly, showing the number of items only when
  24.   they exceed the window length.
  25.  
  26. - By popular demand, the default modes for the area list (all, subscribed,
  27.   or active) and the letter list (all or unread) can now be set in .mmailrc.
  28.   See the "AreaMode" and "LetterMode" keywords.
  29.  
  30. - Old-style Blue Wave offline config, using .PDQ files, is now supported.
  31.   (.UPI/.NET replies still aren't, yet.) Requested by Russell Tiedt.
  32.  
  33. - Specifying a directory on the command line now opens the packet window on
  34.   that directory. No more items are read from the command line afterwards.
  35.  
  36. - In Unix, the "~" character is now recognized as a synonym for the contents
  37.   of the "HOME" environment variable in input, and is also used that way in
  38.   the packet list display. (However, "~username" is not supported.)
  39.  
  40. - The Tab key works as an alternative to Enter in input windows.
  41.  
  42. - The BCC port is now the "standard" Win32 port. (The RSX/NT port is still
  43.   available, renamed mmrsxNNN.zip.)
  44.  
  45. - New BeOS binary.
  46.  
  47. Bug fixes and such:
  48.  
  49. - Makefile.tcc and Makefile.bcc are now sensible -- no more renaming or
  50.   moving kludges. :-) Also, the "UNUSED_PARAMS" nonsense is gone, and
  51.   MultiMail compiles without warnings under BCC.
  52.  
  53. - The message and ansi viewers can now handle > 64k in the 16-bit version,
  54.   depending on available memory.
  55.  
  56. - In myreaddir(), the DJGPP, Turbo and Borland ports (mmdos, mmxt, and
  57.   mmwin) now use findfirst()/findnext() instead of readdir()/stat(). This
  58.   means that the packet window opens signifigantly faster on large
  59.   directories. (stat() is fine in Unix, but slow in MS-DOS, where it's
  60.   implemented via findfirst().) Also, the list is now built in a single
  61.   pass, instead of one pass for files and another for directories, resulting
  62.   in a speedup on all platforms.
  63.  
  64. - Test of read-only status now works in Borland/Turbo ports.
  65.  
  66. - Grabbing of Fidonet addresses was broken in some situations, causing
  67.   segfaults. Reported by Greg Paski.
  68.  
  69. - When lines ended with spaces, they could be quoted incorrectly. Reported
  70.   by Jim Hanoian.
  71.  
  72. - Tab characters in messages could cause segfaults in some cases.
  73.  
  74. - Soft CR stripping wasn't working.
  75.  
  76. - Looking through my (very) old packets, I found some in which another
  77.   reader (?) had added its own files to a packet with the names "a0000.ndx"
  78.   and "a0001.ndx", which made MultiMail generate a bogus area 0 for those
  79.   packets. Fixed.
  80.  
  81. - The keypad mostly didn't work in the BCC (Win32) port of MultiMail.
  82.   Reported by Jeff Foy.
  83.  
  84. - Using the Goto function in the packet list now puts the highlight bar on
  85.   the first file, as when a directory is selected by pressing Enter. In Lynx
  86.   mode, going left (back) in the packet list now actually goes to the
  87.   previous directory, instead of the parent directory, and the previous
  88.   highlight position is restored.
  89.  
  90. - When cycling through sort modes in the letter list, sort by "To:" is now
  91.   skipped for areas which have no such field (i.e., Usenet areas).
  92.  
  93. - Wrapped header lines in SOUP are now displayed in the correct color.
  94.  
  95. - When writing out offline config (add/drop), the area list was scanned, but
  96.   the current area number was not preserved. This sometimes led to minor
  97.   cosmetic problems in the reply area. Reported by J.H.
  98.  
  99. - Finally replaced the ugly #define list in mmcolor.h with an enum.
  100.  
  101. - Some malformed Internet "From:" lines appear without a space between the
  102.   name and address. In such cases, MultiMail was stripping the last letter
  103.   of the real name.
  104.  
  105. - Several new error messages.
  106.  
  107. - The color files are now archived separately within the binary archives, to
  108.   reduce clutter. Now if I can just figure out how to combine some of the
  109.   documentation files in a sensible way...
  110.  
  111. 0.35 - 2000/03/29:
  112.  
  113. New features:
  114.  
  115. - None.
  116.  
  117. Bug fixes and such:
  118.  
  119. - Oops! Due to the changes in the way LetterWindow::MakeChain() works, quote
  120.   wrapping was broken. (Lines after wrapped lines would not be wrapped
  121.   upwards, nor marked with quote marks.) A five-second fix, but alas, I
  122.   didn't notice the bug until now.
  123.  
  124. 0.34 - 2000/03/29:
  125.  
  126. New features:
  127.  
  128. - Two new ports officially supported: An alternate Win32 port, via Borland
  129.   C++ 5.5 (available free at the Borland web site); and, more interestingly,
  130.   a 16-bit MS-DOS port, via Turbo C++ 3.0 (an ancestor of Borland C++ 5.5).
  131.   I released an experimental version of the latter a couple weeks ago, but
  132.   the official 0.34 version is much better, mainly in reducing memory usage
  133.   and in not (always) giving up when memory runs out. :-)
  134.  
  135. - Areas that have replies are now always included in the short list, which
  136.   prevents the replies being misdirected on re-edit. Such areas are also now
  137.   flagged with an 'R' in the main area list.
  138.  
  139. Bug fixes and such:
  140.  
  141. - The "References:" line disappeared from SOUP replies if they were
  142.   re-edited before posting. Reported by J.B. Moreno.
  143.  
  144. - Massive reductions in memory usage for the LetterWindow and AnsiWindow
  145.   classes. The plain message text takes up about half as much space as
  146.   before; the ANSI viewer savings vary, but can be even greater.
  147.  
  148. - The environmental variable "TEMP" now works as an alternative to "TMP"
  149.   with the DJGPP port. If neither of those is defined, nor "DJGPP", it will
  150.   now use the startup directory instead of "C:\".
  151.  
  152. - TEMP or TMP values ending in a slash or backslash now work correctly in
  153.   the Win32, OS/2 and 16-bit MS/DOS ports. Also, all these ports now use the
  154.   startup directory rather than the MMAIL directory as the default location
  155.   for the temporary directories and files, in the absence of a TEMP or TMP
  156.   environment variable.
  157.  
  158. - SOUP replies sometimes had the wrong length in the length field (one byte
  159.   too long), resulting in spurious characters at the ends of messages.
  160.  
  161. - Skip trying to add to read-only files. (But this check doesn't work yet in
  162.   the Borland/Turbo ports.)
  163.  
  164. - References to "interface" in the code changed to "ui". (Apparently,
  165.   "interface" is a reserved word in Borland C++.)
  166.  
  167. - Soft CR stripping moved to the Blue Wave class. Let me know if this is a
  168.   problem. (I haven't seen them in QWK or OMEN packets, and they'll never
  169.   appear in SOUP.)
  170.  
  171. - Various code cleanup. Now 16-bit clean, among other things. :-)
  172.  
  173. 0.33 - 2000/02/21:
  174.  
  175. New features:
  176.  
  177. - Support for encoding and decoding Quoted-Printable headers and bodies,
  178.   primarily in SOUP packets. Decoding is always performed; encoding is
  179.   performed subject to the new .mmailrc keywords "outCharSet", "UseQPHead",
  180.   "UseQPMailHead", "UseQPNewsHead", "UseQPMail" and "UseQPNews". Thanks to
  181.   Peter Karlsson for some of the code.
  182.  
  183. - Support for the OPX format has been removed. I hope this will be only
  184.   temporary. The reason is not technical. If you're affected by this, and
  185.   you'd like to continue using OPX, please email me privately.
  186.  
  187. - Support for individual packet types may now be disabled when compiling, in
  188.   order to save a little space in the executable. The packet modules to
  189.   include are selected in the "modules" file.
  190.  
  191. - The Rename function in the packet list now brings up a Blue Wave-style
  192.   default filename, with a numeric extension based on the last one found
  193.   plus one, unless the packet already has a numeric extension. Also, rename
  194.   failures are reported, and you can no longer rename to the name of an
  195.   existing file.
  196.  
  197. - Some extra pop-up notices like "Opening...", mainly for the benefit of
  198.   slower systems. :-) There are also additional non-fatal error messages in
  199.   several places, as when a Save fails.
  200.  
  201. - .XTI support is now fully segregated into the Blue Wave module. This is
  202.   cleaner, but it means that .XTI files are only recognized in Blue Wave
  203.   packets, and not in other types. The default for the "MakeOldFlags" option
  204.   in .mmailrc has been changed to "Yes".
  205.  
  206. - The automatic prefixing of "Re: " on the subjects of replies can now be
  207.   disabled, for non-Internet areas only, via the "ReOnReplies:" .mmailrc
  208.   keyword. By popular demand. :-)
  209.  
  210. - New color scheme contributed by Tuukka Lehtinen.
  211.  
  212. - Before the removal of the OPX module, these features were added:
  213.  
  214. - In OPX mode, MAIL.FDX is now handled in the same way as .XTI in Blue Wave
  215.   mode. It's written instead of .red when "MakeOldFlags" is set.
  216.  
  217. - Offline config in OPX mode. Thanks to Armando Ramos for the format.
  218.  
  219. Bug fixes and such:
  220.  
  221. - "To:" and "From:" kludge lines in text are now checked only in QWKE
  222.   packets, instead of all QWK packets. This should help with some systems
  223.   that require "To:" lines for Internet addressing.
  224.  
  225. - Blue Wave anonymous areas are now recognized as alias areas, as in QWKE.
  226.  
  227. - Areas flagged as read-only will no longer accept replies, and will pop up
  228.   an error box instead. This works in Blue Wave, QWKE, and OMEN. Requested
  229.   by Jaakko Lintula.
  230.  
  231. - The MS-DOS version sometimes segfaulted due to bugs in DJGPP's qsort().
  232.   Fixed by upgrading to a newer DJGPP library. Reported by Laird Kelly.
  233.  
  234. - When reading the .mmailrc file, unrecognized keywords are now reported.
  235.   May help to catch typos. :-)
  236.  
  237. - In OMEN mode, when the UserName was not set in .mmailrc, all messages were
  238.   being flagged as personal.
  239.  
  240. - Defaults for "AutoSaveReplies" and "AutoSaveRead" changed to "Yes".
  241.  
  242. - Compiling on an Alpha revealed several bugs that didn't show up on systems
  243.   where pointers and ints were the same size (i.e., all the 32-bit systems);
  244.   mainly inappropriate usage of resource::get() vs. ::getInt(). MultiMail is
  245.   now 64-bit ready. :-) Thanks to Compaq for the free account.
  246.  
  247. - In Blue Wave mode, the echotag field is now used as the area description
  248.   if the description field was left blank. Problem reported by Greg Mayman.
  249.  
  250. - Internet address parsing modified to deal with badly-formed addresses like
  251.   "(Name) <address>". Problem reported by Dane Beko.
  252.  
  253. - There were intermittent segfaults in the letter window with screens wider
  254.   than 80 columns, due to an off-by-one error in memory allocation.
  255.  
  256. - The following fixes were made to the OPX module prior to its removal:
  257.  
  258. - Some versions of the Silver Xpress door eat the last character of the tear
  259.   line. MultiMail now pads it out with a sacrificial space in OPX mode.
  260.   Reported by Jim Hanoian.
  261.  
  262. - Some OPX packets split their areas into BRDINFO.DAT and EXTAREAS.DAT;
  263.   MultiMail should now be able to handle this (untested). Reported by
  264.   Armando Ramos.
  265.  
  266. - On some platforms (e.g., the NetBSD version distributed on my site), OPX
  267.   support was not working due to structure alignment padding. Fixed.
  268.  
  269. - New line ending recognized: plain CR. (This is in addition to the LF,
  270.   CRLF, and 0x8D endings recognized in 0.32.) If you got messages with blank
  271.   bodies, or immediate segfaults when opening messages, this will probably
  272.   fix it. Reported by Laird Kelly.
  273.  
  274. - Certain packets (with messages over 64k?) reportedly had incorrect values
  275.   in the length fields of some messages, causing everything after that point
  276.   to become unreadable. This is fixable by using MAIL.FDX to index the
  277.   messages, which MultiMail now does. Reported by Armando Ramos.
  278.  
  279. 0.32 - 1999/10/30:
  280.  
  281. New features:
  282.  
  283. - Support for the OPX packet format. This was reverse-engineered, and has
  284.   really only been tested with the WINS door. See mmail/opxstrct.h in the
  285.   source code archive for the specs.
  286.  
  287. - A "Personal" area (messages addressed to you) is now created automatically
  288.   for all packet types except SOUP. This can be turned on or off (default is
  289.   on) via the "BuildPersArea" option in the .mmailrc -- except in QWK
  290.   packets with .NDX files, where the presence or absence of a "personal.ndx"
  291.   file determines whether the area is generated (the same as in older
  292.   versions of MultiMail).
  293.  
  294. - With Blue Wave packets (and _only_ with Blue Wave packets), MultiMail now
  295.   has the option (off by default) of storing its last-read pointers in an
  296.   ".xti" file, as used by the Blue Wave reader and some compatible programs
  297.   (like BWSave), instead of in MultiMail's native ".red" format. This is
  298.   toggled by the "MakeOldFlags" option in the .mmailrc. (I made the name
  299.   generic in anticipation of support for other such formats, like OPX's
  300.   "mail.fdx".) In reading, .red no longer takes precedence over .xti; if
  301.   both files are present, the one with the later date is used.
  302.  
  303. Bug fixes and such:
  304.  
  305. - Character set translation now works correctly on Linux text consoles that
  306.   use Unicode-mapped fonts. Problem reported by Peter Karlsson. Also, OMEN
  307.   replies to Latin-1 packets were not recognized as being Latin-1 on
  308.   rereading; initial printing of translated fields in the header editor was
  309.   incorrect; and the ANSI viewer always assumed CP437.
  310.  
  311. - Forwarded messages now add only the changed header lines to the body of
  312.   the text, instead of using the same format as saved messages.
  313.  
  314. - Date in SOUP replies was being localized, which is undesirable. Reported
  315.   by P.K.
  316.  
  317. - The Personal area now always shows the correct number of unread messages
  318.   in the area list.
  319.  
  320. - Blank lines are now added automatically before signatures, and the sigdash
  321.   ("-- ") in Internet and Usenet areas is correctly followed by a newline
  322.   before a sig. (Previously, it worked right with taglines, but not sigs.)
  323.  
  324. - Areas with a very long description could cause a segfault when opening the
  325.   letter list. (They were truncated, but not quite enough since the addition
  326.   of the message count.) Also, the header of the letter list now takes
  327.   advantage of the full width of larger screens.
  328.  
  329. - Can now read net-status QWK packets correctly, even without .NDX files.
  330.   (End users shouldn't really be reading net-status QWK packets; but judging
  331.   by a packet I was sent, some are.)
  332.  
  333. - Empty subject lines are now forced to the end of the letter list when
  334.   sorting by subject, instead of messing up the sorting as they were doing.
  335.  
  336. - Precautionary fix for hypothetical corrupted Y2K date fields in Blue Wave
  337.   packets. Hopefully not needed. :-)
  338.  
  339. - The User-Agent line in SOUP mode now includes "SOUP" in the comment. :-)
  340.  
  341. 0.31 - 1999/10/07:
  342.  
  343. New features:
  344.  
  345. - When a new version is run for the first time, instead of prompting whether
  346.   to continue or quit, it prompts whether to edit the .mmailrc file or just
  347.   continue. Should save a step. ;-)
  348.  
  349. Bug fixes and such:
  350.  
  351. - Text files (e.g., MMAIL.RC, or the DOOR.ID or CONTROL.DAT from a QWK
  352.   packet) which did not end in a line feed character would cause MultiMail
  353.   to lock up. This was due to a new line-reading function introduced in
  354.   version 0.30, which fixed some other problems, but stupidly added this
  355.   one. Due to the seriousness of this bug, I'm releasing 0.31 early.
  356.   Reported by David Pratt et al.
  357.  
  358. - Searching did not work in the little area list. (This dates to 0.29,
  359.   though I just noticed it.)
  360.  
  361. - In SOUP packets, extra spaces between header keywords and values are now
  362.   ignored.
  363.  
  364. 0.30 - 1999/09/30:
  365.  
  366. New features:
  367.  
  368. - Support for SOUP packets. Note that type 'M' areas and index files are not
  369.   supported yet; only 'm', 'b' and 'B'.
  370.  
  371. - Support for OMEN packets.
  372.  
  373. - The new keywords "UserName" and "InetAddr" are used to build a default
  374.   "From:" line for SOUP replies, of the form "UserName <InetAddr>". If you
  375.   leave them blank, no "From:" line will be generated. (Conforming SOUP
  376.   packers, like UQWK, will generate their own "From:" lines in that case.)
  377.   The UserName is also used in OMEN mode for display purposes (the actual
  378.   From name is set on upload), and for matching personal messages.
  379.  
  380. - Replies in Usenet areas may now be cross-posted; the newsgroups list can
  381.   be edited.
  382.  
  383. - Quote headers can now be set in the config file (separately for Internet/
  384.   Usenet areas, and others), via the "QuoteHead" and "InetQuote" keywords.
  385.   The maximum width for quoted material can also be set, via "QuoteWrapCols"
  386.   (suggested by Holger Granholm). See the man page for details.
  387.  
  388. - The "Lines:" indicator now includes a percentage.
  389.  
  390. Bug fixes and such:
  391.  
  392. - Long lines in text files would sometimes cause the remainder of the file
  393.   to be read incorrectly. Mainly, this could show up with the tagline file.
  394.   Reported by Dane Beko. Also, blank lines in the tagline file are now
  395.   ignored.
  396.  
  397. - Area 0, if present, was not being sorted in the letter list.
  398.  
  399. - In the MS-DOS version, the first shell-out would trash the old prompt, so
  400.   second and subsequent shells had a bogus prompt. Reported by Jerel
  401.   Arbaugh.
  402.  
  403. - When re-editing a reply and shortening it, the remaining text could end up
  404.   off the screen when returning from the editor. Reported by Jim Hanoian.
  405.   Also, a similar effect could be briefly seen when editing a reply from the
  406.   original, if the reply was shorter.
  407.  
  408. - Text entry fields did not work correctly when backspacing if the text
  409.   filled the field. Reported by Tom Rutherford.
  410.  
  411. - Changed default zip commands -- removed "-o" (for both PKZIP and InfoZip)
  412.   and added "-k" for InfoZip. The latter option forces stored pathnames to
  413.   an MS-DOS compatible 8.3 unicase format, which ensures maximal
  414.   compatibility with doors and such. You may want to add this yourself if
  415.   you're upgrading; but note that it could result in two ".red" files being
  416.   stored into packets that had been read without this option.
  417.  
  418. - Saved messages can now have longer header lines, and the headers are more
  419.   appropriate (closer to what you see in the letter window) for Internet/
  420.   Usenet areas.
  421.  
  422. - Signatures and/or tearlines in Internet/Usenet replies are now prefaced
  423.   with "-- ", and "... " is omitted. Signatures are recognized in text in
  424.   these areas, are colored with the tagline color (I'll make this a separate
  425.   color later), and are not quoted when replying.
  426.  
  427. - Long subject lines and other long lines can now be fully edited,
  428.   regardless of screen width, and will be fully displayed if the screen is
  429.   wide enough.
  430.  
  431. - In Internet/Usenet areas in Blue Wave packets, the subject, date and
  432.   newsgroups are now extracted from the kludge lines in the text, as with
  433.   references and message-id. (Most of the changes in this version of
  434.   MultiMail are for enhanced Internet/Usenet support; although this was
  435.   primarily for the benefit of SOUP, it carries over into Blue Wave.)
  436.  
  437. - TAB characters are now decoded into spaces in MakeChain(). This prevents
  438.   them from pushing lines off the screen. But to save a message with its TAB
  439.   characters intact, you have to save it from the ANSI viewer.
  440.  
  441. - Strip any number of leading "Re:"'s, not just the first.
  442.  
  443. - Filenames within reply packets are now created in upper case, even if you
  444.   don't use the "-k" option (see above). Mainly this was for compatibility
  445.   with the MBSE BBS, though there may be others with the same problem. (The
  446.   format specs generally show the filenames in upper case, so this is
  447.   arguably the correct behavior for a case-sensitive filesystem; but most
  448.   were designed with the FAT filesystem in mind, and only SOUP explicitly
  449.   addresses the issue of case.)
  450.  
  451. - "Re: " will not be prepended if it would make the subject exceed the
  452.   maximum width for the format. Also, non-QWKE QWK packets now have their
  453.   subjects limited to 25 characters (again); the "Subject:" kludge will not
  454.   be added except in QWKE packets. (I'll add it back for some later, when I
  455.   can identify the particular door's capabilities better.)
  456.  
  457. - ':' and '|' are now recognized as quote indicators, but only when
  458.   appearing in the first column. (But if ':' is the start of a smiley, it's
  459.   ignored.)
  460.  
  461. - When quoting in Internet/Usenet areas, blank lines now have a quote marker
  462.   prepended, as this seems to be the standard.
  463.  
  464. - Intitial check for 80x20 instead of 60x20, error if screen too small.
  465.  
  466. - I made a (temporary) patch to PDCurses for the MS-DOS version, so that
  467.   MultiMail will work correctly in non-standard video modes. Problem
  468.   reported by J.A.
  469.  
  470. - Overdue documentation of the .mmailrc file in the man page.
  471.  
  472. 0.29 - 1999/08/29:
  473.  
  474. New features:
  475.  
  476. - List windows now have a "scroll bar" when the number of items in the list
  477.   exceeds the number that will fit onscreen. This feature is selectable via
  478.   the "UseScrollBars" keyword in .mmailrc (on by default). Note that it's
  479.   not (yet) mouseable.
  480.  
  481. - The new "UseLynxNav" option (off by default) changes the function of the
  482.   left and right cursor keys: left backs out, and right selects. (It's named
  483.   after the Lynx web browser. The idea comes from Pine, which has a similar
  484.   option.) It also makes the left arrow equivalent to selecting ".." in the
  485.   packet list, except on the top level (where it's equivalent to Quit).
  486.  
  487. - Fido "SEEN-BY:" lines are now marked as hidden if they weren't already.
  488.   (This allows you to turn on the "extended info" option in Blue Wave doors
  489.   below ver. 4 with impunity.)
  490.  
  491. - The Delete key will work as an alias for 'K' in all cases.
  492.  
  493. Bug fixes and such:
  494.  
  495. - Major bug: In certain cases, the little area list would not set the
  496.   correct area, and the reply would be misdirected. Reported by Jerel D.
  497.   Arbaugh.
  498.  
  499. - Outside of the packet/area/letter list, the search routine could abort in
  500.   some cases (i.e., '/' would simply not work). Reported by Jim Hanoian.
  501.  
  502. - If a message was saved (from the letter list) before any messages had been
  503.   viewed, it could be saved rot13'd!
  504.  
  505. - The "soft CR" filter was not working if the console character set was
  506.   Latin-1.
  507.  
  508. - Re-editing of replies from the original area could move the letter list
  509.   selection inappropriately (to the corresponding reply number).
  510.  
  511. - If the last-opened packet was deleted and replaced by another packet of
  512.   the same name, the old packet would be "reopened" even though it was gone.
  513.   Reported by Raymond Cool.
  514.  
  515. - Lines which contained a '^A' character, but _not_ at the beginning of the
  516.   line, were erroneously being marked as hidden.
  517.  
  518. - "Re:" is now left visible in the letter window, though still stripped from
  519.   the letter list. (In this, I emulate Tin.)
  520.  
  521. - During a search, the beep-on-personal would beep on each personal message
  522.   scanned, even when the corresponding message was not actually displayed.
  523.  
  524. - When shelling out, the prompt string could be truncated if it was
  525.   excessively long. Not really a bug -- I just hadn't believed that anyone
  526.   would actually have a prompt string that long. :-) Reported by J.D.A.
  527.  
  528. - Due to its placement at the start of a line, an instance of the word
  529.   ".mmailrc" was interpreted as a control code and disappeared from the
  530.   formatted man page. Reported by Geoffrey Wilson.
  531.  
  532. 0.28 - 1999/07/28:
  533.  
  534. New features:
  535.  
  536. - Offline config! (Add/Drop only, at the moment.) For Blue Wave, QWKE, and
  537.   QWK (with DOOR.ID indicating Add/Drop support). See the man page for
  538.   details.
  539.  
  540. - The area list window now has additional status flags: '+' and '-' for
  541.   added/dropped, and '*' in the full list for subscribed areas. The little
  542.   area list has '*' also, and is now wider.
  543.  
  544. - A more advanced search routine. It will now (optionally) descend levels,
  545.   allowing even a full text search over multiple packets.
  546.  
  547. - The address book now allows direct entry, as well as editing of existing
  548.   addresses. The tagline window allows editing of existing taglines. (The
  549.   old function of the 'E' key in the tagline window has been moved to the
  550.   'A' key.)
  551.  
  552. - Reply splitting, both manual and (optionally) automatic.
  553.  
  554. - Quick exit from any screen via ^X.
  555.  
  556. - Command shell (for DOSish ports) via ^Z.
  557.  
  558. - Packets can now be specified directly on the command line, bypassing the
  559.   packet menu. (If multiple packets are listed, they will be opened in
  560.   sequence.)
  561.  
  562. - Better quote wrapping -- paragraphs are rewrapped, and second-level quotes
  563.   are not requoted (except in Internet/Usenet areas, which use a reduced
  564.   quote for second-level quotes).
  565.  
  566. - Optional stripping of "soft carriage returns" (those annoying accented i's
  567.   that sometimes appear).
  568.  
  569. - Optional beep in letter window when opening personal messages.
  570.  
  571. Bug fixes and such:
  572.  
  573. - The "Yes/No" prompt to keep old reply packets has been replaced by
  574.   "Save/Kill", to reduce the chances of deleting a packet by mistake (as can
  575.   happen when one is in the habit of hitting 'N' in response to the new
  576.   files or bulletins prompts). Suggested by several users.
  577.  
  578. - In all string input windows (those that use ShadowedWin::getstring()), a
  579.   backspace as the first character will now preserve the default text (if
  580.   any). I'm not sure if it's better this way or not, though.
  581.  
  582. - The tagline window was displayed improperly on a screen wider than 80
  583.   columns when scrolled up or down a line at a time.
  584.  
  585. - I've changed the message MultiMail shows the first time a new version is
  586.   run, to something I hope is clearer. Please note that MultiMail will never
  587.   wipe out the values from your old config file, only update the file with
  588.   new keywords (if any).
  589.  
  590. - When changing to a new directory (or on startup), the first file rather
  591.   than the first directory is highlighted.
  592.  
  593. - When composing a new message and not quoting, MultiMail no longer creates
  594.   a 0-byte temp file before launching the editor. (You probably won't notice
  595.   the difference, but I think it may address one bug report I got a while
  596.   back. For me, it makes pico say "New file" instead of "Read 0 line".)
  597.  
  598. - Some more egcs warnings fixed. (Odd; they should have appeared earlier.)
  599.  
  600. - Internal reorganization: Most non-ANSI, non-curses code is now in
  601.   mysystem.cc. I hope this may simplify porting to non-POSIX systems. Also,
  602.   part of interfac.cc was split off into basic.cc; and some stupid #define
  603.   and const int lists were replaced with enums.
  604.  
  605. 0.27 - 1999/06/27:
  606.  
  607. New features:
  608.  
  609. - The little area list now has short-list capability, like the main area
  610.   list. Press 'L' to toggle it.
  611.  
  612. Bug fixes and such:
  613.  
  614. - In QWK reply packets, the binary conference number was not being included.
  615.   This made them incompatible with some doors (at least some versions of
  616.   Galacticomm's software, and probably EzyBBS). The problem goes back to
  617.   MultiMail's beginnings. I didn't notice it before now because most QWK
  618.   doors use the ASCII conference number instead. (There are redundant fields
  619.   in a REP packet.) Thanks to SparkAm@peyam.net for tracing the problem.
  620.  
  621. - The precompiled MS-DOS binary of 0.26 wouldn't work on machines without
  622.   FPUs, due to the FPU code linked in with the difftime() function in the
  623.   packet list. I've replaced this with an integral subtraction, which is
  624.   adequate for my purposes. Reported by Greg Mayman et al.
  625.  
  626. - curs_set() is now called from Win::cursor_on() and Win::cursor_off(),
  627.   regardless of the curses implementation. (Formerly, these lines were
  628.   ifdef'ed.) This is for compatibility with ncurses 5.0-beta1, which no
  629.   longer calls it from leaveok(). I'm told that Solaris curses doesn't,
  630.   either.
  631.  
  632. - A netmail address on a message would be retained if the message were
  633.   forwarded to a non-netmail area, and it would not be editable. Reported by
  634.   Jim Hanoian.
  635.  
  636. - The packet list window length is now variable for lists shorter than the
  637.   max, as with the letter list. The "info" window in the area list has been
  638.   merged into the main window. (The visible effect of this is that the lower
  639.   window no longer has a title.)
  640.  
  641. - Some internal reorganization.
  642.  
  643. 0.26 - 1999/05/26:
  644.  
  645. New features:
  646.  
  647. - Automatic saving of replies is now available via the "AutoSaveReplies"
  648.   keyword in .mmailrc. When this is enabled, MultiMail automatically
  649.   rewrites the reply packet after a reply is created, edited or killed. It's
  650.   similar to pressing "F2" or "!" after each event, but without the warning
  651.   window. I'm considering making this the default behavior for future
  652.   versions -- any comments?
  653.  
  654. - The "AutoSaveRead" keyword turns on automatic saving of the last read
  655.   markers when exiting a packet, bypassing the "Save lastread" prompt. (This
  656.   is another thing I might make the default.)
  657.  
  658. - Packets may now be renamed from the packet list window by pressing 'R'.
  659.   (This function can also be used to move them to different directories,
  660.   though you must specify the filename as well as the pathname of the
  661.   destination.)
  662.  
  663. - Directories are now shown in the packet list, and are navigable; or you
  664.   can specify a directory to jump to via the 'G' command. (On the DOSish
  665.   ports, the 'G' command is the only way to change drive letters.) The
  666.   current directory appears as the title of the packet list window. Note
  667.   that this change means that the old behavior of exiting when no packets
  668.   were found will effectively never occur.
  669.  
  670. - By popular request, multiple replies to the same message (in the same
  671.   reply packet) are now allowed. (This is a partial reversal of the change
  672.   in 0.24.) When re-replying, you're prompted to re-edit; if you say no, a
  673.   new reply is generated. Only the first of the existing replies will be
  674.   recognized for re-editing.
  675.  
  676. - When opening a packet, you're now prompted whether or not to keep any
  677.   existing replies.
  678.  
  679. - The tagline window can now be completely disabled via the "UseTaglines"
  680.   keyword in .mmailrc. Requested by Jack Pfisterer.
  681.  
  682. Bug fixes and such:
  683.  
  684. - Re-editing replies from the reply area no longer forces a return to the
  685.   letter list. Instead, the re-edited letter is displayed.
  686.  
  687. - Cosmetic problems with the wrong area being displayed on the status line
  688.   (and the header window) during the reply process have been cleared up.
  689.  
  690. - The "This will overwrite any existing reply packet" warning from the F2
  691.   function is now supressed if there is no packet.
  692.  
  693. - MultiMail will now display a warning if the reply packet is not created,
  694.   or if the last read markers could not be saved. Also, it will pause for
  695.   two seconds after getting an error code from a program it shelled to
  696.   (archiver or editor) or attempted to shell to, so that any console error
  697.   messages from the system may (hopefully) be read.
  698.  
  699. - Speculative fix for reported problems with replies disappearing (which I
  700.   couldn't reproduce): calls to clearDirectory() now pass the name of the
  701.   working directory explicitly, rather than ".".
  702.  
  703. - Added "-e" to the default add command for ARJ to supress pathname
  704.   inclusion. Suggested by Ken Whiton.
  705.  
  706. - The separate colors for the Search window have been eliminated, as the
  707.   Save dialog is now used for both (as well as for the new prompts in the
  708.   packet list).
  709.  
  710. - The "F2, !: Make reply packet" function is now available in the letter
  711.   list and letter window, as well as the area window.
  712.  
  713. - Shorter date format in the packet list; more space for long filenames.
  714.  
  715. - On Blue Wave messages with no taglines, a blank line is now inserted
  716.   before the origin line.
  717.  
  718. - Fixed errors (and some warnings besides) that made MultiMail 0.25
  719.   incompatible with egcs. Thanks to Tony Summerfelt for reporting the
  720.   problems and testing (and re-testing) the solutions.
  721.  
  722. - If there was a tagline in the message on screen, and you chose not to use
  723.   a tagline in the reply, the tagline from the original would be used
  724.   instead. Reported by David Toutant and J.F. (With the reorganized tagline
  725.   code, I've also reverted to having the tagline grabber pick the last
  726.   tagline in a message, instead of the first.)
  727.  
  728. - In Blue Wave mode, when the packet filename differed from the "base name"
  729.   (BBS id), the former was used for replies, when it should be the latter.
  730.   Reported by Jim Hanoian.
  731.  
  732. - After animating ANSI, MultiMail would loop on a non-blocking keyboard
  733.   check, sucking up CPU.
  734.  
  735. - As usual, lots of internal reorganization.
  736.  
  737. 0.25 - 1999/03/19:
  738.  
  739. New features:
  740.  
  741. - Support for Internet and Usenet messages in Blue Wave mode. (Note: AFAIK,
  742.   this is only supported by the Blue Wave version 4 door for PCBoard.) Also,
  743.   Internet addresses can now be taken into the address book.
  744.  
  745. - Character sets (either code page 437 or Latin-1) are now selected for each
  746.   area or message. The default character set is CP437 (as before), except
  747.   for Internet or Usenet areas (as marked by Blue Wave or QWKE flags), which
  748.   are Latin-1. The character set in individual Fidonet messages can be
  749.   overriden by the "CHRS:" or "CHARSET:" kludges. Replies are set according
  750.   to the default for the destination area.
  751.  
  752. - The console character set and the default sort types for the packet and
  753.   letter lists can now be set in the config file. The default packet sort is
  754.   now by time (latest first) instead of by name.
  755.  
  756. - The "To" field is now omitted from the letter list in Usenet areas and the
  757.   QWK Personal area. The "From" field is omitted in the REPLY area. This
  758.   leaves more room for the "Subject" lines by eliminating redundant info.
  759.  
  760. - Direct support for RAR archives. Note: there's a problem with this if you
  761.   read the same packets in, e.g., both Linux and DOS: RAR will save the last
  762.   read marker file twice (once in upper case, once in lower).
  763.  
  764. - More ANSI navigation: The ENTER key now works the same in the ANSI viewer
  765.   as in the letter window (advance to next message).
  766.  
  767. - The packet list can now be rescanned (to pick up new packets) by pressing
  768.   'U'.
  769.  
  770. - The message count now appears in the title bar of the letter list (like
  771.   the area count in the area list).
  772.  
  773. - New color scheme by Gary Gilmore.
  774.  
  775. Bug fixes and such:
  776.  
  777. - The alternate QWK private message flag, '+', was not being recognized.
  778.   Reported by Tom Rutherford.
  779.  
  780. - Changed the message that prompts to save replies to something I hope is
  781.   clearer. Suggested by Max Chamberlain.
  782.  
  783. - If the reply packet had a different archive type than the main packet,
  784.   MultiMail would attempt to use *that* archiver (the reply packet's) to add
  785.   the last-read markers to the main packet. The correct behavior is to use
  786.   the main packet's archive type when remaking the reply packet!
  787.  
  788. - When quoted material was wrapped, the wrapped lines would have trailing
  789.   spaces. These are now stripped.
  790.  
  791. - In the area and tagline lists, a completely blank line would sometimes
  792.   appear at the top of the list. (A long-standing bug, finally fixed.)
  793.  
  794. - Strip blank lines after hidden lines. (Blue Wave puts blanks after the
  795.   hidden headers in Usenet messages.)
  796.  
  797. - Fewer keys to hit in the header editor. :-) The cursor is now placed on
  798.   either the Subject or To line, as appropriate (you can still arrow up to
  799.   edit the other lines); and the "Make message private?" prompt is not
  800.   presented when sending to areas that are either all-public or all-private
  801.   (as indicated by Blue Wave or QWKE flags).
  802.  
  803. - Bizarre alignment bug in the EMX-based ports (OS/2 and Win32) caused
  804.   crashes on some QWK packets. Reported by Jim Hanoian.
  805.  
  806. - Source code reorganized somewhat... no more .a files.
  807.  
  808. - Blue Wave packets could have identical areanums in multiple areas.
  809.   Although this is an error, the Blue Wave reader handled it; now MultiMail
  810.   does as well. This is also a little faster. However, it assumes that the
  811.   mixRecords and INF area headers are sorted the same way, which I would've
  812.   preferred not to assume. Problem reported by Scott Jones.
  813.  
  814. - In 0.24, the new packet kill routine failed to exit after killing the last
  815.   packet, leaving garbage on screen. Reported by Gary Gilmore.
  816.  
  817. - A filename without an extension would mess up the display in the packet
  818.   list. A long-standing bug that I never really cared about, but which J.H.
  819.   mentioned.
  820.  
  821. - All directories are now omitted from the packet list.
  822.  
  823. - One more attempted cursor fix for the Win32 version.
  824.  
  825. - Minor display bug with messages 100,000 lines or longer. (Now OK up to
  826.   1,000,000.)
  827.  
  828. - In the EMX ports, in the letter sort by subject, the secondary sort by
  829.   message number was still broken. Reported by J.H.
  830.  
  831. 0.24 - 1999/02/12:
  832.  
  833. New features:
  834.  
  835. - "Save" function in ANSI mode. This differs from the letter window save in
  836.   that no wrapping is performed, and no header is prepended. This is also
  837.   the only way to save bulletins and new file lists.
  838.  
  839. - New navigation in ANSI mode: the space bar and left and right arrow keys
  840.   now work in the same way as in the letter window. This also means the
  841.   interface for the bulletin viewer is slightly different: 'Q' exits from
  842.   the entire list, instead of just the current bulletin, and you can move
  843.   back and forth between bulletins as in the letter window.
  844.  
  845. - Multiple sort modes in the packet list: by date (latest first), and by
  846.   name. By name is still the default. "$" toggles between them.
  847.  
  848. - Multiple sort modes in the letter list: by subject (still the default),
  849.   message number (i.e., no sort), from, or to. "$" cycles through them.
  850.  
  851. - The help window at the bottom of the packet, area and letter lists can now
  852.   show multiple pages of options (similar to Pine's "Other commands" menu
  853.   function).
  854.  
  855. - When character set translation is on in the ANSI viewer, some IBM
  856.   characters are now mapped to curses equivalents, giving a better result on
  857.   non-PC terminals (e.g., xterm, vt100). This works best with the box-
  858.   drawing characters. The letter window still uses a plain ASCII mapping for
  859.   these characters.
  860.  
  861. - Pop-up help is now available in the ANSI viewer, as in the letter window.
  862.  
  863. - Messages can be forwarded from any area, with the original headers
  864.   preserved in the text.
  865.  
  866. - Support for the Win32 console via RSX/NT. See README.rsx if you want to
  867.   compile for this platform.
  868.  
  869. - Fidonet MSGID/REPLY kludge lines are now supported, in Blue Wave mode.
  870.  
  871. - Additional QWKE support -- in QWKE packets, the short list now shows
  872.   "subscribed-to" conferences, as in Blue Wave mode, instead of just the
  873.   non-empty ones; and alias areas are supported. The "QWKE" type appears in
  874.   the Info window of the area list.
  875.  
  876. - When Replying to a message that's already marked "Replied", the previous
  877.   reply (if available) will be re-edited instead of a new reply being
  878.   created.
  879.  
  880. - Some new color schemes.
  881.  
  882. Bug fixes and such:
  883.  
  884. - The help window now survives a screen resize, instead of being closed.
  885.  
  886. - Killing a packet no longer forces a reread of the directory.
  887.  
  888. - The addressbook will no longer grab a new entry when no Fido address is
  889.   available. Also, the addresses are now sorted alphabetically on startup.
  890.   (Anything added during the session will not be alphabetized; however, the
  891.   list will be sorted again on the next startup.)
  892.  
  893. - The full length of Blue Wave "To" and "From" fields is now available in
  894.   the header editor. (Previously, they were restricted to 25 characters.)
  895.  
  896. - The subject sort in the letter list was not correctly performing the
  897.   secondary sort, by message number, in runs of the same subject.
  898.  
  899. - Time/date printout code changed in packet list and in Blue Wave reply
  900.   headers. I think this looks a bit better.
  901.  
  902. - The experimental Win32 console version had a problem with slow screen
  903.   output. This seems to be a problem with the console API (?), but it's
  904.   worked around in this version. (Normally, PDCurses checks for a keypress
  905.   after printing each line. In Win32, this call takes a noticeable amount
  906.   of time to return, even though it's supposed to be non-blocking. So, in
  907.   MultiMail, the check is disabled for the Win32 version. This also disables
  908.   typeahead, but I doubt anyone will even notice that.)
  909.  
  910. - A last attempt at fixing the remaining cursor problems in the PDCurses
  911.   versions. (The cursor size is now checked at startup, and that value is
  912.   explictly restored instead of using curs_set(1).) Scott Jones reported the
  913.   persiting problem in the OS/2 version.
  914.  
  915. - The index of the Personal area is now updated just by entering the letter
  916.   list, or anytime a message is read in that area. Better than previous
  917.   versions, though still not ideal.
  918.  
  919. - Support for the keypad plus, minus, and slash keys under PDCurses. (This
  920.   completes the keypad "Enter" fix in the previous version.)
  921.  
  922. - The experimental Win32 version supported only "\" in the pathnames
  923.   specified in MMAIL.RC, where the DOS and OS/2 versions allowed either "\"
  924.   or "/". Now both work in Win32, and both will be converted to "\" when
  925.   MMAIL.RC is updated. Reported by Rafael Cresci.
  926.  
  927. - One more character allowed for unames in Blue Wave reply packets (six
  928.   instead of five). Specifically, that means "MultiMail/MS-DOS" and
  929.   "MultiMail/NetBSD" will now appear in Blue Wave tearlines, instead of the
  930.   abbreviated form "MultiMail".
  931.  
  932. - Hidden lines at the end of a message would cause the line count to be over
  933.   by one. Reported by Jim Hanoian.
  934.  
  935. - In the Save dialog, user-entered names were getting spaces converted to
  936.   underscores, though only the second time through (when the name was pulled
  937.   up as the default). Reported by J.H.
  938.  
  939. 0.23 - 1999/01/22:
  940.  
  941. New features:
  942.  
  943. - QWKE and PCBoard-style "Subject:", "To:", and "From:" line kludges are now
  944.   supported in QWK mode, along with "Title:", which is used on WWIV. The
  945.   QWKE "Subject:" line is generated automatically for replies, if needed.
  946.   Note that in regular messages (though not in replies), these lines aren't
  947.   parsed until the message body is accessed by entering the letter window,
  948.   so the fields as shown in the letter list will at first be the short
  949.   forms.
  950.  
  951. - Reply forwarding -- press <CTRL>-'F' while in the reply area (either the
  952.   letter list or letter window) to forward a reply. (Forwarding of regular
  953.   messages is not available yet.)
  954.  
  955. - In the REPLY area, 'R' now works as an alias for 'E'. Added at the
  956.   insistence of Jim Hanoian. :-)
  957.  
  958. - When (re-)editing or forwarding a reply, the area can now be changed.
  959.  
  960. - REPLY and PERSONAL areas now show the original area (as well as the
  961.   collection area) in the letter window. Suggested by J.H.
  962.  
  963. Bug fixes and such:
  964.  
  965. - New behavior in the ANSI viewer: Instead of resetting everything when a
  966.   screen-clearing code (<ESC>[2J) is encountered, it sets the last-drawn
  967.   line as the new baseline, and continues from there. With the old system,
  968.   information was sometimes lost (though it could still be viewed in the
  969.   animation mode); now, screens are simply chained together, and everything
  970.   is visible and scrollable.
  971.  
  972. - Characters 8 (backspace) and 12 (form feed) are now handled in the ANSI
  973.   viewer, and skipped in the letter window. Ctrl-Z is stripped in the ANSI
  974.   viewer.
  975.  
  976. - The BBS name and Sysop name fields in the info window of the area list
  977.   were being unnecessarily truncated.
  978.  
  979. - In the PDCurses versions, the cursor remained disabled when shelling to an
  980.   editor. Reported by Dane Beko. (Due to the way I implemented this fix,
  981.   PDCurses 2.2 is no longer acceptable for MultiMail; you must use 2.3.)
  982.  
  983. - When creating a .REP, a zero-length message body would cause a segfault.
  984.  
  985. - Blank space at the end of the little area list is now omitted (as in the
  986.   letter list).
  987.  
  988. - An attempt to send Netmail when no Netmail area is defined (as is always
  989.   the case in QWK mode) now pops up a nonFatalError window.
  990.  
  991. - The "Save lastread pointers?" message now comes up less often; the "any
  992.   read" flag is set less aggressively. (If you re-read a message that's
  993.   already marked as read, the any-read flag will not be set, as it was in
  994.   previous versions.)
  995.  
  996. - When entering areas which are fully read, the highlight bar is no longer
  997.   moved to the last message. Similarly, if the entire packet is marked as
  998.   read, the active area is not set to the last non-empty area, but the
  999.   first. Suggested by J.H.
  1000.  
  1001. - Hopefully, a better subject-line sort in the letter list: If two subjects
  1002.   have the same content for the entire length of the shorter of the two, the
  1003.   shorter one is no longer automatically placed first; instead, they're put
  1004.   in message number order.
  1005.  
  1006. - The ENTER key on the numeric keypad did not work in the PDCurses versions.
  1007.   Reported by Russell Tiedt.
  1008.  
  1009. - Added "/m" to the parameters passed to LHA in the MSDOS version. Without
  1010.   this, it gave an "Extension is not .lha. Continue? [Y/N]" prompt when
  1011.   archiving replies.
  1012.  
  1013. 0.22 - 1999/01/01:
  1014.  
  1015. New features:
  1016.  
  1017. - The long-awaited support for new file lists and bulletins! They're
  1018.   displayed automatically on opening the packet. Currently, this is a bit of
  1019.   a kludge -- although I'm starting to like it. Memory usage is excessive.
  1020.   (See the man page for more info.)
  1021.  
  1022. - Support for XCurses (the X port of PDCurses). See README.xc for details.
  1023.  
  1024. - Added a line counter to the ANSI window, as in the letter window.
  1025.  
  1026. Bug fixes and such:
  1027.  
  1028. - If a tagline was displayed on screen, it would replace the tagline
  1029.   selected for a reply via the tagline editor. This bug dates to 0.20.
  1030.  
  1031. - TAB characters that advanced past the end of a line were causing problems
  1032.   in the ANSI viewer.
  1033.  
  1034. - Aborting a netmail reply left the netmail address set when a regular reply
  1035.   was attempted afterwards.
  1036.  
  1037. - The translation toggle ('c') now works in all screens. (In particular, the
  1038.   ANSI viewer.)
  1039.  
  1040. - Proper printing of character 127 (DEL) under ncurses.
  1041.  
  1042. - The SIGWINCH (resize) handler now works acceptably even when a SIGWINCH
  1043.   occurs while in a WarningWindow() or getstring() call.
  1044.  
  1045. 0.21 - 1998/12/15:
  1046.  
  1047. New features:
  1048.  
  1049. - Not new, but newly documented: When run under Windows 95, the MSDOS
  1050.   version supports long filenames! Apparently this is a feature of the DJGPP
  1051.   standard library, though I didn't realize it before. (I don't know about
  1052.   Win 98 or NT -- anybody else?)
  1053.  
  1054. Bug fixes and such:
  1055.  
  1056. - The code to generate the default tagline file was broken in 0.20, which
  1057.   meant that all first-time users got a segfault. Argh! Also, since I was
  1058.   messing with the taglines anyway, I changed the default list.
  1059.  
  1060. - In the PDCurses versions, the "Could not uncompress packet" and "Packet
  1061.   type not recognized" messages would pop up without first restoring the
  1062.   packet list screen. Also, some extra parentheses have been added around
  1063.   color names for the benefit of PDCurses/Win32 (still an incomplete port).
  1064.  
  1065. - Updated the README.{DOS,OS2} files to reflect the new style of default
  1066.   MMAIL.RC in use since 0.19.
  1067.  
  1068. - "/" and "." added to pop-up help window.
  1069.  
  1070. 0.20 - 1998/12/06:
  1071.  
  1072. New features:
  1073.  
  1074. - Search function. Case-insensitve searching is available everywhere. It's
  1075.   still a bit limited, in that it only works within the current list (or
  1076.   letter); i.e., you can't yet search multiple letters at once. Hit '/' to
  1077.   bring up the text entry window and start the search, or '.' to repeat the
  1078.   last search. (Yeah, I know -- it needs better keys.) Searching is from the
  1079.   current line on down.
  1080.  
  1081. - Fido "hidden" message lines (marked with a ^A) can be displayed; 'X'
  1082.   toggles this function.
  1083.  
  1084. - New features in the tagline editor and address book: New entries in the
  1085.   address book are checked for dupes; also, tagline dupes, which were
  1086.   already checked, are now reported. The address book and the tagline editor
  1087.   allow you to Kill entries. And the tagline editor can be brought up
  1088.   directly, via ^T, in the same way as the address book. Old features: The
  1089.   reLoad function has been removed from the tagline editor.
  1090.  
  1091. - Rot13 function in letter window -- toggle with 'D'.
  1092.  
  1093. - If a new letter is not edited (as measured by the time stamp), you'll be
  1094.   asked if you want to cancel it on returning to MultiMail. Partly inspired
  1095.   by Gregory Paksi.
  1096.  
  1097. - Redundant colors can be omitted from the ColorFile. See colors/README.col
  1098.   for details. Also, there are some new colors, and some old ones are gone;
  1099.   be sure to check your ColorFile if you've customized it.
  1100.  
  1101. - Messages to or from you are highlighted in a different color in the letter
  1102.   list. After Ingo Brueckl (though this implementation is a little different
  1103.   from his).
  1104.  
  1105. - Read-only support for Blue Wave's .XTI files (last-read markers). This
  1106.   means that any old packets you read with Blue Wave will be marked in the
  1107.   same way when first opened in MultiMail; however, any changes made in
  1108.   MultiMail will not be seen by Blue Wave. Partly inspired by I.B., but this
  1109.   is a different (and more correct) implementation.
  1110.  
  1111. - "Home" and "End" keys are now available in text entry fields (i.e.,
  1112.   ShadowedWin::getstring()). After I.B.
  1113.  
  1114. Bug fixes and such:
  1115.  
  1116. - The FMPT kludge line is now supported, which means that in Blue Wave mode,
  1117.   the netmail addresses of points will be recognized.
  1118.  
  1119. - Aborting a header edit from the letter list could cause a segfault. (The
  1120.   fix in 0.19 was incomplete.)
  1121.  
  1122. - Some bogus ANSI codes (mainly, "ESC[?7h") are now semi-interpreted, so
  1123.   they no longer clutter the screen. Also, the ANSI background color is now
  1124.   hardwired to white on black, instead of being set by Main_Back.
  1125.  
  1126. - The highlight method for the active line was no good on a light background
  1127.   with ncurses 4.2 (was ok with 4.1). Some other changes for light
  1128.   backgrounds, too.
  1129.  
  1130. - High-bit, "low-bit" (below 32) and certain special characters are now
  1131.   handled better by MultiMail, being actually printed instead of interpreted
  1132.   as control codes. :-) Particularly useful for ANSI.
  1133.  
  1134. - TAB characters are now rendered as the appropriate number of spaces in the
  1135.   letter and ANSI windows.
  1136.  
  1137. - In text entry fields (getstring()), high-bit characters were showing up
  1138.   with weird attributes (due to a sign error). Reported (indirectly) by
  1139.   I.B., this bug has been present since about 0.10! I'm suprised no one from
  1140.   Fido zone 2 mentioned it to me before.
  1141.  
  1142. - Packets can now be renamed without MultiMail losing track of its last read
  1143.   markers. (This will, however, still result in a second .red file being
  1144.   created.)
  1145.  
  1146. - When entering a tagline manually via "E" in the tagline editor, the
  1147.   entry field is now placed correctly, instead of appearing to overwrite the
  1148.   last tagline. Also, bogus taglines are no longer generated from message
  1149.   lines which are just "...".
  1150.  
  1151. - In the Reply area, the help menu for the letter list was showing a 'K'
  1152.   where it should've been an 'S'. Also, capitalization in help menus has
  1153.   been standardized (only the keys that activate commands are in caps in the
  1154.   descriptive text), and the pop-up letter help window is now in two
  1155.   columns.
  1156.  
  1157. - Killing an item (in any menu) now moves down to the next entry, regardless
  1158.   of the position in the list (unless at the end).
  1159.  
  1160. - The 'L' command now remains available in the address book after a screen
  1161.   resize (SIGWINCH). Also, taking an address via 'L' automatically sets the
  1162.   active line to the last position (where the new entry is).
  1163.  
  1164. - Netmail addresses are now included in Saved letters.
  1165.  
  1166. - The resize (SIGWINCH) handler was causing a segfault in some
  1167.   circumstances. Although I just noticed it, this bug dates to 0.18.
  1168.   Curiously, it occurred for me only when running under "screen". The fix
  1169.   was to change Win::inkey() to remove the loop.
  1170.  
  1171. - Changed the .mmailrc separators from " = " back to ": ", which makes
  1172.   them compatible with 0.18 and earlier. I'll probably change them again. (I
  1173.   was trying to achieve a more "classic" style of .rc file, but in fact,
  1174.   it still wasn't quite right.)
  1175.  
  1176. - The cursor was not being disabled in PDCurses versions.
  1177.  
  1178. - "Read" indicator in the letter window was not updated after Saving.
  1179.  
  1180. - Changed interface/Makefile and mmail/Makefile to allow "make clean" to
  1181.   work in DOS. Suggested by I.B.
  1182.  
  1183. - And of course, various internal changes.
  1184.  
  1185. 0.19 - 1998/10/25:
  1186.  
  1187. New features:
  1188.  
  1189. - The .mmailrc has been redesigned. New versions of MultiMail will update it
  1190.   automatically; comments will be lost, but old data will be preseved. Note:
  1191.   the new form is not readable by 0.18 or earlier, because of the use of '='
  1192.   as a separator. Partly inspired by Ingo Brueckl.
  1193.  
  1194. - Non-fatal errors. Currently, this is used only for the previously fatal
  1195.   "Could not uncompress packet" and "Packet type not recognized".
  1196.  
  1197. - You can change the colors MultiMail uses without recompiling. See the
  1198.   automatically generated "~/colors" for details; also, some sample color
  1199.   schemes are included in the 0.19 archive. This feature is due largely to
  1200.   Ingo Brueckl.
  1201.  
  1202. - "Marked" messages are kept in the active letter list, whether read or
  1203.   unread. In combination with the "Save" changes (see below), this means
  1204.   that marking is now actually useful. :-)
  1205.  
  1206. - Extensive changes to the "Save" dialog: When you Save from the letter
  1207.   list, you're given a choice of "All", "This one", or "Quit"; if any
  1208.   messages are marked, you also get the option "Marked". Saving "All"
  1209.   now saves all messages in the active list, rather than all in the area.
  1210.   (To get the old behavior, just toggle the full list on first.) Saving a
  1211.   message sets the "Read" flag, and turns off "Marked". The last-entered
  1212.   filename is retained (separately) for "All", "This One", and
  1213.   "Marked". If no name is entered manually, the automatic name is
  1214.   regenerated with each use; otherwise, the manual name is kept until you
  1215.   exit MultiMail.
  1216.  
  1217. Bug fixes and such:
  1218.  
  1219. - Segfaults in saving All, in some cases.
  1220.  
  1221. - Certain ANSI pics, with codes in the form "<ESC>[;27H" (i.e., with
  1222.   an empty parameter before a semicolon) were causing segfaults.
  1223.  
  1224. - After the cursor was turned on, e.g. by the Save window or an aborted
  1225.   message header edit, it was left in the middle of the screen on some
  1226.   terminals. It is now forced down to the corner.
  1227.  
  1228. - The header editor was being left on screen after exiting via ESC.
  1229.  
  1230. - Removed the text "Fatal Error" from fatal errors. :-) It was sometimes
  1231.   redundant, and other times wrong.
  1232.  
  1233. - When the last packet was deleted from the packet list, a segfault could
  1234.   occur. Reported by Alan Ianson.
  1235.  
  1236. - Functions which redrew the letter window (e.g., toggling character set
  1237.   translation) were setting the Read marker each time.
  1238.  
  1239. - The tagline window now looks better on screens other than 80 columns.
  1240.  
  1241. - Various internal changes, and added comments.
  1242.  
  1243. 0.18 - 1998/08/14:
  1244.  
  1245. New features:
  1246.  
  1247. - MultiMail can now read QWK packets without .NDX files. Partly inspired by
  1248.   Simon Callan. Note: It's still preferable to include them, since it takes
  1249.   about three times longer to open the packet without them. (But that's not
  1250.   counting the unpacking time, which is much longer still.)
  1251.  
  1252. - The letter list now allows toggling between showing all messages, and
  1253.   showing only those which are unread; when entering an area, it defaults to
  1254.   unread (unless all the messages are marked read). I've found that this
  1255.   makes a BIG difference in the feel of the program -- it's more like a
  1256.   newsreader now. ;-) Use the 'L' key to toggle between the long and short
  1257.   lists (as in the area list).
  1258.  
  1259. Bug fixes and such:
  1260.  
  1261. - Removed a lot of redundant code from the interface section, and
  1262.   reorganized it... There are many new features that need implementing, but
  1263.   so far I've been concentrating on cleaning up and simplifying the existing
  1264.   code, so as to have a solid base to build on. I think I'm almost there.
  1265.   ;-)
  1266.  
  1267. - Found a couple small memory leaks, in AnsiWindow (the statbar was not
  1268.   being deleted) and main_read_class. Also, the tagline file was being left
  1269.   open after reading it.
  1270.  
  1271. - Now gives a fatal error (instead of segfaulting) if the screen is smaller
  1272.   than 60x20.
  1273.  
  1274. - The address book and tagline window now respond correctly to SIGWINCH.
  1275.  
  1276. - In the tagline window, the key for rereading the file has been changed
  1277.   from 'F' to 'L'. This allows 'F' to be used as an alias for PgDn, as on
  1278.   other screens. (The real purpose was to merge the code into the rest of
  1279.   the keyboard-handling code.)
  1280.  
  1281. - If there was only one area (i.e., REPLY), and the right arrow was pressed,
  1282.   an infinite loop would occur. Reported by Tamminen Eero.
  1283.  
  1284. - The 'N' key, for Netmail, is now disabled when no Netmail area is
  1285.   available. Partly inspired by Francois Thunus.
  1286.  
  1287. - Sample filenames in the default .mmailrc now conform to the OS (i.e., 8.3
  1288.   (FAT) format for DOS and OS/2), and the unused "ReadDir" line has been
  1289.   removed. Inspired by F.T.
  1290.  
  1291. - Stripping and adding of blank lines at the end of messages works a little
  1292.   better now, but still needs work.
  1293.  
  1294. - The addressbook was crashing, when empty (0 items). Reported by Marc D.
  1295.   Williams.
  1296.  
  1297. 0.17 - 1998/07/06:
  1298.  
  1299. New features:
  1300.  
  1301. - Netmail addresses, when present in Blue Wave packets (or reply packets),
  1302.   are displayed in the From: or To: fields in the letter window, as
  1303.   appropriate; and when entering a netmail message, the address can now be
  1304.   edited. (Note: Netmail is largely untested yet.)
  1305.  
  1306. - In the header editor (From, To, etc.), you can now use the up and down
  1307.   arrows to move between fields, or press ESC in any field to abort the
  1308.   edit. Press ENTER on the last field to exit normally.
  1309.  
  1310. - Reading a message in the QWK Personal area marks it as read in its
  1311.   original area.
  1312.  
  1313. - A full area list is now available in both QWK and Blue Wave modes; it can
  1314.   be toggled by pressing 'L' in the area list. (The compile-time
  1315.   "shortlist" definition has been removed.) One benefit is that you can
  1316.   enter a message in any area, even when only the short list is being
  1317.   displayed.
  1318.  
  1319. - When re-editing a message, you can now edit the header as well as the
  1320.   text.
  1321.  
  1322. - ANSI animation. While in the ANSI viewer, press one of the ANSI activation
  1323.   keys again (or 'A') to see an animated view. Press any key to abort the
  1324.   animation.
  1325.  
  1326. - The ANSI viewer supports the screen-clearing code.
  1327.  
  1328. - The cursor is turned off, wherever possible. Less visual clutter. :-)
  1329.  
  1330. - True scrolling instead of redrawing; minimized the redrawing done for
  1331.   letter window, ANSI viewer, and all ListWindows. It's now MUCH faster on
  1332.   slow machines and slow terminals.
  1333.  
  1334. Bug fixes and such:
  1335.  
  1336. - MASSIVE rewrite... Almost everything that was crufty in previous versions
  1337.   is now done the right way. :-) General fixes include: plugging memory
  1338.   leaks (there were a lot of these, I'm sorry to say), elimination of
  1339.   one-based arrays, adding more limit checks, and removal of all kinds of
  1340.   kludges and redundant code. The interface is more fully separate from the
  1341.   specific drivers; adding new packet types now requires changing only
  1342.   mmail/driverl.cc.
  1343.  
  1344. - The netmail area is found by attribute rather than name, and (owing to the
  1345.   full area list now available in Blue Wave mode) can always be found,
  1346.   instead of only when you have received netmail. :-)
  1347.  
  1348. - Character set translation is applied to the area list, and to area
  1349.   descriptions in the letter list and letter window.
  1350.  
  1351. - The number of replies shown in the REPLY area is updated immediately when
  1352.   it changes.
  1353.  
  1354. - The method of adding blanks before taglines and tearlines is changed; it
  1355.   should no longer be necessary to type an extra CR at the end of replies.
  1356.  
  1357. - QWK replies are automatically word-wrapped at 80 columns, if they're not
  1358.   wrapped already. (In Blue Wave, this is not desirable. QWK doors seem to
  1359.   prefer individual lines; Blue Wave, paragraphs.)
  1360.  
  1361. - MultiMail now ensures that QWK replies end with a line-ending character,
  1362.   instead of letting the last line run off into the padding area. Without
  1363.   this, certain QWK doors would strip off the tearline.
  1364.  
  1365. - The path is no longer displayed in the Save window, and the suggested
  1366.   filename is conformed to FAT (8.3) standards. Note that you can still
  1367.   enter any pathname, and any filename that will be accepted by your system.
  1368.  
  1369. - Specifying pathnames that end in a slash or backslash (e.g., in .mmailrc)
  1370.   should now work correctly.
  1371.  
  1372. - The extraneous "bw" prefix found on many of the .mmailrc variable names
  1373.   is no longer needed, though it will still be recognized for backwards
  1374.   compatibility.
  1375.  
  1376. - Space bar now works in the little area list.
  1377.  
  1378. - The QWK "Personal" area no longer appears in the little area list, nor
  1379.   can messages be entered in it from the area list.
  1380.  
  1381. - Unrecognized packets no longer cause a segfault (just an exit).
  1382.  
  1383. - Added trivial SIGWINCH handlers for AddressBook and TaglineWindow (they
  1384.   just exit that menu).
  1385.  
  1386. - Fatal errors are now reported correctly in the OS/2 version, even when
  1387.   they occur before curses initialization.
  1388.  
  1389. - In the ANSI viewer, there are no more segfaults in OS/2, and no more stray
  1390.   characters on the status line in either PDCurses version.
  1391.  
  1392. - ANSI Reverse attribute now works with PDCurses.
  1393.  
  1394. - ANSI viewing works in reply area.
  1395.  
  1396. - A SIGWINCH can no longer result in the active (highlighted) line being
  1397.   displaced off the screen.
  1398.  
  1399. - New default LHA parameters for MSDOS version (the Unix ones didn't work
  1400.   for it).
  1401.  
  1402. - The currently selected address is preserved between calls to the
  1403.   AddressBook.
  1404.  
  1405. 0.16 - 1998/05/28:
  1406.  
  1407. New features:
  1408.  
  1409. - This version compiles for OS/2, with EMX. This entailed substantial
  1410.   changes to the Makefile (q.v.), as well as some code.
  1411.  
  1412. - The environment variable MMAIL can now be used instead of HOME, to specify
  1413.   the directory of the .mmailrc (or mmail.rc) file. If neither variable is
  1414.   defined, MultiMail will use the current directory (this is also new).
  1415.  
  1416. - The DOS-to-Latin 1 character table has been improved, for translation of
  1417.   graphics characters, by stealing most of the table from DOSEmu.
  1418.  
  1419. - Truly automatic packet recognition, by packet contents instead of name.
  1420.   Patch by Robert Vukovic.
  1421.  
  1422. - Internal ANSI viewer. Works on all platforms (except that it sometimes
  1423.   segfaults when scrolling, under OS/2). Much better than the "less"
  1424.   viewer, and it will form the basis of new file list and bulletin
  1425.   viewers.
  1426.  
  1427. Bug fixes and such:
  1428.  
  1429. - Another big bug in the DOS version (argh!): Last read markers were not
  1430.   being saved. This bug was the result of an error in the bug fix in 0.15.
  1431.   :-/ I'm surprised no one has reported this.
  1432.  
  1433. - In the previous DOS versions, under some arrangements of directories, the
  1434.   temporary directories would not be removed.
  1435.  
  1436. - The man page has been renamed to "mm.1", and the title changed, so that
  1437.   "man" and "apropos" will work more appropriately. The install will
  1438.   make a link to the old name (mmail.1).
  1439.  
  1440. - The "Replied" flag is now set by O- and N-type replies, as well as R.
  1441.  
  1442. - Some code reorganization.
  1443.  
  1444. 0.15 - 1998/05/12:
  1445.  
  1446. New feature:
  1447.  
  1448. - If you back out from a packet, to the packet list, you can now reselect
  1449.   the same packet without it being decompressed again. Thanks to Robert
  1450.   Vukovic for convincing me of the need for something like this.
  1451.  
  1452. Bug fix:
  1453.  
  1454. - In DOS, the default editor (edit.com) didn't actually work, because it
  1455.   didn't understand paths with slashes instead of backslashes. I missed this
  1456.   because it worked with Qedit. :-) The slashes are now flipped on the
  1457.   pathnames passed to external editors and archivers (in DOS only). Thanks
  1458.   to kifox@geocities.com for reporting the problem.
  1459.  
  1460. 0.14 - 1998/04/25:
  1461.  
  1462. Bug fix:
  1463.  
  1464. - A more subtle line-ending bug... under MSDOS, extra characters were
  1465.   sometimes added to the end of a reply. (Unix versions were not
  1466.   affected.)
  1467.  
  1468. 0.13 - 1998/04/24:
  1469.  
  1470. Bug fix:
  1471.  
  1472. - While making changes to accomodate MSDOS line endings, I made a small
  1473.   oversight that caused replies to be truncated at one character if they
  1474.   were re-edited.
  1475.  
  1476. 0.12 - 1998/04/23:
  1477.  
  1478. New features:
  1479.  
  1480. - Compatible with MSDOS. All source code files have been changed to
  1481.   single-case, 8.3 form, and #ifdef's are used on filenames internally where
  1482.   necessary. (Most other issues are taken care of by DJGPP, though some
  1483.   Makefile changes were necessary, and the starting directory is now
  1484.   restored on termination -- needed in DOS, but not in Unix.)
  1485.  
  1486. - Compatible with PDCurses (as distributed with DJGPP), and SysV curses
  1487.   (specifically, Solaris). Note that the shadows on windows are opaque if
  1488.   you compile with SysV curses. (I also added "#define USE_SHADOWS", which
  1489.   you can comment out or remove to get rid of the shadows
  1490.   altogether.)
  1491.  
  1492. Bug fixes and such:
  1493.  
  1494. - After the reorganization of resource.C in version 0.11 (if not before),
  1495.   any change to the value of mmHomeDir in .mmailrc would leave the
  1496.   bwPacketDir, bwReplyDir, etc. variables unaffacted.
  1497.  
  1498. - memError() now works correctly, even before initialization of the
  1499.   interface. Fatal errors in general will be reported better in this
  1500.   version.
  1501.  
  1502. - Some additonal bounds checking on sprintf() calls.
  1503.  
  1504. - tmpnam() checked. In principle, as few as 26 temporary filenames might be
  1505.   available from it (which should still be enough, unless you write a whole
  1506.   lot of replies).
  1507.  
  1508. 0.11 - 1998/03/21:
  1509.  
  1510. New features:
  1511.  
  1512. - Area and system descriptions added to saved messages.
  1513.  
  1514. - I removed the last remaining command-line option, "-m", on the grounds
  1515.   that it was useless. (This is a new UNfeature.) After testing it on my
  1516.   9600 bps terminal, it doesn't appear to improve the speed; and the
  1517.   alternate color scheme, which it was originally designed to select, was
  1518.   never implemented. (Instead, I've added inversing to the top and bottom
  1519.   bars in the letter window, and made a few other changes to make it more
  1520.   monochrome-friendly.)
  1521.  
  1522. Bug fixes and such:
  1523.  
  1524. - resource.C and resource.h rewritten and simplified to allow compilation
  1525.   with gcc 2.8.1. (It's not yet clear to me why the old version didn't work,
  1526.   but this is better anyway.) There are still a few warnings, but it works
  1527.   OK.
  1528.  
  1529. - When entering the From:, To:, and Subject: on replies, the full width of
  1530.   the fields had not been available. Under some circumstances, this could
  1531.   even cause a segfault. These lengths still need to be checked more
  1532.   stringently.
  1533.  
  1534. - Automatic "Re:" adding now takes place before subject-line editing,
  1535.   instead of after. This allows users to see that it will be added, and to
  1536.   override it if desired. (It also saves a few bytes of code!) I don't know
  1537.   why I did it the other way before.
  1538.  
  1539. - In the event of a "Fatal Error:" exit, MultiMail will now clean up after
  1540.   itself, as with normal exits. Also, failed memory allocation is now
  1541.   explicitly checked.
  1542.  
  1543. - Default paths for "zip" and "unzip" removed. (These would only show up
  1544.   if the paths were not defined in the .mmailrc -- as they are with the
  1545.   default .mmailrc.) Thanks to Carey Bloodworth for pointing this out.
  1546.  
  1547. - If the message numbers exceeded 5 digits (i.e., 100000+), they would mess
  1548.   up the display in the letter list. Now, it takes 6. :-)
  1549.  
  1550. - Much internal reorganization.
  1551.  
  1552. - Fixed a bug with my website -- the new-style URL (/~wmcbrine/) messed up
  1553.   some relative pathnames. :-)
  1554.  
  1555. 0.10 - 1998/03/07:
  1556.  
  1557. New features:
  1558.  
  1559. - Shadowed windows! Tell me if you like them.
  1560.  
  1561. - SIGWINCH support. You can now resize the terminal (e.g., maximize the
  1562.   xterm) while MultiMail is running, and it will adapt to the new
  1563.   size.
  1564.  
  1565. Bug fixes and such:
  1566.  
  1567. - Under Solaris, the help menu area was not being cleared when changing from
  1568.   one menu to another.
  1569.  
  1570. - One more space available in letter list (now consistent with the other
  1571.   lists).
  1572.  
  1573. - On some systems (such as Linux w/ glibc, and NetBSD), if you attempted to
  1574.   read a packet that didn't already have a "bbsid.red" file (mm's read
  1575.   markers) in it, MultiMail v0.9 would segfault right after unzipping a
  1576.   packet, due to a very stupid attempt to call fclose() with a NULL pointer.
  1577.   Under Linux w/ libc.5, this actually worked OK; and I didn't notice it on
  1578.   my NetBSD test system because the packets there already had .red files in
  1579.   them. Thanks again to Cesar Cardoso for reporting the problem.
  1580.  
  1581.   Due to the seriousness of this bug, I'm releasing v0.10 early.
  1582.  
  1583. 0.9 - 1998/02/26:
  1584.  
  1585. New features:
  1586.  
  1587. - Added alias, "!", for F2. Added Tab as an alias for right arrow (next
  1588.   unread) in letter list.
  1589.  
  1590. - Better handling of screen widths other than 80; better use of available
  1591.   screen space even in 80 columns. Still to do: handle SIGWINCH.
  1592.  
  1593. - QWK now has the option (on by default) to show only those areas which have
  1594.   messages in them, instead of the full area list. I set this on by default
  1595.   to match the behavior of the QWK side; you can change this in the
  1596.   top-level Makefile. Currently, it's only a compile-time option. (In the
  1597.   future, I'll add the ability to do a full list in Blue Wave mode, and to
  1598.   toggle the mode at runtime.)
  1599.  
  1600. - .REP and .NEW filenames are now forced to lowercase. Should be easier to
  1601.   type. :-) But if you have any uppercase-named reply packets from previous
  1602.   versions, you'll have to manually rename them before 0.9 will recognize
  1603.   them. Sorry.
  1604.  
  1605. - Blue Wave mode now works on big-endian systems! The full functionality of
  1606.   MultiMail is now available on all platforms where it compiles. And
  1607.   "-fpack-struct" is no longer needed in the Makefile -- which I hope may
  1608.   mean increased portability.
  1609.  
  1610. - system() calls to rm and sed have been eliminated.
  1611.  
  1612. Bug fixes and such:
  1613.  
  1614. - Strip spaces from Blue Wave subject lines; fixes sorting in some cases.
  1615.  
  1616. - In Blue Wave mode, MultiMail was using LF as a paragraph delimiter. The
  1617.   correct behavior is to use CR as the delimiter and ignore any LFs. Thanks
  1618.   to Marc D. Williams for submitting a packet that required this fix.
  1619.  
  1620. - Messages in Blue Wave packets are supposed to have a leading space, but
  1621.   packets produced by the ReneWave door lacked them. They also contained
  1622.   nulls in messages (a no-no). MultiMail now deals with these problems
  1623.   without flaking out. Thanks again to M.D.W.
  1624.  
  1625. - With Blue Wave packets, MultiMail now scans for "*.inf", instead of
  1626.   assuming that the packet name minus the extension is the basename.
  1627.   Normally, that is the case, but the "welcome!.000" packet that comes
  1628.   with the Blue Wave reader -- which uses "welcome" internally -- is a
  1629.   counterexample. MultiMail can now read this packet. :-)
  1630.  
  1631. - Startup for QWK packets is much faster, especially on slow systems.
  1632.   Previous versions would attempt to open the .ndx file for each area
  1633.   defined in the control.dat (and would do so several times for each area),
  1634.   whether it existed or not; 0.9 scans to see which .ndx files actually
  1635.   exist first.
  1636.  
  1637. - Changed ANSI viewer to work better with certain messages. Really, I should
  1638.   make it user-definable, instead of being hard-wired to "less"; but I'm
  1639.   probably going to make it into an internal function anyway.
  1640.  
  1641. - Added "#include <sys/types.h>" to mmail/mmail.h. Usually I wouldn't
  1642.   mention a change of this type, but in this case, it was done to get
  1643.   MultiMail to compile with glibc (libc 6). Thanks to Cesar Cardoso for
  1644.   reporting the problem and testing the solution.
  1645.  
  1646. - Saved messages are now wrapped at 80 columns, regardless of screen width
  1647.   at the time of saving; and the date is now added to the saved header.
  1648.  
  1649. - Replying to a message no longer messes up the right margin of the original
  1650.   when viewing it immediately after replying.
  1651.  
  1652. - Paths are no longer stored with the .red file when using LHA. In previous
  1653.   versions, this could cause the storing of multiple .red files into a
  1654.   packet.
  1655.  
  1656. - Next/previous unread in letter list now work correctly, even with messages
  1657.   that have manually been marked Unread.
  1658.  
  1659. - Miscellaneous minor internal fixes and optimizations.
  1660.  
  1661. 0.8 - 1998/02/10:
  1662.  
  1663. New features:
  1664.  
  1665. - "Re: " is stripped from subject lines, for sorting and display purposes,
  1666.   and added automatically on replies (unless doing so would truncate the
  1667.   subject). Subject sorting is now case-insensitive.
  1668.  
  1669. - Letter window now displays "bbsnum (x of y)", for consistency with the
  1670.   letter list and to provide more information.
  1671.  
  1672. - Slightly expanded the area description length to make better use of the
  1673.   available space. Also, in the letter list, more of the subject is shown.
  1674.  
  1675. - Restored the "line/lines" counter found in early versions of MultiMail.
  1676.   This shows the length of the message in lines, and the number of the top
  1677.   line on screen.
  1678.  
  1679. - Temporary files are now cleared at the end of a session. Also, since
  1680.   MultiMail now generates a unique temporary directory for each session, a
  1681.   single user can run multiple concurrent sessions. (Just don't try to read
  1682.   the same packet in each one!)
  1683.  
  1684. - System uname added to Blue Wave tearline (if it will fit).
  1685.  
  1686. - Character set translation can now be toggled at runtime, by pressing 'c',
  1687.   instead of at compilation time.
  1688.  
  1689. - Packet type is now recognized automatically, based on the filename's
  1690.   extension. (You can still force the other type.) Consequently, the "-b"
  1691.   and "-q" options have been removed.
  1692.  
  1693. - The Blue Wave area list now uses the description instead of the echotag.
  1694.   This is much more useful, and conforms to the Blue Wave reader.
  1695.  
  1696. - The number of the original message is now passed to the door for reply
  1697.   linking.
  1698.  
  1699. - In the letter window, the top and bottom bars are now inversed when in
  1700.   monochrome. In the various lists, the highlight bar is now drawn with
  1701.   stdout(), for greater contrast.
  1702.  
  1703. - Many changes to the top-level Makefile; it's now more portable, and
  1704.   commented. You can now set the location of the ncurses header file here,
  1705.   instead of editing the source.
  1706.  
  1707. - The packet list is now sorted, and shows file sizes as well as dates.
  1708.  
  1709. - The backquote character (`) is converted to an ESC when using the ANSI
  1710.   viewer. (Some systems recode ESC characters this way.)
  1711.  
  1712. - You can now Kill packets from the packet list.
  1713.  
  1714. Bug fixes and such:
  1715.  
  1716. - If all preexisting replies were deleted, attempting to create a new reply
  1717.   during the same session could cause a segfault.
  1718.  
  1719. - Terminal newlines stripped from replies. Conforms to the Blue Wave reader;
  1720.   supresses gaps after the tagline with some doors.
  1721.  
  1722. - QWK subject fields had been truncated at 24 characters. (The field is 25
  1723.   chars.)
  1724.  
  1725. - The tagline file can now be hand-edited without introducing blank lines.
  1726.  
  1727. - In the letter window, PgDn, End, and the down arrow now stop at the actual
  1728.   end of the text.
  1729.  
  1730. - No more extra junk in Blue Wave reply packets.
  1731.  
  1732. - Blue Wave replies can now be safely reedited. (Previously, the line
  1733.   endings could be messed up -- left in Unix format.) Stray characters no
  1734.   longer appear at the end of Blue Wave replies while viewing them.
  1735.  
  1736. - Blue Wave mode, like QWK mode, now shows the BBS message numbers in the
  1737.   letter list, instead of the messages' position in the packet.
  1738.  
  1739. - Trailing ", Sysop" stripped from sysop name in QWK mode.
  1740.  
  1741. - Opening reply packets that were generated by the Blue Wave reader caused a
  1742.   segfault, due to case mismatch; it now works correctly.
  1743.  
  1744. - Version number "encryption" for Blue Wave replies fixed (so the number
  1745.   appears correctly in tearlines). (IMO, the Blue Wave specs are in error in
  1746.   describing this feature -- bluewave.h refers to addition when it should
  1747.   say subtraction.)
  1748.  
  1749. - Left and right arrow keys in the area list now work much faster when
  1750.   skipping empty areas, and can take you to the first and last areas,
  1751.   instead of second and next-to-last.
  1752.  
  1753. - Killed the stupid repeating-REPLY-area bug in Blue Wave mode.
  1754.  
  1755. - When creating Blue Wave replies, MultiMail now makes the proper choice
  1756.   between "real name" and "alias", depending on the area flags.
  1757.  
  1758. 0.7 - 1997/12/07:
  1759.  
  1760. New features:
  1761.  
  1762. - Right and left arrow keys now select next/previous unread message in an
  1763.   area, similarly to the way they function in the area list (jumping to
  1764.   non-empty areas).
  1765.  
  1766. - ANSI viewer. Hit ^A while reading a message to view it in color, if it has
  1767.   ANSI codes embedded. This is still rudimentary; it uses "less" as the
  1768.   viewer, and it depends on the terminal to interpret the codes.
  1769.  
  1770. - Private flag support. Complete, except for Blue Wave area flag checks.
  1771.  
  1772. - Character set translation is essentially complete. The only further
  1773.   changes I envision are the ability to turn translation on or off at run
  1774.   time, instead of at compile time; some possible changes to the translation
  1775.   table; and maybe additional character sets.
  1776.  
  1777. - Stolen taglines are checked for dupes, included only once.
  1778.  
  1779. - With some minor changes, I got it to work under SunOS (Solaris). No longer
  1780.   just a Linux program! :-) So, the tearline is now derived from the uname.
  1781.   Blue Wave mode still requires a little-endian system.
  1782.  
  1783. - QWK "Personal" conference.
  1784.  
  1785. - Many key aliases added, mainly for use on terminals that don't support
  1786.   keys like PgDn and F1. Also, Space Bar now functions as a combination
  1787.   PgDn/Enter in the letter window, to allow paging through a conference.
  1788.  
  1789. - Marking and read/unread toggle now work from the letter list, simplifying
  1790.   bulk marking. In the REPLY area, Kill now works from the letter list.
  1791.  
  1792. - Automatic creation of .mmailrc and the mmail directories; no more "make
  1793.   install_dirs".
  1794.  
  1795. - Changed bluewave.h to version 3. (No related feature changes yet.) I now
  1796.   use it in unmodified form; "-fpack-struct" is sufficient.
  1797.  
  1798. Bug fixes and such:
  1799.  
  1800. - Suppression of "hidden" text lines added for Blue Wave (already present
  1801.   for QWK).
  1802.  
  1803. - Append saved files instead of overwrite.
  1804.  
  1805. - If saving without a path specified, save in the "save" directory.
  1806.  
  1807. - Better adaptation to nonstandard screen sizes.
  1808.  
  1809. - Really random taglines (previously, there was no call to srand).
  1810.  
  1811. - "Save lastread pointers?" and "Reply area has changed..." messages now
  1812.   come up only when appropriate.
  1813.  
  1814. - "Personal" column in area list removed in QWK mode. Maybe not a bug, but
  1815.   it was unused.
  1816.  
  1817. - Fall back to login name if no alias name defined. (It was using only the
  1818.   alias name, sometimes leading to blank From: lines in Blue Wave mode. This
  1819.   feature needs more work -- the alias should not always be the default.)
  1820.  
  1821. - Various date fixes (QWK and Blue Wave).
  1822.  
  1823. - Print the right area type for QWK Replies.
  1824.  
  1825. - Area names padded out with spaces when necessary to correct a cosmetic
  1826.   defect in the REPLIES/PERSONAL letter lists' "Area" fields.
  1827.  
  1828. - Version number references made consistent.
  1829.  
  1830. - Remove extra bytes from ends of messages (QWK and Blue Wave).
  1831.  
  1832. - A big one: Kill the *correct* reply messages with 'K'. (!)
  1833.  
  1834. - A BIG one: QWK reply area numbers fixed. It was using the internal area
  1835.   number, rather than the QWK number; so replies would go to the wrong
  1836.   areas! (Under specific conditions -- a packet with conferences that were
  1837.   numbered serially, starting from zero -- this would actually work right,
  1838.   which is doubtless how the bug snuck in to begin with.)
  1839.  
  1840. - Stop truncating replies. (This bug complimented the extra byte bug,
  1841.   preventing segfaults in the old version.)
  1842.  
  1843. - I changed the default directories from "bwdown", etc., to "down", etc.
  1844.   This wasn't a bug, but it was too Blue Wave-centric for a dual-function
  1845.   reader. (I believe the original intent of K.T. & T.I. was that the QWK
  1846.   implementation would have its own directories, e.g., "qwkdown";  but as
  1847.   implemented by J.Z., a common directory was used. I may revert to the
  1848.   putative original design at some point. Internally, the "bw"  prefix is
  1849.   still used on many shared structures.)
  1850.  
  1851. - Make .REP packets from the BBSID, not the base packetname.
  1852.  
  1853. - "Unread" now counts all messages marked unread, not just those which are
  1854.   also unmarked and unreplied.
  1855.  
  1856. - Letter sort fixed (now sorts by number within each subject), and faster.
  1857.  
  1858. - Eliminated the defaulting to "reply" when an otherwise undefined key was
  1859.   pressed.
  1860.  
  1861. - Calls to todos replaced with internal code.
  1862.  
  1863. - QWK .ndx parser replaced with faster, non-endian-dependent version.
  1864.  
  1865. - Many ncurses changes. Most importantly, shells and (normal) exits now
  1866.   restore the screen mode. (Error exits still need fixing.)
  1867.  
  1868. - Makefile changes (including centralizing options in top-level Makefile).
  1869.   Could do with a bit more changing, I think.
  1870.  
  1871. - A big one (since it prevented me from even using 0.6, as it was): Fixed
  1872.   segfaults on opening packets with uppercase names within (i.e., those from
  1873.   most or all DOS-based BBSes).
  1874.  
  1875. - Many minor changes to suppress warning messages during compilation.
  1876.  
  1877. - Many, many more. :-) These are just the user-visible ones.
  1878.  
  1879. Bugs unfixed:
  1880.  
  1881. - The lockup-on-exit bug, described below as having appeared in 0.3 and
  1882.   disappeared in 0.4, has resurfaced. I too am unable to trace it. It can
  1883.   come or go after almost any random change in the code.
  1884.  
  1885. -- William McBrine
  1886.  
  1887. 0.6a - 1997/03/25:
  1888.  
  1889. - Oops! The signature was in the wrong place. Right order is: signature,
  1890.   tagline, tearline ;-)
  1891.  
  1892. - Tagline adoption is supported! (Doesn't check dupe tags yet.)
  1893.  
  1894. - QWK-reply packs contained '\n' as a line terminator. It's incorrect! We
  1895.   have to use softCR (char#227).
  1896.  
  1897. - Character conversion is somewhat in! For ISO 8859-1 <--> CP437 (DOS)
  1898.   translation, #define ISOCONVERT in /interface/interface.h
  1899.  
  1900. - ISO conversion doesn't do the from/to/subj yet
  1901.  
  1902. 0.5a - 1997/03/22:
  1903.  
  1904. - Fixed another date bug (when reloading QWK replies, the date would be
  1905.   mangled).
  1906.  
  1907. - You can now use a signature file after each letter (specify its filename
  1908.   in .mmailrc)
  1909.  
  1910. - Says error, if ~/.mmailrc isn't found. (The program needs this file!)
  1911.  
  1912. - File open errors printed, inside a BW/QWK packet, it tries four variations
  1913.   of the filename (eg. mybbs.dat, MYBBS.dat, MYBBS.DAT, mybbs.DAT).
  1914.  
  1915. - The annoying bug, which occurred when quitting, has disappeared!
  1916.   ;-o
  1917.  
  1918. 0.4a - 1997/03/12:
  1919.  
  1920. - Fixed the date handling with QWK packets. Should do it well. That part
  1921.   wasn't even implemented before.
  1922.  
  1923. - Colors should be fine now, everywhere.
  1924.  
  1925. - One small, but ANNOYING bug introduced: the program doesn't exit properly,
  1926.   sometimes you have to kill it! Sorry, couldn't trace this bug yet. Maybe
  1927.   you can help.
  1928.  
  1929. 0.3alpha - 1997/02/16:
  1930.  
  1931. - Took out many more bugs. This version now is almost usable ;)
  1932.  
  1933. - You can now (re)Edit your reply!
  1934.  
  1935. - Major design and color changes... Still not done, but doing good!
  1936.  
  1937. - Added message Marking, Read/Unread toggle.
  1938.  
  1939. 0.2alpha - 1997/02/12:
  1940.  
  1941. - Debugged the program, fixed lots'a bugs, added QWK support. Only a
  1942.   preview! Don't use it, that's my advice! ;)
  1943.  
  1944. -- John Zero
  1945.  
  1946. 0.1c.staticbin - 1996/??/??:
  1947.  
  1948. - statically linked elf executable of 0.1c. Problems were reported with gcc
  1949.   2.7.2 and libc 5.2.?.
  1950.  
  1951. 0.1c - 1996/03/19:
  1952.  
  1953. - bugfix, now uses "todos", instead of "/usr/bin/todos", only elf binary
  1954.   included
  1955.  
  1956. 0.1b - 1996/02/05:
  1957.  
  1958. - Compiles on RedHat 2.1 + dynamic elf binary included
  1959.  
  1960. 0.1a - 1996/02/03:
  1961.  
  1962. - INSTALL file created (cut from readme)
  1963.  
  1964. 0.1 - 1996/01/27:
  1965.  
  1966. - initial release
  1967.  
  1968. -- Kolossvary Tamas and Toth Istvan
  1969.