File: nnmairix.el.html
This is a back end for using the mairix search engine with
Gnus. Mairix is a tool for searching words in locally stored
mail. Mairix is very fast which allows using it efficiently for
"smart folders", e.g. folders which are associated with search
queries. Of course, you can also use this back end just for
calling mairix with some search query.
Mairix is written by Richard Curnow. More information can be found at http://www.rpcurnow.force9.co.uk/mairix/
Commentary on the code: nnmairix sits between Gnus and the "real" back end which handles the mail (currently nnml, nnimap and nnmaildir were tested). I know this is all a bit hacky, but so far it works for me. This is the first back end I've written for Gnus, so I'd appreciate any comments, suggestions, bug reports (and, of course, patches) for improving nnmairix.
nnmairix does not use an active file, since I wanted to contain the back end "inside Gnus" as much as possible without the need of an external file. It stores the query/folder information in the group parameters instead. This also implies that once you kill a mairix group, it's gone for good. I don't think that this is really problematic, since I don't see the need in unsubscribing and re-subscribing search groups
Every mairix server is "responsible" for one mairix installation, i.e. you can have several mairix servers for different mairix configurations. Not that I think anyone will actually do this, but I thought it would be a "nice to have feature"...
KNOWN BUGS:
* Mairix does only support us-ascii characters.
TODO/MISSING FEATURES:
* Support of more back ends (nnmh, nnfolder, nnmbox...)?
* Maybe use an active file instead of group parameters?
* Maybe use "-a" when updating groups which are not newly created?
Defined variables (27)
nnmairix-allowfast-default | Whether fast entering should be the default for nnmairix groups. |
nnmairix-backend | Back end where mairix stores its searches. |
nnmairix-backend-server | Name of the server where mairix stores its searches. |
nnmairix-current-server | Current server. |
nnmairix-customize-query-buffer | Name of the buffer for customizing Mairix queries. |
nnmairix-default-group | Default search group. |
nnmairix-delete-and-create-on-change | Controls on which back ends groups should be deleted and re-created. |
nnmairix-group-prefix | Prefix for mairix search groups on back end server. |
nnmairix-group-regexp | Regexp for mairix groups on back end. |
nnmairix-hidden-folders | Set this to t if the back end server uses hidden directories for |
nnmairix-interactive-query-parameters | Things that should be editable during interactive query generation. |
nnmairix-last-server | Last chosen server. |
nnmairix-mairix-command | Command to call mairix for this nnmairix server. |
nnmairix-mairix-output-buffer | Buffer used for mairix output. |
nnmairix-mairix-search-options | Options when calling mairix for searching. |
nnmairix-mairix-synchronous-update | Set this to t if you want Emacs to wait for mairix updating the database. |
nnmairix-mairix-update-options | Options when calling mairix for updating the database. |
nnmairix-marks-cache | Cache for marks which should be set upon closing current group. |
nnmairix-only-use-registry | Use only the registry for determining original group(s). |
nnmairix-propagate-marks-to-nnmairix-groups | Flag if marks from original articles should be seen in nnmairix groups. |
nnmairix-propagate-marks-upon-close | Flag if marks should be propagated upon closing a group. |
nnmairix-rename-files-for-nnml | Rename nnml mail files so that they are consecutively numbered. |
nnmairix-valid-backends | Back ends supported by nnmairix. |
nnmairix-version-output | Version string of mairix binary. |
nnmairix-widget-fields-list | Fields that should be editable during interactive query customization. |
nnmairix-widget-other | Other editable mairix commands when using customization widgets. |
nnmairix-widget-select-window-function | Function for selecting the window for customizing the mairix query. |