[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-25 43d2e55 1/3: Add BBDB 3 support for EUDC export
From: |
Thomas Fitzsimmons |
Subject: |
[Emacs-diffs] emacs-25 43d2e55 1/3: Add BBDB 3 support for EUDC export |
Date: |
Mon, 23 Nov 2015 02:37:57 +0000 |
branch: emacs-25
commit 43d2e55fc17336b33a1581adf60179ff07ad580c
Author: Thomas Fitzsimmons <address@hidden>
Commit: Thomas Fitzsimmons <address@hidden>
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)
---
lisp/net/eudc-export.el | 19 +++++++++++++------
lisp/net/eudc.el | 12 ++++++++++++
lisp/net/eudcb-bbdb.el | 10 +---------
3 files changed, 26 insertions(+), 15 deletions(-)
diff --git a/lisp/net/eudc-export.el b/lisp/net/eudc-export.el
index c60911f..a65f555 100644
--- a/lisp/net/eudc-export.el
+++ b/lisp/net/eudc-export.el
@@ -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))))))
diff --git a/lisp/net/eudc.el b/lisp/net/eudc.el
index 7280d9d..25a26bd 100644
--- a/lisp/net/eudc.el
+++ b/lisp/net/eudc.el
@@ -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)))
diff --git a/lisp/net/eudcb-bbdb.el b/lisp/net/eudcb-bbdb.el
index 0545304..1972fc1 100644
--- a/lisp/net/eudcb-bbdb.el
+++ b/lisp/net/eudcb-bbdb.el
@@ -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))