Christoph Groth <c...@falma.de> writes: > Anniversaries in BBDB can be now also specified in the format MM-DD > next to YYYY-MM-DD. > --- > doc/org.texi | 11 ++++++----- > lisp/org-bbdb.el | 27 ++++++++++++++++++--------- > 2 files changed, 24 insertions(+), 14 deletions(-) > > diff --git a/doc/org.texi b/doc/org.texi > index b406d29..bfcef06 100644 > --- a/doc/org.texi > +++ b/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 > diff --git a/lisp/org-bbdb.el b/lisp/org-bbdb.el > index 4155f58..c04b7ff 100644 > --- a/lisp/org-bbdb.el > +++ b/lisp/org-bbdb.el > @@ -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))
Thanks for adding this feature. Carsten, could you please check this in? The ChangeLog should mention that any customized "org-bbdb-anniversary-format-alist" has to be updated, otherwise there will be an "Bad sexp at line 637 in /home/tb/org/diary.org: (org-bbdb-anniversaries)" error with the new format. Thomas _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode