From: Michal Sojka Subject: [PATCH] Mailstore abstraction interface The goal of mailstore abstraction is to allow notmuch to store tags together with email messages. The abstract interface is needed because people want to use different ways of storing their emails. Currently, there exists implementation for two types of mailstore - plain files and maildir. It is expected that additional git-based mailstore will be developed later. This patch contains only the interface changes. No functionality is added, removed or changed. A new configuration group [mailstore] is defined. Currently, there is only one key called 'type' whose value determines the used mailstore. The default value of this option (files) is the plain-file mailstore currently implemented in notmuch. This patch changes libnotmuch API (and ABI). The functions notmuch_database_create() and notmuch_database_open() need additional parameter to identify the type of mailstore, which is used to access the messages. If we want to preserve the API, it would be necessary to encode the mailstore type into the 'path' parameter. For example the value # (or ://?) would mean use the mailstore of given 'type' located at 'path'. If we cannot find the type we would assuse the default mailstore. Signed-off-by: Michal Sojka