File: nnmaildir.el.html

Maildir format is documented at <URL:https://cr.yp.to/proto/maildir.html>.

nnmaildir also stores extra information in the .nnmaildir/ directory within a maildir.

Some goals of nnmaildir:
* Everything Just Works, and correctly. E.g., NOV data is automatically
  regenerated when stale; no need for manually running
  *-generate-nov-databases.
* Perfect reliability: [C-g] will never corrupt its data in memory, and
  SIGKILL will never corrupt its data in the filesystem.
* Allow concurrent operation as much as possible. If files change out
  from under us, adapt to the changes or degrade gracefully.
* We use the filesystem as a database, so that, e.g., it's easy to
  manipulate marks from outside Gnus.
* All information about a group is stored in the maildir, for easy backup,
  copying, restoring, etc.

Todo:
* When moving an article for expiry, copy all the marks except 'expire
  from the original article.
* Add a hook for when moving messages from new/ to cur/, to support
  nnmail's duplicate detection.
* Improve generated Xrefs, so crossposts are detectable.
* Improve code readability.

Defined variables (4)

nnmaildir--cur-serverThe current server.
nnmaildir--serversAlist mapping server name strings to servers.
nnmaildir-article-file-nameThe filename of the most recently requested article.
nnmaildir-flag-mark-mappingAlist mapping Maildir filename flags to Gnus marks.

Defined functions (153)

copy-nnmaildir--art(ARG)
copy-nnmaildir--grp(ARG)
copy-nnmaildir--srv(ARG)
make-nnmaildir--art
make-nnmaildir--art--cmacro
make-nnmaildir--grp
make-nnmaildir--grp--cmacro
make-nnmaildir--srv
make-nnmaildir--srv--cmacro
nnmaildir--add-flag(FLAG SUFFIX)
nnmaildir--art-msgid(CL-X)
nnmaildir--art-msgid--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--art-nov(CL-X)
nnmaildir--art-nov--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--art-num(CL-X)
nnmaildir--art-num--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--art-p(CL-X)
nnmaildir--art-p--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--art-prefix(CL-X)
nnmaildir--art-prefix--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--art-suffix(CL-X)
nnmaildir--art-suffix--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--article-set-flags(ARTICLE NEW-SUFFIX CURDIR)
nnmaildir--cache-nov(GROUP ARTICLE NOV)
nnmaildir--condcase(ERRSYM BODY &rest HANDLER)
nnmaildir--cur(DIR)
nnmaildir--delete-dir-files(DIR LS)
nnmaildir--eexist-p(ERR)
nnmaildir--emlink-p(ERR)
nnmaildir--enoent-p(ERR)
nnmaildir--ensure-suffix(FILENAME)
nnmaildir--expired-article(GROUP ARTICLE)
nnmaildir--flag-to-mark(FLAG)
nnmaildir--flist-art(LIST FILE)
nnmaildir--group-ls(SERVER PGNAME)
nnmaildir--group-maxnum(SERVER GROUP)
nnmaildir--grp-add-art(SERVER GROUP ARTICLE)
nnmaildir--grp-cache(CL-X)
nnmaildir--grp-cache--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--grp-count(CL-X)
nnmaildir--grp-count--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--grp-cur(CL-X)
nnmaildir--grp-cur--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--grp-flist(CL-X)
nnmaildir--grp-flist--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--grp-index(CL-X)
nnmaildir--grp-index--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--grp-min(CL-X)
nnmaildir--grp-min--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--grp-mlist(CL-X)
nnmaildir--grp-mlist--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--grp-mmth(CL-X)
nnmaildir--grp-mmth--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--grp-name(CL-X)
nnmaildir--grp-name--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--grp-new(CL-X)
nnmaildir--grp-new--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--grp-nlist(CL-X)
nnmaildir--grp-nlist--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--grp-p(CL-X)
nnmaildir--grp-p--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--mark-to-flag(MARK)
nnmaildir--marks-dir(DIR)
nnmaildir--mkdir(DIR)
nnmaildir--mkfile(FILE)
nnmaildir--mlist-art(LIST MSGID)
nnmaildir--new(DIR)
nnmaildir--new-number(NNDIR)
nnmaildir--nlist-art(GROUP NUM)
nnmaildir--nlist-iterate(NLIST RANGES FUNC)
nnmaildir--nndir(DIR)
nnmaildir--nov-dir(DIR)
nnmaildir--nov-get-beg(NOV)
nnmaildir--nov-get-end(NOV)
nnmaildir--nov-get-extra(NOV)
nnmaildir--nov-get-mid(NOV)
nnmaildir--nov-get-mtime(NOV)
nnmaildir--nov-new(BEG MID END MTIME EXTRA)
nnmaildir--nov-set-beg(NOV VALUE)
nnmaildir--nov-set-end(NOV VALUE)
nnmaildir--nov-set-extra(NOV VALUE)
nnmaildir--nov-set-mid(NOV VALUE)
nnmaildir--nov-set-mtime(NOV VALUE)
nnmaildir--num-dir(DIR)
nnmaildir--param(PGNAME PARAM)
nnmaildir--parse-filename(FILE)
nnmaildir--pgname(SERVER GNAME)
nnmaildir--prepare(SERVER GROUP)
nnmaildir--remove-flag(FLAG SUFFIX)
nnmaildir--scan(GNAME SCAN-MSGS GROUPS METHOD SRV-DIR SRV-LS)
nnmaildir--sort-files(A B)
nnmaildir--srv-address(CL-X)
nnmaildir--srv-address--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srv-curgrp(CL-X)
nnmaildir--srv-curgrp--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srv-dir(CL-X)
nnmaildir--srv-dir--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srv-error(CL-X)
nnmaildir--srv-error--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srv-gnm(CL-X)
nnmaildir--srv-gnm--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srv-groups(CL-X)
nnmaildir--srv-groups--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srv-ls(CL-X)
nnmaildir--srv-ls--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srv-method(CL-X)
nnmaildir--srv-method--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srv-mtime(CL-X)
nnmaildir--srv-mtime--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srv-p(CL-X)
nnmaildir--srv-p--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srv-prefix(CL-X)
nnmaildir--srv-prefix--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srv-target-prefix(CL-X)
nnmaildir--srv-target-prefix--cmacro(CL-WHOLE-ARG CL-X)
nnmaildir--srvgrp-dir(SRV-DIR GNAME)
nnmaildir--subdir(DIR SUBDIR)
nnmaildir--tab-to-space(STRING)
nnmaildir--tmp(DIR)
nnmaildir--unlink(FILE-ARG)
nnmaildir--update-nov(SERVER GROUP ARTICLE)
nnmaildir--with-move-buffer(&rest BODY)
nnmaildir--with-nntp-buffer(&rest BODY)
nnmaildir--with-nov-buffer(&rest BODY)
nnmaildir--with-work-buffer(&rest BODY)
nnmaildir-active-number(GNAME)
nnmaildir-article-number-to-base-name(NUMBER GROUP-NAME SERVER-ADDRESS-STRING)
nnmaildir-article-number-to-file-name(NUMBER GROUP-NAME SERVER-ADDRESS-STRING)
nnmaildir-base-name-to-article-number(BASE-NAME GROUP-NAME SERVER-ADDRESS-STRING)
nnmaildir-close-group(GNAME &optional SERVER)
nnmaildir-close-server(&optional SERVER DEFS)
nnmaildir-open-server(SERVER-STRING &optional DEFS)
nnmaildir-request-accept-article(GNAME &optional SERVER LAST)
nnmaildir-request-article(NUM-MSGID &optional GNAME SERVER TO-BUFFER)
nnmaildir-request-create-group(GNAME &optional SERVER ARGS)
nnmaildir-request-delete-group(GNAME FORCE &optional SERVER)
nnmaildir-request-expire-articles(RANGES &optional GNAME SERVER FORCE)
nnmaildir-request-group(GNAME &optional SERVER FAST INFO)
nnmaildir-request-list(&optional SERVER)
nnmaildir-request-move-article(ARTICLE GNAME SERVER ACCEPT-FORM &optional LAST MOVE-IS-INTERNAL)
nnmaildir-request-newgroups(DATE &optional SERVER)
nnmaildir-request-post(&optional SERVER)
nnmaildir-request-rename-group(GNAME NEW-NAME &optional SERVER)
nnmaildir-request-replace-article(NUMBER GNAME BUFFER)
nnmaildir-request-scan(&optional SCAN-GROUP SERVER)
nnmaildir-request-set-mark(GNAME ACTIONS &optional SERVER)
nnmaildir-request-type(GROUP &optional ARTICLE)
nnmaildir-request-update-info(GNAME INFO &optional SERVER)
nnmaildir-retrieve-groups(GROUPS &optional SERVER)
nnmaildir-retrieve-headers(ARTICLES &optional GNAME SERVER FETCH-OLD)
nnmaildir-save-mail(GROUP-ART)
nnmaildir-server-opened(&optional SERVER)
nnmaildir-status-message(&optional SERVER)

Defined faces (0)