This file lists all of the changes made for each release of the Digital
Distortion Message Reader.

Revision History (change log)
=============================
Version  Date         Description
-------  ----         -----------
1.17     2018-??-??   Added support for Synchronet's new voting feature that
                      was added in Synchronet 1.17.  Added support to allow the
                      sysop to validate messages in moderated message areas.
                      Fixed various bugs related to doing a newscan, displaying
                      messages with ANSI content, out-of-bounds error when
                      deleting a message, etc.  Updated to set the message
                      number field length dynamically based on the number of
                      messages in the sub-board.  It will be at least 4 but
                      can be more than 4 if there are 10000 messages or more
                      in a sub-board.  Updated so that when listing personal
                      email, it will use the regular formatting colors rather
                      than the colors for messages to the user, since all
                      personal emails are to the user (the 'to user' colors for
                      each email might be obnoxious).
                      Also, updated to support Synchronet's Avatar feature
                      which was added in version 3.17.  For that feature to
                      work, you will need the latest .js files - Specifically,
                      for this reader, you would need smbdefs.js and
                      avatar_lib.js.  Added a new configuration setting,
                      displayAvatars, which toggles whether or not to display
                      user avatars in the message headers.  Valid values are
                      true and false.
                      Also Added the new @-code MSG_FROM_AND_FROM_NET and
                      MSG_FROM_AND_FROM_NET-L (for left-justification with
                      field length), which shows the 'from' name with the from
                      network in parenthesis.  Updated the default message
                      header to show that information.
                      Also contains various bug fixes.
1.16     2016-09-11   Added a new feature that allows users to forward a
                      message to an email address or to another user on the
                      BBS (using the O key).  This can be useful, for
                      instance, if the user wants to send a message in a
                      public sub-board to their personal email for future
                      reference or send a message from a public sub-board to
                      another user to discuss the topic privately.
1.15     2016-08-29   - New user edit feature for sysops only: While reading
                      a message, the U key will edit the user account of the
                      author of the message (only if it's a local user account
                      on the BBS)
                      - Bug fix: Private reply on a networked sub-board
                      was no longer working (different from the bug fixed
                      in 1.14)
                      - Implemented a check to (hopefully) prevent a crash
                      related to parsing and replacing @-codes related to
                      file areas
1.14     2016-08-17   Bug fix: Version 1.13 was failing to reply to
                      private emails
1.13     2016-08-16   - Bug fix: Message number error when a new user starts
                      reading messages.
                      - Bug fix: Now, it should always successfully save a
                      message header with the READ attribute when the user
                      it was addressed to has read the message.  This should
                      fix an issue where the same message would keep coming
                      up in a newscan, etc.
1.12     2016-05-11   - Updated the way the pause prompt is shown in the help
                      screen, in case the sysop has configured an external
                      module (Baja/JS) to run for a pause prompt.
                      - Potential bug fix: When translating a message number to
                      a message index, added a check to ensure the value is
                      a number, to (hopefully) avoid a potential crash.
1.11     2016-03-25   The reader now updates the number of new posts read by
                      the user during the session.  This is represented by
                      bbs.posts_read in JavaScript.  Also, did some internal
                      refactoring of the code, removing some old code leftover
                      from my message lister that is no longer needed in this
                      reader.  DDMsgReader.js is a bit smaller due to the
                      refactor.
1.10     2016-02-19   Added a new configuration option,
                      readingPostOnSubBoardInsteadOfGoToNext, that affects what
                      happens after the user reads the last message on a
                      sub-board (for normal reading, not for newscans etc.): If
                      this is set to true, then the reader will prompt the user
                      if they want to post on the sub-board, then exit (this
                      is the stock Synchronet behavior).  If this is set to
                      false, then the reader will prompt the user whether to go
                      to the next sub-board after reading the last message on a
                      sub-board.  Also, added the postOnSubBoard text
                      configuration parameter for the theme filename, which
                      specifies the text to use for prompting the user if they
                      want to post on the sub-board after reading the last
                      message.
                      Added new configuration options areaChooserHdrFilenameBase
                      and areaChooserHdrMaxLines.  These options specify the
                      filename base for a header file to use for the message
                      area chooser list and the maximum number of lines to use
                      from the area chooser header file.  The filaname is
                      without the extension - The reader will first look for an
                      .ans version, then an .asc version.  Additionally,
                      multiple header files can be used for different terminal
                      widths - For example, chooserMsgHdr-80.ans for an
                      80-column terminal, choosrMsgHdr-140.ans for a 140-column
                      terminal, etc.
                      Updated so that when using the message written dates
                      (instead of the imported dates) in the message list & area
                      chooser, it will adjust the message written dates to the
                      BBS's local time zone so that they are all consistent.
1.09     2016-01-15   Updated to not center the message header lines
                      horizontally.  Now, it will display the header lines
                      starting on column 1.  This was done to fix a display
                      issue in some terminal software.
1.08     2016-01-10   Bug fix: When scanning message sub-boards, it wasn't
                      always closing the sub-board when there were no new
                      messages, resulting in further sub-boards failing to open
                      after a while.  That has been fixed.
1.07     2015-12-24   - Added the ability to select multiple messages (for
                      actions such as batch delete), and added the ability to
                      delete multiple selected messages.  Batch deleting is
                      only allowed when the user has permission to delete
                      messages (such as their own personal email).  Messages
                      can be selected in the following ways:
                        o Lightbar message list: The spacebar selects an
                          individual message.  CTRL-A lets the user select or
                          un-select all messages.
                        o Traditional message list: The S key lets the user
                          select or un-select messages, by typing message
                          numbers, A to select all, or N to select none
                          (un-select all).  The list of message numbers is
                          comma-separated or space-separated, allowing
                          for number ranges such as 120-130 for instance.
                        o Reader interface: The spacebar selects the message.
                      To delete the selected messages, the user must be in the
                      message list; the CTRL-D key combo is used for batch
                      delete, and it will prompt the user for confirmation
                      before deleting the messages.
                      - Added the following configurable items in the theme
                      file:
                      delSelectedMsgsConfirmText
                      selectedMsgsDeletedText
                      cannotDeleteAllSelectedMsgsText
                      selectedMsgMarkColor
1.06     2015-12-13   - Updated so that a sub-board new-message-scan (with the
                      new_msg_scan_cur_sub command-line parameter) can make
                      use of the -subBoard command-line option to scan a
                      specific sub-board, which may be different than the
                      user's current sub-board.
                      - Added a new configuration option, pauseAfterNewMsgScan,
                      which specifies whether or not to pause (i.e., with a
                      "finished" message) after doing a new message scan.
                      - Bug fix: The configFilename command-line parameter was
                      not being read correctly on startup; this has been fixed.
                      - Bug fix: Doing a new-message-scan should now always
                      display the correct sub-board @-code information in the
                      header above the message.
1.05     2015-12-06   - Improved displaying of messages with ANSI codes.  The
                      reader now makes use of frame.js and scrollbar.js (in the
                      sync/exec/load directory) to enable a scrollable user
                      interface when displaying messages with ANSI content.
                      There is also a new configuration option,
                      readerInterfaceStyleForANSIMessages, which lets the sysop
                      configure whether to use a scrollable or traditional user
                      interface for ANSI messages.  The reason for that option
                      is in case ANSI messages don't look good when using
                      frame.js & scrollbar.js - When set to a traditional user
                      interface for ANSI messages, the reader will use a
                      non-scrolling user interface for displaying messages with
                      ANSI codes, which simply sends the message to the client
                      and lets the client display the ANSI content.
                      - More kludge lines displayed (with the 'K' key), and
                      all message header lines are now displayed (with the
                      'H' key).  This is a sysop feature.
                      - Color configuration options for the kludge/header line
                      labels (hdrLineLabelColor) and kludge/header line values
                      (hdrLineValueColor)
                      - Bug fix related to interpreting colors from other BBS
                      software (WWIV, PCBoard, Wildcat, Celerity, Renegade)
1.04     2015-10-10   - New feature: Users can now download attached files,
                      whether uploaded to their mailbox in Synchronet or
                      attached via internet email.
                      - New feature: Sysops can save a message to the BBS
                      machine (using the Ctrl-S key combo).
                      - User experience improvements: Added a pause after
                      saving a message so that the user can see Synchronet's
                      message save screen before going back to the reader or
                      message list.  Also, in the message list, PageDown now
                      goes to the last message when on the last page, and
                      similarly, PageUp goes to the first message when on the
                      first page.
                      - Updated the DDReadPersonalMail.js loadable module
                      script to start reading personal email in lister mode
                      by default, which is more in line with what Synchronet
                      does by default.  That will let the user select a message
                      to read first.
1.03     2015-07-12   Bug fix: In Linux, when replying to the last message in
                      a sub-board during a newscan or in read mode, it would
                      not immediately refresh the messagebase information, so
                      it would not see the new message posted.  This has been
                      fixed by closing the messagebase while the user is
                      posting a reply message and re-opening the messagebase
                      when the user is done posting the reply.
1.02     2015-06-10   Bug fix in DDScanMsgs.js: Switched to bbs.scan_msgs()
                      instead of bbs.scan_subs() for all other scan modes
                      besides SCAN_READ.  Updated the version number to
                      reflect that; no change to the actual reader.
1.01     2015-05-17   Bug fix: The enhanced reader header file is now correctly
                      displayed even if the lengths of its lines are
                      inconsistent.
1.00     2015-05-06   Initial release