IMAIL To-Do List

Bug fixes
---------

* Remove cache for folders that aren't on server any more.

* When browser pops up a window of URLs that it is operating on, the
  strings shown should be relative to the container being browsed.

* Various changes to Dired that might affect our browsers: t command
  means toggle sense of marked lines (*t also does this, perhaps is
  preferable).  S and H do links.  P prints file.

* The RENAME-FOLDER operation must change the folder object to refer
  to the new URL rather than the old.  The operation must close the
  folder if it is open, then discard all the state, and finally
  reinitialize it to be a closed reference to the new URL.

* When Rmail parser encounters corruption, tell the user what message
  is corrupted and attempt to recover the parse by looking for the
  beginning of another message.

MIME conformance
----------------

* Implement codec for =?x?y?z?= header notation.  Use codec to do
  encoding/decoding in header fields.

* When sending message attachments, examine them to see if they are
  properly encoded for 7bit transmission.  If not, encode them as
  needed.  When a message is already encoded but violates the spec,
  decode and re-encode it.

New features
------------

* Add ability to set quotas for cache management.

* Add ability to work offline by accessing cache, but not initiating a
  connection to get any uncached data.

* Add command to pre-load the cache with all of a folder's contents.

* Add feature to automatically bring up a summary window whenever
  imail is started.  Perhaps this ought to allow specification of the
  folders for which this is true.

* Allow user to specify multi-key sorting, such as "sort by sender,
  then by reverse date".

* Implement generic operation to say whether a folder is open or
  closed.  This is needed to implement a command that closes open
  folders, prompting the user for each folder.

* Implement decoder for uuencoded attachments.  Agnes recently sent me
  a message with a uuencoded attachment.

* [partially done]
  Allow the user to specify that elements of a MIME digest are to be
  treated as out-of-line rather than inline.  In this case the
  attachment summaries need to show the "from" and "subject" headers
  so that the digest can be browsed.  We will also need commands to
  toggle all of the elements between in-line and out-of-line.

* Add ability to treat a MIME digest as a folder, so that it can be
  visited and browsed like any other folder.  Obviously, deleting
  individual messages in the folder can't work, but this could be
  simulated, using client-side markers, or perhaps flags such as
  "digest-message-1-deleted".

* Implement generic operation to say whether a folder rename can work.
  Use this to extend M-x imail-rename-folder to work in all cases by
  using copy/delete when rename inapplicable.

* Examine spec for text/enriched and see if it can be incorporated
  into the reader.

* Implement file backup when writing file folders.

* Generate file I/O messages when reading and writing file folders.

Design changes
--------------

* Move pathname-completion code into the runtime system.

* Implement something closer to the IMAP COPY operation, e.g.
  APPEND-MESSAGES.  Use this to make folder copying faster.

* Reimplement UID synchronization.  Take advantage of monotonic UID
  numbers to discover largest prefix range that hasn't changed.
  Binary search can be used which should produce excellent results on
  large folders.  UID FETCH command should be useful for this.

* Try to leverage IMAP MIME parser by building compatible
  interface for file-based folders.
