emacs: show: improve handling of mark read tagging errors
authorMark Walters <markwalters1009@gmail.com>
Thu, 9 Jun 2016 09:54:10 +0000 (10:54 +0100)
committerDavid Bremner <david@tethera.net>
Tue, 28 Jun 2016 07:20:54 +0000 (09:20 +0200)
commitdd5cd6964fe074c79c1850abb82d805bca35a5c5
tree39179cc9970e00520baba372b72992e046c00097
parentcc1a6d2a947ef8c2577a77027d69fce012ae91fd
emacs: show: improve handling of mark read tagging errors

Previously if a marking read tag change (i.e., removing the unread
tag) failed for some reason, such as a locked database, then no more
mark read tag changes would be attempted in that buffer.

This handles the error more gracefully. There is not much we can do
yet about dealing with the error itself, and marking read is probably
not important enough to warrant keeping a queue of pending changes or
anything.

However this commit changes it so that

- we do try and make future mark read tag changes.

- we display the tag state correctly: i.e. we don't display the tag as
  deleted (no strike through)

- and since we know the tag change failed we can try to mark this
  message read in the future. Indeed, since the code uses the
  post-command hook we will try again on the next keypress (unless the
  user has left the message).

We indicate to the user that these mark read tag changes may have
failed in the header-line.
emacs/notmuch-show.el