From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Sergio Durigan Junior Newsgroups: gmane.emacs.bugs Subject: bug#19678: [PATCH] EUDC does not support BBDB 3.x Date: Sat, 24 Jan 2015 18:37:58 -0500 Message-ID: <87mw57hhrd.fsf@sergiodj.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1422142759 15752 80.91.229.3 (24 Jan 2015 23:39:19 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 24 Jan 2015 23:39:19 +0000 (UTC) To: 19678@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jan 25 00:39:16 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YFAIM-0007YK-Nu for geb-bug-gnu-emacs@m.gmane.org; Sun, 25 Jan 2015 00:39:14 +0100 Original-Received: from localhost ([::1]:36409 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFAIL-0002Z3-VJ for geb-bug-gnu-emacs@m.gmane.org; Sat, 24 Jan 2015 18:39:13 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47806) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFAIH-0002Yv-TA for bug-gnu-emacs@gnu.org; Sat, 24 Jan 2015 18:39:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YFAIB-0007fW-PD for bug-gnu-emacs@gnu.org; Sat, 24 Jan 2015 18:39:09 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:36761) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFAIB-0007fM-LH for bug-gnu-emacs@gnu.org; Sat, 24 Jan 2015 18:39:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1YFAIB-00050b-9l for bug-gnu-emacs@gnu.org; Sat, 24 Jan 2015 18:39:03 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Sergio Durigan Junior Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 24 Jan 2015 23:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 19678 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.142214269719188 (code B ref -1); Sat, 24 Jan 2015 23:39:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 24 Jan 2015 23:38:17 +0000 Original-Received: from localhost ([127.0.0.1]:55453 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YFAHQ-0004zP-Fl for submit@debbugs.gnu.org; Sat, 24 Jan 2015 18:38:17 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:45876) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YFAHN-0004z9-TN for submit@debbugs.gnu.org; Sat, 24 Jan 2015 18:38:14 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YFAHH-0007Zw-Bx for submit@debbugs.gnu.org; Sat, 24 Jan 2015 18:38:08 -0500 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:59863) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFAHH-0007Zs-92 for submit@debbugs.gnu.org; Sat, 24 Jan 2015 18:38:07 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47598) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFAHF-0002AS-Ff for bug-gnu-emacs@gnu.org; Sat, 24 Jan 2015 18:38:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YFAHC-0007Yj-8z for bug-gnu-emacs@gnu.org; Sat, 24 Jan 2015 18:38:05 -0500 Original-Received: from kwanyin.sergiodj.net ([176.31.208.32]:49312) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFAHC-0007Ya-2M for bug-gnu-emacs@gnu.org; Sat, 24 Jan 2015 18:38:02 -0500 X-URL: http://blog.sergiodj.net User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:98681 Archived-At: This bug was opened due to a request made at: As explained at: With the release of BBDB 3.x, EUDC needs adjustments to properly work with it. Actually, after some investigation, I noticed that the only adjustment was to replace the occurrences of 'net' by 'mail' in the code. The second link above contains a patch that does that, but Thomas Fitzsimmons correctly noted (in the first link) that the patch breaks compatibility with BBDB 2.x. The following patch is a first attempt to implement the support for both BBDB 2.x and 3.x. -- Sergio GPG key ID: 0x65FC5E36 Please send encrypted e-mail if possible http://sergiodj.net/ diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 15518a7..0ed1d67 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,15 @@ +2015-01-24 Sergio Durigan Junior + + Adapt EUDC to BBDB 3.x + * net/eudcb-bbdb.el (eudc-bbdb-get-major-version-number): New + function. + (eudc-bbdb-attributes-translation-alist): Use + eudc-bbdb-get-major-version-number to decide whether to use 'net' + (BBDB 2.x) or 'mail' (BBDB 3.x). + (eudc-bbdb-format-query): Likewise. + (eudc-bbdb-filter-non-matching-record): Likewise. + (eudc-bbdb-format-record-as-result): Likewise. + 2015-01-23 Thomas Fitzsimmons * net/ldap.el (ldap-search-internal): Mention binddn in invalid diff --git a/lisp/net/eudcb-bbdb.el b/lisp/net/eudcb-bbdb.el index 0400e5b..d400871 100644 --- a/lisp/net/eudcb-bbdb.el +++ b/lisp/net/eudcb-bbdb.el @@ -41,9 +41,18 @@ (defvar eudc-bbdb-current-query nil) (defvar eudc-bbdb-current-return-attributes nil) +(defun eudc-bbdb-get-major-version-number () + "Return the major version number of the BBDB version we are + currently using. Return nil if we could not load BBDB." + (if (require 'bbdb nil t) + (string-to-number (substring bbdb-version 0 1)) + 0)) + (defvar eudc-bbdb-attributes-translation-alist '((name . lastname) - (email . net) + (email . (if (= (eudc-bbdb-get-major-version-number) 3) + mail + net)) (phone . phones)) "Alist mapping EUDC attribute names to BBDB names.") @@ -63,10 +72,13 @@ firstname lastname)) (company (cdr (assq 'company query))) - (net (cdr (assq 'net query))) + (mail (cdr (assq (if (= (eudc-bbdb-get-major-version-number) 3) + 'mail + 'net) + query))) (notes (cdr (assq 'notes query))) (phone (cdr (assq 'phone query)))) - (list name company net notes phone))) + (list name company mail notes phone))) (defun eudc-bbdb-filter-non-matching-record (record) @@ -80,7 +92,10 @@ (case-fold-search t) bbdb-val) (or (and (memq attr '(firstname lastname aka company phones - addresses net)) + addresses + (if (= (eudc-bbdb-get-major-version-number) 3) + mail + net))) (progn (setq bbdb-val (eval (list (intern (concat "bbdb-record-" @@ -151,7 +166,11 @@ The record is filtered according to `eudc-bbdb-current-return-attributes'" (require 'bbdb) (let ((attrs (or eudc-bbdb-current-return-attributes - '(firstname lastname aka company phones addresses net notes))) + '(firstname lastname aka company phones addresses + (if (= (eudc-bbdb-get-major-version-number) 3) + mail + net) + notes))) attr eudc-rec val) @@ -163,7 +182,11 @@ The record is filtered according to `eudc-bbdb-current-return-attributes'" (setq val (eudc-bbdb-extract-phones record))) ((eq attr 'addresses) (setq val (eudc-bbdb-extract-addresses record))) - ((memq attr '(firstname lastname aka company net notes)) + ((memq attr '(firstname lastname aka company + (if (= (eudc-bbdb-get-major-version-number) 3) + mail + net) + notes)) (setq val (eval (list (intern (concat "bbdb-record-"