bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#19678: [PATCH] EUDC does not support BBDB 3.x


From: Thomas Fitzsimmons
Subject: bug#19678: [PATCH] EUDC does not support BBDB 3.x
Date: Mon, 26 Jan 2015 17:21:22 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Sergio Durigan Junior <sergiodj@sergiodj.net> writes:

> On Sunday, January 25 2015, Thomas Fitzsimmons wrote:
>
>> Can you see if the attached patch works for you?  It works for me,
>> introduces minimal changes and allows for upgrading BBDB 2 to BBDB 3
>> without restarting Emacs.  The defvar change in your patch concerns me
>> because it will miss if the BBDB version changes after the variable is
>> first assigned.
>
> Almost there...  The patch doesn't work as-is because
> 'eudc-bbdb-current-return-attributes' is set to '(firstname lastname
> mail) for me when eudc-bbdb-format-record-as-result is called.  It means
> that, in the while loop, it will try to call eq/memq against 'mail, and
> it fails.

Hmm, I thought those get converted; in any case, I wasn't seeing that
problem.  Do you have any customizations of the relevant variables?  Do
you have my latest EUDC/LDAP changes from master tip?

Can we step back a bit and make sure we're doing the same tests?  BBDB
2.x is tricky because it is provided by the distro, in my case Fedora.
Let's focus on testing BBDB 3.x so that I can replicate the exact same
issue that you're seeing.

Can you revert our patch, then:

1) Checkout and build Emacs revision
   03a20dc9519616359bfa1b77fd4b31e1963c8bd4 from
   git://git.savannah.gnu.org/emacs.git

   This revision has a bunch of my EUDC/LDAP updates in it.

2) Download
   http://download.savannah.gnu.org/releases/bbdb/bbdb-3.1.2.tar.gz

3) Untar and build the ELPA package:
   export EMACS=<your-emacs-build-dir>/src/emacs
   ./configure && make elpa
   unset EMACS

4) In the emacs src directory:
   mkdir test-home

5) HOME=`pwd`/test-home ./emacs -Q

6) M-x package-install-file

   bbdb-3.1.2.tar (the one built in step 3)

7) M-x bbdb-create

   Name: Test User
   Network Address: test@gnu.org

8) C-x s

   to save .bbdb

9) M-: (eval-after-load "message"
        '(define-key message-mode-map (kbd "TAB") 'eudc-expand-inline))

10) M-: (setq debug-on-error 't)

11) C-x m

12) Tes[TAB]

    (no server, bbdb protocol)

Without my patch, I get:

Debugger entered--Lisp error: (void-function bbdb-record-net)
  (bbdb-record-net record)
  eval((bbdb-record-net record))

  eudc-bbdb-format-record-as-result(["Test" "User" nil nil nil nil nil
  ("test@gnu.org") ((creation-date . "2015-01-26 21:56:26 +0000")
  (timestamp . "2015-01-26 21:56:26 +0000")) ["Test User" "User, Test"
  nil ("test@gnu.org") nil #<marker at 64 in bbdb>]])
  
  mapcar(eudc-bbdb-format-record-as-result (["Test" "User" nil nil nil
  nil nil ("test@gnu.org") ((creation-date . "2015-01-26 21:56:26
  +0000") (timestamp . "2015-01-26 21:56:26 +0000")) ["Test User" "User,
  Test" nil ("test@gnu.org") nil #<marker at 64 in bbdb>]]))
  
  eudc-bbdb-query-internal(((firstname . "Tes")) (firstname lastname
  net))
  
  eudc-query(((firstname . "Tes")) (firstname lastname net))
  eudc-expand-inline()
  funcall-interactively(eudc-expand-inline)
  call-interactively(eudc-expand-inline nil nil)
  command-execute(eudc-expand-inline)

With my patch (0001-EUDC-Support-BBDB-3.patch), it works.  eudc-query
gets called with 'net, not 'mail.

If that works for you, can you try to replicate the other error you're
seeing when my patch is applied, in this same minimal environment, and
paste the testing steps and the backtrace you get?

Thanks,
Thomas





reply via email to

[Prev in Thread] Current Thread [Next in Thread]