Commit 43d2e55f authored by Thomas Fitzsimmons's avatar Thomas Fitzsimmons
Browse files

Add BBDB 3 support for EUDC export

* eudc.el: Add bbdb-version defvar.
(eudc--using-bbdb-3-or-newer-p): New function.
* eudc-export.el (eudc-create-bbdb-record): Add support for
bbdb-create-internal argument list changes introduced in BBDB 3.
* eudcb-bbdb.el: Remove bbdb-version defvar.
(eudc-bbdb-field): Call eudc--using-bbdb-3-or-newer-p.
(Bug#21971)
parent 40ed767b
......@@ -86,12 +86,19 @@ If SILENT is non-nil then the created BBDB record is not displayed."
(cons (car mapping) value))))
conversion-alist)))
(setq bbdb-notes (delq nil bbdb-notes))
(setq bbdb-record (bbdb-create-internal bbdb-name
bbdb-company
bbdb-net
bbdb-address
bbdb-phones
bbdb-notes))
(setq bbdb-record (bbdb-create-internal
bbdb-name
,@(when (eudc--using-bbdb-3-or-newer-p)
'(nil
nil))
bbdb-company
bbdb-net
,@(if (eudc--using-bbdb-3-or-newer-p)
'(bbdb-phones
bbdb-address)
'(bbdb-address
bbdb-phones))
bbdb-notes))
(or silent
(bbdb-display-records (list bbdb-record))))))
......
......@@ -107,6 +107,18 @@
;; attribute name
(defvar eudc-protocol-has-default-query-attributes nil)
(defvar bbdb-version)
(defun eudc--using-bbdb-3-or-newer-p ()
"Return non-nil if BBDB version is 3 or greater."
(or
;; MELPA versions of BBDB may have a bad package version, but
;; they're all version 3 or later.
(equal bbdb-version "@PACKAGE_VERSION@")
;; Development versions of BBDB can have the format "X.YZ devo".
;; Split the string just in case.
(version<= "3" (car (split-string bbdb-version)))))
(defun eudc-plist-member (plist prop)
"Return t if PROP has a value specified in PLIST."
(if (not (= 0 (% (length plist) 2)))
......
......@@ -42,21 +42,13 @@
(defvar eudc-bbdb-current-query nil)
(defvar eudc-bbdb-current-return-attributes nil)
(defvar bbdb-version)
(defun eudc-bbdb-field (field-symbol)
"Convert FIELD-SYMBOL so that it is recognized by the current BBDB version.
BBDB < 3 used `net'; BBDB >= 3 uses `mail'."
;; This just-in-time translation permits upgrading from BBDB 2 to
;; BBDB 3 without restarting Emacs.
(if (and (eq field-symbol 'net)
(or
;; MELPA versions of BBDB may have a bad package version,
;; but they're all version 3 or later.
(equal bbdb-version "@PACKAGE_VERSION@")
;; Development versions of BBDB can have the format "X.YZ
;; devo". Split the string just in case.
(version<= "3" (car (split-string bbdb-version)))))
(eudc--using-bbdb-3-or-newer-p))
'mail
field-symbol))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment