]> code.delx.au - gnu-emacs/blobdiff - lisp/org/org-bbdb.el
Update copyright year to 2015
[gnu-emacs] / lisp / org / org-bbdb.el
index a45a26f0fe843cb3a8d81e0cbbf1d4c08370cb98..a0711cc006b564e55c85e6b31ec43a3840a8e1dd 100644 (file)
@@ -1,6 +1,6 @@
 ;;; org-bbdb.el --- Support for links to BBDB entries from within Org-mode
 
-;; Copyright (C) 2004-2013 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2015 Free Software Foundation, Inc.
 
 ;; Authors: Carsten Dominik <carsten at orgmode dot org>
 ;;       Thomas Baumann <thomas dot baumann at ch dot tum dot de>
 (declare-function bbdb-search-name "ext:bbdb-com" (regexp &optional layout))
 (declare-function bbdb-search-organization "ext:bbdb-com" (regexp &optional layout))
 
-;; `bbdb-record-note' is part of BBDB v3.x
+;; `bbdb-record-note' was part of BBDB v3.x
 (declare-function bbdb-record-note "ext:bbdb" (record label))
+;; `bbdb-record-xfield' replaces it in recent BBDB v3.x+
+(declare-function bbdb-record-xfield "ext:bbdb" (record label))
 
 (declare-function calendar-leap-year-p "calendar" (year))
 (declare-function diary-ordinal-suffix "diary-lib" (n))
@@ -306,14 +308,17 @@ The hash table is created on first use.")
   "Create a hash with anniversaries extracted from BBDB, for fast access.
 The anniversaries are assumed to be stored `org-bbdb-anniversary-field'."
   (let ((old-bbdb (fboundp 'bbdb-record-getprop))
+       (record-func (if (fboundp 'bbdb-record-xfield)
+                        'bbdb-record-xfield
+                      'bbdb-record-note))
        split tmp annivs)
     (clrhash org-bbdb-anniv-hash)
     (dolist (rec (bbdb-records))
       (when (setq annivs (if old-bbdb
                             (bbdb-record-getprop
                              rec org-bbdb-anniversary-field)
-                          (bbdb-record-note
-                           rec org-bbdb-anniversary-field)))
+                          (funcall record-func
+                                   rec org-bbdb-anniversary-field)))
         (setq annivs (if old-bbdb
                         (bbdb-split annivs "\n")
                       ;; parameter order is reversed in new bbdb
@@ -395,8 +400,11 @@ This is used by Org to re-create the anniversary hash table."
 (defun org-bbdb-complete-link ()
   "Read a bbdb link with name completion."
   (require 'bbdb-com)
-  (concat "bbdb:"
-         (bbdb-record-name (car (bbdb-completing-read-record "Name: ")))))
+  (let ((rec (bbdb-completing-read-record "Name: ")))
+    (concat "bbdb:"
+           (bbdb-record-name (if (listp rec)
+                                 (car rec)
+                               rec)))))
 
 (defun org-bbdb-anniv-export-ical ()
   "Extract anniversaries from BBDB and convert them to icalendar format."