From fd3a9a6b378e556c3b09b217920d95cb129a13d6 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sat, 4 May 2013 16:55:57 -0700 Subject: [PATCH] * lisp/calendar/diary-lib.el (diary-from-outlook-function): New variable. (diary-from-outlook): Respect diary-from-outlook-function. * doc/emacs/calendar.texi (Importing Diary): Mention diary-from-outlook-function. * etc/NEWS: Mention this. --- doc/emacs/ChangeLog | 4 ++++ doc/emacs/calendar.texi | 3 ++- etc/NEWS | 6 ++++++ lisp/ChangeLog | 5 +++++ lisp/calendar/diary-lib.el | 17 +++++++++++++---- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 90e31b9923e..2c47bdd4fad 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog @@ -1,3 +1,7 @@ +2013-05-04 Glenn Morris + + * calendar.texi (Importing Diary): Mention diary-from-outlook-function. + 2013-03-17 Paul Eggert doc: convert some TeX accents to UTF-8 diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index 52b966b76e1..075d753ae7a 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi @@ -1542,7 +1542,8 @@ variety of other formats. messages. While viewing such a message in Rmail or Gnus, do @kbd{M-x diary-from-outlook} to import the entry. You can make this command recognize additional appointment message formats by customizing the -variable @code{diary-outlook-formats}. +variable @code{diary-outlook-formats}. Other mail clients can set +@code{diary-from-outlook-function} to an appropriate value. @c FIXME the name of the RFC is hardly very relevant. @cindex iCalendar support diff --git a/etc/NEWS b/etc/NEWS index 0a8cf2c0325..4669021c472 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -146,6 +146,12 @@ The default separator is changed to allow surrounding spaces around the comma. *** Battery information via the BSD `apm' utility is now supported. +** Calendar and Diary + ++++ +*** New variable `diary-from-outlook-function' for used by the command +`diary-from-outlook'. + ** cl-lib *** New macro cl-tagbody. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 88bc79ad707..8c0414f7cff 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-05-04 Glenn Morris + + * calendar/diary-lib.el (diary-from-outlook-function): New variable. + (diary-from-outlook): Respect diary-from-outlook-function. + 2013-05-04 Stefan Monnier * simple.el (read-expression-map): Use completion-at-point (bug#14255). diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el index f4aa26a0864..2cc381122b7 100644 --- a/lisp/calendar/diary-lib.el +++ b/lisp/calendar/diary-lib.el @@ -2611,14 +2611,23 @@ user is asked to confirm its addition." (diary-from-outlook-internal subject body) (message "Diary entry added")))))) +(defvar diary-from-outlook-function nil + "If non-nil, a function of one argument for `diary-from-outlook' to call. +If the current buffer contains an Outlook-style appointment message, +this function should extract it into a diary entry. If the argument is +nil, it should ask for confirmation before adding this entry to the diary. +For examples, see `diary-from-outlook-rmail' and `diary-from-outlook-gnus'.") + (defun diary-from-outlook (&optional noconfirm) "Maybe snarf diary entry from current Outlook-generated message. -Currently knows about Gnus and Rmail modes. Unless the optional -argument NOCONFIRM is non-nil (which is the case when this -function is called interactively), then if an entry is found the -user is asked to confirm its addition." +Uses `diary-from-outlook-function' if that is non-nil, else +`diary-from-outlook-rmail' for Rmail or `diary-from-outlook-gnus' for Gnus. +Unless the optional argument NOCONFIRM is non-nil (which is the +case when this function is called interactively), then if an +entry is found the user is asked to confirm its addition." (interactive "p") (let ((func (cond + (diary-from-outlook-function) ((eq major-mode 'rmail-mode) #'diary-from-outlook-rmail) ((memq major-mode '(gnus-summary-mode gnus-article-mode)) -- 2.39.2