Version 3.10

  * Shutdown cleanly if the install wizard is cancelled.

  * Disable CRAM-SHA256 authentication as it doesn't seem to quite be
    working right yet.

  * Make delete in a search group delete from the underlying group.

  * Added support for CRAM-SHA1 and CRAM-SHA256 authentication.

  * Don't require a key in an IMAP response if the tag is "+" to
    indicate that additional input is required.

  * Recognise and ignore the XGWTRUSTEDAPP authentication scheme to
    prevent annoying log messages.

  * Make SASL PLAIN authentication work properly.

  * If a message has two or more Message-ID headers then Exchange will
    return all of them with newlines in between when asked for the
    envelope, so truncate the Message-ID at the first newline.

  * Read per-user SSL/TLS mode correctly from the configuration.

  * Parse APPENDUID responses correctly when storing a message to
    an IMAP folder.

  * Acknowledge reindex requests correctly.

Version 3.00

  * Fix crash when a UIDVALIDITY change is detected while opening
    an IMAP group.

  * Add support for SSL/TLS connections to SMTP and IMAP servers.

  * Don't try and create the waste basket folder if we didn't manage
    to connect to the IMAP server.

  * Quote the personal name in email addresses returned to the client
    if it is not valid without quotes.

Version 2.04

  * Check the UID validity on each poll of a group, and mark the
    group statistics as invalid on a UID validity change.

  * Send dummy article numbers in the move/copy article replies.

  * Don't mark group statistics as valid until they really are or we
    can wind up with invalid cache entries.

  * Really fix blocking of updates for groups with invalid statistics.

  * Support from address specifiers in the mail article command.

Version 2.03

  * Fixed debug logging of NNTP authentication.

Version 2.02

  * Rework the blocking of updates after operations which may render
    the cached statistics for a group invalid so that only updates
    which rely on the statistics are blocked.

  * Send an articles deleted update message for the source group after
    an IMAP move operation.

  * After an operation (delete, copy, move or flag update) that
    might change the number of messages in a given state make sure
    that updates for that group are blocked until the next poll or
    we may wind up sending invalid statistics to Messenger.

  * Respect the w flag in delete article messages so that moving
    messages doesn't put copies of them in the waste basket.

  * Record the UIDVALIDITY value for IMAP folders and discard any
    cached group statistics and overview data if it changes.

  * Allow the names of the deferred mail and news folders to be set
    in the user options window.

  * Implement waste basket support - the waste basket flag can now
    be set in the user options and the name of the waste basket folder
    can be specified.

  * Fix the IMAP move handler to stop it crashing - this hadn't been
    noticed before because Messenger never does a move.

  * Handle the new SetFlagsRange message so that catchup from the
    group window in Messenger can work properly.

  * Respect the per-user report attachments flag when we are using
    the per-user connection information.

Version 2.01

  * Fixed crash doing a global fetch by message ID with only a mail
    connection defined and no news connection.

  * When a group is renamed to a new name make sure we allocate
    enough memory for the new name instead of assuming we can reuse
    the memory allocated for the old name.

  * Generate the correct update message when a folder is deleted
    instead of a message which looks like a rename to a junk name.

  * Create intermediate directories in the path to the search
    overview file if it isn't a simple name.

  * Report failures to open the overview file when doing a search.

Version 2.00

  * Changed the shutdown code to cope with the event loop being run
    while the program is shutting down so that we can cleanup properly
    when the server is on the same machine as the client.

  * Fixed the IMAP cache to cope with folders that have spaces in the name.

  * Keep track of the number of new (aka recent) messages in each folder
    and pass this information to Messenger.

  * Added some code to check for deleted messages when an overview is
    requested from an IMAP connection, and remove any missing articles
    from the overview so that they don't show up in the client.

  * Changed the SMTP code to send the message in smallish chunks instead
    of trying to read the whole message into memory and then send it.

  * Disabled the background polling for IMAP updates on login unless the
    hidden AsyncLogin option is set in the site configuration, as Messenger
    still isn't able to cope properly with this.

  * Update all changed group statistics simultaneously to reduce the number
    of update messages that have to be sent to clients and hence avoid them
    seeing strange intermediate states that may be confusing.

  * Optimise NNTP subscription requests for groups we already know about
    by not bothering to check with the server if it pattern given contains
    no wildcards and matches a group we know about.

  * Cache summary information for IMAP groups on the client to allow us
    to start up much faster and then poll for updates in the background.

  * Ensure that the FQDN and mail domain are updated properly when a
    changed is made to the host name or domain name.

  * Fixed crash in the IMAP parser when a message had no Message-ID.

  * Enable the "Server details" button on the edit user configuration
    window and fix a few minor problems with it.

  * Allow host names to have a port number appended, separated by a colon.

Version 1.55

  * Fix event handlers inserted into the RMA to be 32 bit safe.

  * Fix checking of errors from TCP/IP calls to cope with RISC OS 5 which
    seems to have decided to behave as the PRM describes instead of doing
    what the Internet module has always done in reality.

  * Fix a few potential issues with heap locking when errors occurred.

Version 1.54

  * Fixed crash when the user quit while RemoteNB was still initialisng.

  * Fixed IMAP code to avoid generating corrupt overviews when addresses
    or subjects contain newlines, carriage returns or tabs.

  * Fixed crash when an error occurred closing an IMAP or NNTP connection.

  * Fixed crash when an error occurred opening an SMTP connection.

  * Fix crash if we get an unsolicited BYE on a connection in the middle
    of storing an article.

  * When polling for new messages in a group which is currently open, make
    sure we close the group first as some IMAP servers (Courier) will not
    give us up to date information for a group which is open.

  * Make sure error message are reported to the right client, and that
    fatal errors on idle connections don't cause an abort.

  * Lock the IMAP connection mutex before flushing a connection.

  * Fix error sending mail when there is more than one email address
    listed for the user in the configuration.

  * Make sure any pending asychronous operations are carried out before
    a connection is suspended if we are caching connections.

  * Don't allow suspension of updates on one connection to affect other
    unrelated connections.

  * Ignore attempts to set flags which don't exist in the IMAP protocol.

  * Improved error reporting for asynchronous commands.

  * Fixed crash when an error occurred opening a network connection.

  * Fixed crash when an ALERT message was recieved on an IMAP connection
    before login was completed.

  * Fixed a race condition that could cause a crash if Messenger exited
    shortly after a network error occurred.

  * Removed redirection of standard error in the !Run file.

  * Fixed the envelope sender address on mail messages to match the default
    from address used by Messenger.

  * Fixed the from address on NNTP cancel messages.

  * Fixed a memory leak in the NNTP subscription code.

  * Report an error if a client tries to execute a command that requires
    us to be logged in when we are not logged in.

  * Fixed IMAP code to handle a server that reports a flat namespace
    with no hierarchy delimiter.

  * Improved handling of network errors - they are now reported cleanly
    instead of causing an abnormal termination.

  * Fixed a memory leak in the NNTP posting code.

  * Added code to ensure that an NNTP connection doesn't die if we don't
    have any groups subscribed.

  * Fix async connection code to work properly when the connection does
    not complete immediately.

Version 1.53

  * Stop the IMAP code clearing flags that it is about to set.

  * Fix parsing of body header responses to cope with quoted header names.

  * Fix crash on the first poll after renaming an IMAP group.

  * Increase the maximum size of server response which can be logged.

  * Add code to catch any unterminated quoted strings and warn about them.

  * Handle quoted folder names in STATUS responses properly.

Version 1.52

  * Improved the updating of unseen and flagged message counts by forcing
    an update whenever we suspect that they might have changed.

Version 1.51

  * Make sure that the unseen message count is updated properly if it
    falls to zero.

  * Fixed a bug that caused invalid flag messages to be sent if there
    were more than 110 consecutively numbered articles in a group.

  * Prevent sending of pointless clear and set flag commands which contain
    no flags at all.

  * Fix the IMAP code to avoid sending nonsense messages announcing the
    flags for articles that don't exist.

  * Pass an empty string for the new name of a group when announcing
    it's deletion.

  * Pass new style group flags to the client so that Messenger can tell
    if a group has server side flags or not.

  * Quote the username and password given to the LOGIN command so as to
    allow for values which contain spaces and passwords which are blank.

  * Include the unseen and flagged message counts for each group in the
    various group related messages sent to the client.

  * Added support for fetching articles by ID when the group is not
    known so that the history menu in Messenger works. Note that this
    is quite inefficient for IMAP as we have to search each group in
    turn until we find the article.

  * Added code to maintain a count of the number of unseen and flagged
    articles for IMAP groups.

  * Optimised the fetching of flags by overlapping reading of flags from
    the network connection with sending the results to Messenger.

  * Flush any pending operation before fetching flags so we can be sure
    that the flags we fetch are up to date.

  * Fixed a memory leak in the flag reading code and made it return an
    empty list for groups which don't support flags.

  * Stop marking articles from read only groups as locked as it isn't
    necessary and causes the icons used by Messenger to change.

  * Optimise setting of server side flags by batching up requests where
    the flags being set are the same.

  * Advertise the capability to get and set IMAP flags and fix a few
    minor bugs in the flags manipulation code.

  * Added a new configuration option to control whether to try and
    detect attachments and report them to Messenger, as it can be quite
    expensive on some servers.

  * Removed server patterns from server configuration dialog as it is
    no longer needed now that we don't fetch a full list of groups from
    the server at startup.

  * Fix deadlock in NNTP code when XOVER returned an error and the
    mutex protecting the connection didn't get unlocked properly.

  * Ignore a 420 response from XOVER on an NNTP connection as it may
    just be that there are no more articles available.

  * Handle dotted quad IP addresses as well as hostnames.

  * Return content type information in IMAP overviews so that Messenger
    can mark messages which have attachments.

  * Fixed bug in sequence number handling for repeated commands
    when an IMAP connection is reopened.

Version 1.50

  * Matched version number to MsgServe for Messenger Pro 2.50 release.

  * Fix problems using spaces in the sent mail/news folder names.

  * Allow all usernames (both local and remote) to be 256 characters.

  * Make the NNTP protocol code use a separate background thread for
    polling the server so that it can be interrupted when we have
    something more important to do.

  * Force user pane to redraw after a new user is added.

  * Recognise and ignore the NTLM authentication scheme to prevent
    annoying log messages.

  * Make sure the protocol layers are given both the local username
    and the remote username so that the IMAP layer can generate the
    correct group names when the local and remote usernames differ.

Version 1.09

  * Added support for updating of cached overviews when messages are
    deleted, to avoid having to refetch the entire overview from the
    server which can be slow.

  * Fixed handling of response codes in NNTP authentication in line
    with the RFC 2980 specifications.

  * Added basic support for the IMAP ID extension.

  * Fixed overview corruption bug when an IMAP server returned a name
    string with a newline in it.

  * Fixed overview corruption bug introduced by changes to buffering
    logic in network code.

  * Modified search code to handle multiple groups and not to return
    an error if no messages are found.

  * Optimised buffering of network reads to avoid needless copies.

  * Use Socket_WriteV to consolidate consecutive writes for optimal
    network performance.

  * Use dynamic buffers for formating NNTP and IMAP commands to avoid
    buffer overflows.

  * Fixed SMTP code to allow the remote account name to override the
    local username for authentication and return address generation.

  * Modified SASL LOGIN code not to depend on specific challenge strings
    from the server as they don't seem to be well defined.

  * Fixed backwards compatability code to include all newsgroups in
    the group info file instead of only those matching the last pattern
    in the group patterns.

  * Added new code to manage sets of article numbers and used it to
    optimise the copying and deleting of messages.

Version 1.08

  * Fix NNTP article posting code to handle articles without any
    trailing newline on the last line.

  * Fix SMTP code to unfold headers before passing them to the address
    parser, or headers which are folded can be misparsed.

  * Fix bug in get/free article pointer logic that caused various nasty
    things to happen if a second article was requested before the first
    is freed.

  * Limit the groups returned in the group info file (and hence those
    treated as subscribed with older versions of Messenger) to those
    which match the group patterns for the NNTP backend.

  * Ping the NNTP server immediately after a sucessful connection in
    order to avoid the ultra short timeout that INN uses for the first
    command on a new connection.

  * Fixed support for old versions of Messenger by making sure that
    GroupInfo files are generated when needed.

  * Improved enforcement of user access controls.

  * Added support for partial group lists to remove the long delays
    while a full group list is loaded from a full news servers. Note
    that bringing up the subscription window will still lead to a full
    list being fetched.

  * Fixed various pieces of code to use dynamically sized buffers for
    group names in order to avoid buffer overruns.

  * Cope with servers that forget to include a carriage return at the
    end of some lines.

  * Report authentication failures properly instead of allowing the
    program to crash.

  * Return an error for attempts to search a search results group.

  * Added support for the AddArticle command which allows Messenger's
    message deferral support to work.

  * Support the new multi-server startup protocol so that a client can
    talk to several servers simultaneously.

  * Include the name of the local host (taken from Inet$HostName and
    Inet$LocalDomain) in any CrashDump files.

Version 1.07

  * Make sure the configuration code's toolbox object list is created
    before we try and use it on a first time install.

  * Make sure update messages are blocked while we are disconnecting
    from the servers so that we don't send a group deleted message for
    every group.

  * Fixed the SMTP address parser to skip quoted strings properly.

  * Make the IMAP protocol code use a separate background thread for
    polling the server so that it can be interrupted when we have
    something more important to do.

Version 1.06

  * Fixed IMAP protocol code to stop it accidently registering the
    user's INBOX twice under different local group names.

  * Include reference information in IMAP generated overview files so
    that threading works in mail folders and the outgoing mail folder
    can correctly show the destination user in the article list.

  * Add extra logging for unexpected SASL events and for transmission
    of SASL responses.

  * Fix IMAP authentication to report the case when no authentication
    method is available, and to fall back to LOGIN properly when there
    is nothing better.

  * Do debug logging to SysLog so that it is always available even in
    release builds of the software.

  * Fix bug in generation of default names for outgoing mail and news
    folders when no name is present in the configuration file.

  * Log any failed LIST ACTIVE commands along with the error message.

  * Make sure that any dots added by NNTP as padding characters at
    the start of lines in a message are removed.

  * Pass any IMAP ALERT messages to the client as an urgent message
    to be presented to the user.

  * Now that the IMAP code handles lock contention properly, go back
    to using SELECT instead of EXAMINE to open mailboxes. This means
    that the read flag at least should be set correctly when a message
    is read.

  * Made the IMAP code cope with the connection being closed by the
    remote end, perhaps as a result a mailbox lock being stolen, and
    ensure that we don't get into a lock battle with another client
    trying to access the same mailbox.

  * Add support for pre-authenticated connections to the IMAP code.

  * Allow the RemoteNB$DumpFile environment variable to control the
    location of the CrashDump file, and make it default to a location
    inside !NewsDir instead of inside !RemoteNB.

  * Fix an Invalid Object ID error which occurred when trying to set a
    users configuration options.

  * If a request to open the user configuration window is received when
    the currently logged in user is not an administrator, open a restricted
    version of the edit user dialogue for the user instead of the full
    user configuration window.

  * Added support for SASL authentication to the IMAP protocol code. This
    uses the generic SASL code and supports all the same authentication
    methods.

  * Added support for RFC 2554 style SMTP authentication. This uses the
    generic SASL code and supports all the same authentication methods.

  * Added code to support SASL authentication systems. Currently the
    supported mechanisms are CRAM-MD5 (RFC 2195), PLAIN (RFC 2595) and
    the unofficial LOGIN scheme used by some older servers.

  * Added initial support getting and setting of article flags to allow
    a client to keep it's flags in sync with the server.

Version 1.05

  * Fixed installation wizard to handle the situation where one or
    more of the server names is left blank correctly.

  * Added support for configuring the names of the default outgoing
    mail and news folders.

  * Added a proper error response when a search finds no matches.

  * Don't delete an existing results group just because a new search
    that is appending to it has failed.

  * Fixed error reporting for IMAP searches where the FETCH command
    fails for some reason.

  * Translate between soft spaces at the IMAP protocol level and hard
    spaces at the client interface level. This should finally allow
    folders with spaces in the name to work.

  * Made the IMAP protocol code quote the folder name argument passed
    to the COPY command.

  * Improved tidying up of scrap directory on close - we now remove
    the directory and anything in it.

  * Fixed to stop reporting outgoing mail and news folder names when
    there is no IMAP server to store them on.

  * Fixed to stop trying to create IMAP folders when no IMAP server
    has been defined.

  * Fixed to validate that a user exists before attempting to login
    as that user.

Version 1.04

  * More fixes for renaming of IMAP folders.

Version 1.03

  * Qualify all addresses used in SMTP protocol exchanges with the
    configured mail domain if necessary.

  * Made the SMTP protocol code report any message recipients which
    are rejected by the server.

  * Include the current group name in IMAP protocol log messages
    where possible.

  * Fixed the SMTP error reporting which was producing nonsense
    error messages in a number of cases.

  * Made the IMAP protocol code handle folder names with spaces in.

  * Fixed renaming of IMAP folders - the IMAP command being issued
    was complete nonsense as it didn't inclue the new name.

  * Fixed a branch through a null function pointer switching back
    to a cached connection.

  * Fixed a null pointer dereference switching back to a cached
    connection.

  * Fixed a write through an invalid pointer revealed by MemCheck.

Version 1.02

  * Fixed IMAP protocol code to support the use of a null string as
    the private folder prefix and non "/" hierarchy delimiters.

  * Made connection establishment non-blocking so the desktop can
    continue to multitask.

Version 1.01

  * Fixed IMAP protocol code to handle FETCH responses with attributes
    in a different order to that given in the request.

  * Modified TCP connection code to use non-blocking sockets to avoid
    problems with the Acorn TCP/IP stack.

  * Set individual updates as well as block updates for the incoming
    mail folder so that Messenger can use user specific alert sounds.

Version 1.00

  * Increased version number to 1.00 for first release version.

  * Fixed stack swapping code to work on RISC OS 4 (hopefully).

  * Integrated manual changes from Mark.

Version 0.38

  * Tweaked the wording in the server configuration dialog to make
    things clearer.

Version 0.37

  * Fixed a problem with first time installations where the user
    directory wasn't created.

  * Made the help button work in all the configuration windows.

  * Added interactive help to the user remote details configuration
    window.

  * Fixed to send a group update when a copy or move is done so that
    the article counts in Messenger update as necessary.

  * Added support for the show log option on Messenger's iconbar menu.

  * Now creates sent mail and sent news folders if they don't already
    exist when sending a mail or news article.

  * Improve the error message given when trying to replace an existing
    article.

  * Add support for renaming of folders.

Version 0.36

  * Add support for deletion of individual entries in search results.

  * Move user directories into !NewsDir to match NewsBase and MsgServe.

  * Set RemoteNB$Version on startup so Messenger can put the version
    number in the User-Agent header.

  * Update edit user window to match MsgServe and make the reply to
    address option work.

Version 0.35

  * Allow search to append to existing results.

  * Make sure we create a RemoteNB directory in each user directory.

Version 0.34

  * Fix bug that caused groups to be deleted from active connections
    when an inactive connection was timed out.

  * Inform clients that we are an online tool so that they can behave
    accordingly - specificly this stops Messenger subscribing people to
    all groups automatically.

  * Mark articles in read only groups as locked to assist Messenger
    is disabling options which don't apply to read only articles.

  * Fixed IMAP bug where new mail was not visible until RemoteNB was
    restarted.

  * Added search capability to support Messenger Pro.

  * Overview files are no longer cached across invocation of the program.

Version 0.33

  * Use EXAMINE rather than SELECT to select IMAP folders to avoid
    lock contention problems - folders are only SELECTed when they
    need to be written to (mainly when deleting messages).

  * Prevented spurious warnings being written to the log when
    an IMAP connection is closed.

  * Fixed a race condition when switching to a cached connection.

  * Added a !Boot file to the application to avoid some startup
    problems.

Version 0.32

  * Fixed IMAP folder creation code to cope with folder paths that
    contain '.' characters.

Version 0.31

  * Fix a race condition that could generate errors if a second article
    was requested before the previous one was freed.

  * Work around Messenger bug by ignoring FreeArticlePointer messages
    with a null handle.

  * Reorganise the group table code so that groups are added and
    removed properly when IMAP folders are created and deleted.

  * Report an error if an attempt is made to delete a non-existent
    group.

  * Fix creation of IMAP folders so it actually stands some chance of
    working.

  * Return an error if an attempt is made to delete messages from a
    non-existent group.

Version 0.30

  * If the client doesn't declare itself as supporting block updates
    send both sorts of update.

Version 0.29

  * Don't announce ourselves to clients or accept client requests until
    we have finished initialising.

  * Adjust some templates to prevent text being truncated when system
    font is in use.

  * Fix a couple of minor bugs in the new installation code.

  * Delay the EXPUNGE of an IMAP mailbox across multiple non-sequential
    deletes as it is more efficient that way.

Version 0.28

  * Add installation windows that appear if no configuration file
    is present.

  * Fix bug in configuration that meant leaving a server name blank
    didn't work properly.

Version 0.27

  * Fix a memory leak in the SMTP sending code.

  * Use a query window to check that the user is sure before deleting
    any user entries.

  * Add a remote details window to allow the remote account name and
    password to be set.

Version 0.26

  * Startup without an iconbar icon if the -noicon switch is given on
    the command line.

  * Add an MsgServe style server configuration window that can be
    invoked from Messenger Pro.

  * Add support for polling for new messages when the Fetch Messages
    option in Messenger Pro is used.

  * Add an MsgServe style site configuration window that can be
    invoked from Messenger Pro.

  * Fix silly bug that caused Messenger to request passwords when
    they were not needed and not request them when they were needed.

Version 0.25

  * Split the site and user configuration into separate files and
    moved them into !NewsDir.

  * Added MsgServe style user configuration window so all user
    configuration can now be done from within RemoteNB.

  * Greatly improved feedback from the protocol layers to the client
    message processing layer should mean much better reporting of
    error conditions.

  * Internationalised all user visible messages (primarily the error
    messages sent to clients).

  * Made the received lines generated by RemoteNB on outgoing mail
    messages compliant with the draft replacement for RFC821.

Version 0.24

  * Finally found and fixed the problem with my UpCall 6 handler as a
    result of which network access will no longer block the desktop.

  * Optimise the NNTP code along the same lines as the IMAP code thus
    reducing wimpslot size to some 260k.

  * Optimise the IMAP code to reduce memory overheads and eliminate
    unnecessary copying of data - an IMAP message is now read straight
    from the TCP/IP stack into the buffer that will be presented to
    the client.

  * Switch to using a flexible memory allocator for buffers, and use
    a dynamic area where possible.

  * Defer removal of messages from IMAP overviews until we actually do
    the deletes so that runs of consecutive messages can be deleted in
    one pass through the file.

  * Add support for RAM transfer.

  * Add support for feature masks on Newsbase_Startup commands and
    replies and use them to determine whether to do block updates
    or not with a given client.

Version 0.23

  * Add user configuration to the choices dialogue.

Version 0.22

  * Add a user option to only check the INBOX for new mail.

  * Generate a received header on outgoing email.

Version 0.21

  * Bugfix to prevent abort on failed network connections.

Version 0.20

  * Add a choices window that can set all the system wide options.

  * Add support for timing out of cache connections, along with a
    configuration option to control the timeout. By default no
    connection caching occurs.

  * Add a configuration option to control the frequency with which
    we poll for new mail and news.

Version 0.19

  * Fiddle with the NNTP code to try and avoid INN's caching of
    high water mark information for the current group.

  * Fix bug in support for alternative folder paths (it only worked
    if the alternative path was the same length as the default).

Version 0.18

  * Send old style article update messages as well as new style ones
    as TTFN won't pay attention to the new ones.

  * Add support for the ListArticles command so that TTFN will work
    with RemoteNB.

Version 0.17

  * Force an immediate poll when switching back to a connection to
    make sure that we see any new messages straight away.

Version 0.16

  * Use the mail domain instead of the fqdn when constructing the
    envelope sender address for an SMTP conversation.

Version 0.15

  * Connections are no longer closed when a client dies or changes
    user - instead they are kept around in case they can be reused
    later on. Hopefully this will make switching users faster.

  * Group info and overview files are now stored inside !NewsDir as
    a first step to making !RemoteNB able to live on a read only
    filesystem.

  * Group info is now held on a per-user basis so that unaccessible
    groups and folders can no longer be seen.

Version 0.14

  * Allow a list of newgroup patterns to be supplied in order to limit
    the number of groups we ask the server about.

Version 0.13

  * Allow paths to private and public folders to be changed in the
    configuration file.

  * Allow the SMTP server to be different to the IMAP server.

Version 0.12

  * Make sure all user directories exist on startup.

  * Fix a couple of bugs with first time connections.

Version 0.11

  * Pretend to be version 0.60l of Newsbase.

  * Make sure the groupinfo file is flushed after changing user.

  * Use the batch deletion feature of the Newsbase message protocol.

  * Generate "Article not available" errors when appropriate (ie
    when we get an error from the server).

Version 0.10

  * Send group update messages for ranges of articles instead of
    article created messages for each article.

Version 0.09

  * Batch up moves/copies/deletes of consecutive articles in mail
    folders.

  * Add public folders (these go under /var/spool/folders on the
    server).

  * Fix limitation that prevented use of multiple clients at the
    same time. Also fixes crash when trying to read mailboxes that
    you don't have access to because they belong to other users.

  * Build address lists for IMAP overviews using dynamic buffers
    to prevent buffer overflows with very long address lists.

  * Add fetch by message ID so that Messenger's thread following
    menus can work. Note that it still doesn't work properly due
    to a bug in Messenger which I have reported to Mark.

  * Fix tracking of message count when mail messages are deleted.

  * Log off from the server(s) if we get a set user command with
    a null username.

Version 0.08

  * Handle continuation lines on the SMTP banner response.

  * Use the configured mail server to send mail instead of always
    trying to use gosford.

Version 0.07

  * Log warnings and errors to standard error if the Syslog module
    isn't running.

  * Make sure we only ever have one thread running for a given
    client to work round a wierd problem where Messenger asks
    us to start a client session for it twice.

Version 0.06

  * Fix problem with long delay the first time the program is
    started. There is still a significant delay but it is now
    proportional to the number of articles currently on the
    server not the total number ever.

  * Fix race condition in handling of article file cache that
    could sometimes cause an article file to be deleted before
    the client got to read it.

  * Handle continuation lines when parsing mail headers.

Version 0.05

  * Create new overview directories as needed.

  * If no GroupInfo file exists at startup make sure we create one.

  * Fix handling of empty news groups where NNTP returns a high water
    mark that is lower than the low water mark.

  * Check that an IMAP server supports IMAP4rev1 before trying
    to use it.

Version 0.04

  * Return an error on attempts to delete from a read only group.

  * Support setting of envelope addresses so Messenger's bounce
    function works.

  * Return an error when asked to lock or unlock articles.

  * Create low resolution program sprite based on Tim's high
    resolution one.

  * RMEnsure the Window module in the !Run file. I'm not quite sure
    why it needs this but it does seem to...

Version 0.03

  * Turn the hourglass on while we process events in the client threads
    in case we wind up blocking against a network connection.

  * Don't try and open mail/news connections if the user hasn't defined
    a server name.

Version 0.02

  * Don't try and poll for new messages on a connection that failed
    to open.

  * Incorporate new high resolution program sprite kindly donated by
    Tim Howarth.

Version 0.01

  * First beta release.

