Hi all, this is the fourth version of my mailstore abstraction series. I split it into two parts, with the first part being sent here. I think that this part becomes mostly ready for merging. >From the user's point of view, it adds only the 'cat' subcommand and modifies the .el to use it. Thanks to this change it is easy to use Emacs client with the database accessed remotely over SSH. The only additional patch that must be applied is id:m1my03gsmu.fsf@watt.gilman.jhu.edu. The rebased version is at http://rtime.felk.cvut.cz/gitweb/notmuch.git/shortlog/refs/heads/jr/quote-args-in-notmuch-show and can be pulled by 'git pull git://rtime.felk.cvut.cz/notmuch.git jr/quote-args-in-notmuch-show'). More importantly, there are bigger changes for developers. Since it might be quite painful to rebase these patches to quickly changing master (as of the last few days) I'd like to have these merged ASAP. So the patches here are the following: Michal Sojka (4): Mailstore abstraction interface Conversion to mailstore abstraction Access messages through mail store interface Add 'cat' subcommand My biggest question relates to the first patch, which does an incompatible change to libnotmuch API. After reading RELEASING file, I found that this change is probably not what Carl wants to merge (and I understand that) so I'd like to get some feedback on my suggestion in that patch. The subsequent patches are quite straightforward and the comments there should describe what these patches do. These patches are also located at git://rtime.felk.cvut.cz/notmuch.git and tagged by mailstore-abstraction-v4-part1. This is the overall diffstat: NEWS | 3 + emacs/notmuch-show.el | 11 +- lib/Makefile.local | 2 + lib/database-private.h | 1 + lib/database.cc | 29 +- lib/index.cc | 8 +- notmuch-new.c => lib/mailstore-files.c | 418 +++++---------------- lib/mailstore-private.h | 59 +++ lib/mailstore.c | 80 ++++ lib/message-file.c | 8 +- lib/message.cc | 46 ++- lib/notmuch-private.h | 6 +- lib/notmuch.h | 98 +++++- lib/sha1.c | 6 +- notmuch-client.h | 12 +- notmuch-config.c | 34 ++ notmuch-count.c | 3 +- notmuch-dump.c | 3 +- notmuch-new.c | 658 +++----------------------------- notmuch-reply.c | 13 +- notmuch-restore.c | 3 +- notmuch-search-tags.c | 3 +- notmuch-search.c | 3 +- notmuch-show.c | 82 ++++- notmuch-tag.c | 3 +- notmuch.c | 4 + show-message.c | 14 +- 27 files changed, 621 insertions(+), 989 deletions(-) copy notmuch-new.c => lib/mailstore-files.c (61%) create mode 100644 lib/mailstore-private.h create mode 100644 lib/mailstore.c