File: nndiary.el.html

Contents management by FCM version 0.1.

Description:
===========

nndiary is a mail back end designed to handle mails as diary event reminders. It is now fully documented in the Gnus manual.

Bugs / Todo:
===========

* Respooling doesn't work because contrary to the request-scan function,
  Gnus won't allow me to override the split methods when calling the
  respooling back end functions.
* There's a bug in the time zone mechanism with variable TZ locations.
* We could allow a keyword like ask in X-Diary-* headers, that would mean
  "ask for value upon reception of the message".
* We could add an optional header X-Diary-Reminders to specify a special
  reminders value for this message. Suggested by Jody Klymak.
* We should check messages validity in other circumstances than just
  moving an article from somewhere else (request-accept). For instance,
  when editing / saving and so on.


Remarks:
=======

* nnoo. NNDiary is very similar to nnml. This makes the idea of using nnoo
  (to derive nndiary from nnml) natural. However, my experience with nnoo
  is that for reasonably complex back ends like this one, nnoo is a burden
  rather than an help. It's tricky to use, not everything can be inherited,
  what can be inherited and when is not very clear, and you've got to be
  very careful because a little mistake can fuck up your other back ends,
  especially because their variables will be use instead of your real ones.
  Finally, I found it easier to just clone the needed parts of nnml, and
  tracking nnml updates is not a big deal.

  IMHO, nnoo is actually badly designed. A much simpler, and yet more
  powerful one would be to make *real* functions and variables for a new
  back end based on another. Lisp is a reflexive language so that's a very
  easy thing to do: inspect the function's form, replace occurrences of
  <nnfrom> (even in strings) with <nnto>, and you're done.

* nndiary-get-new-mail, nndiary-mail-source and nndiary-split-methods:
  NNDiary has some experimental parts, in the sense Gnus normally uses only
  one mail back ends for mail retrieval and splitting. This back end is
  also an attempt to make it behave differently. For Gnus developers: as
  you can see if you snarf into the code, that was not a very difficult
  thing to do. Something should be done about the respooling breakage
  though.

Defined variables (16)

nndiary-active-fileActive file for the nndiary back end.
nndiary-check-directory-twiceIf t, check directories twice to avoid NFS failures.
nndiary-directorySpool directory for the nndiary back end.
nndiary-get-new-mailWhether nndiary gets new mail and split it.
nndiary-inhibit-expiryIf non-nil, inhibit expiry.
nndiary-mail-sourcesNNDiary specific mail sources.
nndiary-newsgroups-fileNewsgroups description file for the nndiary back end.
nndiary-nov-is-evilIf non-nil, Gnus will never use nov databases for nndiary groups.
nndiary-prepare-save-mail-hookHook run narrowed to an article before saving.
nndiary-remindersDifferent times when you want to be reminded of your appointments.
nndiary-request-accept-article-functionsHook run before accepting an article.
nndiary-request-create-group-functionsHook run after ‘nndiary-request-create-group’ is executed.
nndiary-request-update-info-functionsHook run after ‘nndiary-request-update-info’ is executed.
nndiary-split-methodsNNDiary specific split methods.
nndiary-versionCurrent Diary back end version.
nndiary-week-starts-on-mondayWhether a week starts on monday (otherwise, sunday).

Defined functions (55)

nndiary-active-number(GROUP)
nndiary-add-nov(GROUP ARTICLE HEADERS)
nndiary-article-to-file(ARTICLE)
nndiary-close-group(GROUP &optional SERVER)
nndiary-close-server(&optional SERVER DEFS)
nndiary-compute-reminders(DATE)
nndiary-deletable-article-p(GROUP ARTICLE)
nndiary-expired-article-p(FILE)
nndiary-find-group-number(ID)
nndiary-find-id(GROUP ID)
nndiary-flatten(SPEC MIN &optional MAX)
nndiary-generate-active-info(DIR)
nndiary-generate-nov-databases(&optional SERVER)
nndiary-generate-nov-databases-1(DIR &optional SEEN NO-ACTIVE)
nndiary-generate-nov-file(DIR FILES)
nndiary-last-occurence(SCHED)
nndiary-last-occurrence(SCHED)
nndiary-max(SPEC)
nndiary-next-occurence(SCHED NOW)
nndiary-next-occurrence(SCHED NOW)
nndiary-nov-delete-article(GROUP ARTICLE)
nndiary-open-nov(GROUP)
nndiary-open-server(SERVER &optional DEFS)
nndiary-parse-head(CHARS &optional NUMBER)
nndiary-parse-schedule(HEAD MIN-OR-VALUES MAX)
nndiary-parse-schedule-value(STR MIN-OR-VALUES MAX)
nndiary-possibly-change-directory(GROUP &optional SERVER)
nndiary-possibly-create-directory(GROUP)
nndiary-renew-article-p(FILE TIMESTAMP)
nndiary-request-accept-article(GROUP &optional SERVER LAST)
nndiary-request-article(ID &optional GROUP SERVER BUFFER)
nndiary-request-create-group(GROUP &optional SERVER ARGS)
nndiary-request-delete-group(GROUP &optional FORCE SERVER)
nndiary-request-expire-articles(ARTICLES GROUP &optional SERVER FORCE)
nndiary-request-group(GROUP &optional SERVER DONT-CHECK INFO)
nndiary-request-list(&optional SERVER)
nndiary-request-list-newsgroups(&optional SERVER)
nndiary-request-move-article(ARTICLE GROUP SERVER ACCEPT-FORM &optional LAST MOVE-IS-INTERNAL)
nndiary-request-newgroups(DATE &optional SERVER)
nndiary-request-post(&optional SERVER)
nndiary-request-regenerate(SERVER)
nndiary-request-rename-group(GROUP NEW-NAME &optional SERVER)
nndiary-request-replace-article(ARTICLE GROUP BUFFER)
nndiary-request-scan(&optional GROUP SERVER)
nndiary-request-update-info(GROUP INFO &optional SERVER)
nndiary-retrieve-headers(SEQUENCE &optional GROUP SERVER FETCH-OLD)
nndiary-retrieve-headers-with-nov(ARTICLES &optional FETCH-OLD)
nndiary-save-mail(GROUP-ART)
nndiary-server-opened(&optional SERVER)
nndiary-set-status(ARTICLE NAME VALUE &optional GROUP SERVER)
nndiary-status-message(&optional SERVER)
nndiary-string-to-number(STR MIN &optional MAX)
nndiary-unflatten(SPEC)
nndiary-update-file-alist(&optional FORCE)
nndiary-version()

Defined faces (0)