This is the second part of mailstore abstraction patches. I do not want this to be merged yet, but there might be some people interested in testing this. This patch adds a mailstore, which bi-directionally synchronizes certain tags with maildir flags. I use it already four weeks and it works quite well. There are the following know bugs: 1) Viewing/storing of attachments of unread messages doesn't work. The reason is that when you view the message its unread tag is removed by elisp code. This leads to rename of the file, but Emacs still uses the original name to access message with the attachment. Workaround: close the message and open it again. I'm working on the solution - if the mailstore cannot open the message with the name passed, it tries different names with different maildir flags. 2) If there several messages with the same ID (e.g. one in sent folder and one sent back by mailing list), the flags are synchronized to only one of these files. I plan to do this: - When a tag is added/removed in notmuch, flags of all files corresponding to the message will be updated. - If we detect (during notmuch new) that flags of one file were changed by somebody else, we also change the flags for the other files corresponding to the message. - If we detect (during notmuch new) that flags of two or more files were changed by somebody else, we have to solve the conflict somehow, but I didn't invent how, yet. The full series is available at http://rtime.felk.cvut.cz/gitweb/notmuch.git/shortlog/refs/heads/mailstore-abstraction-v4 and can be pulled by git pull git://rtime.felk.cvut.cz/notmuch.git mailstore-abstraction-v4 Besides the patch sent here, there are also tests for the maildir mailstore and a not finished implementation of the solution for 1) above. --Michal