org-bbdb: allow anniversaries with unknown years
Anniversaries in BBDB can be now also specified in the format MM-DD next to YYYY-MM-DD.
This commit is contained in:
parent
4ec289e1c4
commit
2214788528
11
doc/org.texi
11
doc/org.texi
|
@ -7098,14 +7098,15 @@ following to one your your agenda files:
|
|||
|
||||
You can then go ahead and define anniversaries for a BBDB record. Basically,
|
||||
you need to press @kbd{C-o anniversary @key{RET}} with the cursor in a BBDB
|
||||
record and then add the date in the format @code{YYYY-MM-DD}, followed by a
|
||||
space and the class of the anniversary (@samp{birthday} or @samp{wedding}, or
|
||||
a format string). If you omit the class, it will default to @samp{birthday}.
|
||||
Here are a few examples, the header for the file @file{org-bbdb.el} contains
|
||||
more detailed information.
|
||||
record and then add the date in the format @code{YYYY-MM-DD} or @code{MM-DD},
|
||||
followed by a space and the class of the anniversary (@samp{birthday} or
|
||||
@samp{wedding}, or a format string). If you omit the class, it will default to
|
||||
@samp{birthday}. Here are a few examples, the header for the file
|
||||
@file{org-bbdb.el} contains more detailed information.
|
||||
|
||||
@example
|
||||
1973-06-22
|
||||
06-22
|
||||
1955-08-02 wedding
|
||||
2008-04-14 %s released version 6.01 of org-mode, %d years ago
|
||||
@end example
|
||||
|
|
|
@ -136,12 +136,12 @@
|
|||
'(("birthday" lambda
|
||||
(name years suffix)
|
||||
(concat "Birthday: [[bbdb:" name "][" name " ("
|
||||
(number-to-string years)
|
||||
(format "%s" years) ; handles numbers as well as strings
|
||||
suffix ")]]"))
|
||||
("wedding" lambda
|
||||
(name years suffix)
|
||||
(concat "[[bbdb:" name "][" name "'s "
|
||||
(number-to-string years)
|
||||
(format "%s" years)
|
||||
suffix " wedding anniversary]]")))
|
||||
"How different types of anniversaries should be formatted.
|
||||
An alist of elements (STRING . FORMAT) where STRING is the name of an
|
||||
|
@ -239,11 +239,16 @@ italicized, in all other cases it is left unchanged."
|
|||
|
||||
(defun org-bbdb-anniv-extract-date (time-str)
|
||||
"Convert YYYY-MM-DD to (month date year).
|
||||
Argument TIME-STR is the value retrieved from BBDB."
|
||||
(multiple-value-bind (y m d) (values-list (bbdb-split time-str "-"))
|
||||
(list (string-to-number m)
|
||||
(string-to-number d)
|
||||
(string-to-number y))))
|
||||
Argument TIME-STR is the value retrieved from BBDB. If YYYY- is omitted
|
||||
it will be considered unknown."
|
||||
(multiple-value-bind (a b c) (values-list (bbdb-split time-str "-"))
|
||||
(if (eq c nil)
|
||||
(list (string-to-number a)
|
||||
(string-to-number b)
|
||||
nil)
|
||||
(list (string-to-number b)
|
||||
(string-to-number c)
|
||||
(string-to-number a)))))
|
||||
|
||||
(defun org-bbdb-anniv-split (str)
|
||||
"Split multiple entries in the BBDB anniversary field.
|
||||
|
@ -326,8 +331,12 @@ This is used by Org to re-create the anniversary hash table."
|
|||
class org-bbdb-anniversary-format-alist t))
|
||||
class)) ; (as format string)
|
||||
(name (nth 1 rec))
|
||||
(years (- y (car rec)))
|
||||
(suffix (diary-ordinal-suffix years))
|
||||
(years (if (eq (car rec) nil)
|
||||
"unknown"
|
||||
(- y (car rec))))
|
||||
(suffix (if (eq (car rec) nil)
|
||||
""
|
||||
(diary-ordinal-suffix years)))
|
||||
(tmp (cond
|
||||
((functionp form)
|
||||
(funcall form name years suffix))
|
||||
|
|
Loading…
Reference in New Issue