From 6e66e4a769d3bd1fb9ed3b5d6c58114211e8583d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=BCdiger=20Sonderfeld?= Date: Sat, 30 Apr 2011 18:16:35 +0200 Subject: [PATCH] org-contacts: added custom org-contacts-birthday-format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: RĂ¼diger Sonderfeld Signed-off-by: Julien Danjou --- org-contacts.el | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/org-contacts.el b/org-contacts.el index e8c4807..06137d7 100644 --- a/org-contacts.el +++ b/org-contacts.el @@ -59,6 +59,16 @@ If set to nil, all your Org files will be used." :type 'string :group 'org-contacts) +(defcustom org-contacts-birthday-format "Birthday: %l (%Y)" + "Format of the anniversary agenda entry. The following replacements are available: + + %h - Heading name + %l - Link to the heading + %y - Number of year + %Y - Number of year (ordinal)" + :type 'string + :group 'org-contacts) + (defcustom org-contacts-last-read-mail-property "LAST_READ_MAIL" "Name of the property for contact last read email link storage." :type 'string @@ -263,6 +273,7 @@ Format is a string matching the following format specification: %Y - Number of year (ordinal)" (let ((calendar-date-style 'american) (entry "")) + (unless format (setq format org-contacts-birthday-format)) (loop for contact in (org-contacts-filter) for anniv = (let ((anniv (cdr (assoc-string (or field org-contacts-birthday-property) @@ -272,7 +283,7 @@ Format is a string matching the following format specification: (org-time-string-to-absolute anniv)))) ;; Use `diary-anniversary' to compute anniversary. if (and anniv (apply 'diary-anniversary anniv)) - collect (format-spec (or format "Birthday: %l (%Y)") + collect (format-spec format `((?l . ,(org-with-point-at (cadr contact) (org-store-link nil))) (?h . ,(car contact)) (?y . ,(- (calendar-extract-year date)