Description of problem: bbdb fails with "invalid function (\' (let*..." in emacs-24 on fedora 17 whenever you look at a new message. (I'm using mh-e.) This error prevents bbbd from updating records from new messages. Version-Release number of selected component (if applicable): emacs-bbdb-2.35-6.fc17.noarch with emacs-24.0.95-1.fc17.x86_64 How reproducible: Every time. Steps to Reproduce: 1. show mail in emacs (perhaps using mh-e) 2. scroll to new message 3. see error in emacs *Messasges* Actual results: The following backtrace appears when one does (setq debug-on-error t): Debugger entered--Lisp error: (invalid-function (\` (let* ((attrs (file-attributes ((\, message)))) (status-time (nth 6 attrs)) (status-time-2 (cdr status-time)) (inode (nth 10 attrs))) (logxor (if (integerp inode) inode (car inode)) (car status-time) (if (integerp status-time-2) status-time-2 (car status-time-2)))))) ((\` (let* ((attrs (file-attributes ((\, message)))) (status-time (nth 6 attrs)) (status-time-2 (cdr status-time)) (inode (nth 10 attrs))) (logxor (if (integerp inode) inode (car inode)) (car status-time) (if (integerp status-time-2) status-time-2 (car status-time-2)))))) (lambda (message) "Return a (numeric) key for MESSAGE" ((\` (let* ((attrs (file-attributes (...))) (status-time (nth 6 attrs)) (status-time-2 (cdr status-time)) (inode (nth 10 attrs))) (logxor (if (integerp inode) inode (car inode)) (car status-time) (if (integerp status-time-2) status-time-2 (car status-time-2)))))))(buffer-file-name) (bbdb/mh-cache-key buffer-file-name) (let ((msg (bbdb/mh-cache-key buffer-file-name)) records record) (if (eq msg 0) (setq msg nil)) (setq records (bbdb-message-cache-lookup msg)) (if records (car records) (let ((from (bbdb/mh-get-field "^From[ ]*:"))) (if (or (string= "" from) (string-match (bbdb-user-mail-names) (mail-strip-quoted-names from))) (progn (setq from (bbdb/mh-get-field "^To[ ]*:")) (if (or (string= "" from) (string-match ... ...)) (setq from nil)))) (if from (setq record (bbdb-annotate-message-sender from t (or (bbdb-invoke-hook-for-value bbdb/mail-auto-create-p) offer-to-create) (or offer-to-create (bbdb-invoke-hook-for-value bbdb/mail-auto-create-p))))) (if (and msg record) (bbdb-encache-message msg (list record))) record))) (if bbdb-use-pop-up (bbdb/mh-pop-up-bbdb-buffer offer-to-create) (let ((msg (bbdb/mh-cache-key buffer-file-name)) records record) (if (eq msg 0) (setq msg nil)) (setq records (bbdb-message-cache-lookup msg)) (if records (car records) (let ((from (bbdb/mh-get-field "^From[ ]*:"))) (if (or (string= "" from) (string-match (bbdb-user-mail-names) (mail-strip-quoted-names from))) (progn (setq from (bbdb/mh-get-field "^To[ ]*:")) (if (or ... ...) (setq from nil)))) (if from (setq record (bbdb-annotate-message-sender from t (or ... offer-to-create) (or offer-to-create ...)))) (if (and msg record) (bbdb-encache-message msg (list record))) record)))) (save-excursion (and mh-show-buffer (set-buffer mh-show-buffer)) (if bbdb-use-pop-up (bbdb/mh-pop-up-bbdb-buffer offer-to-create) (let ((msg (bbdb/mh-cache-key buffer-file-name)) records record) (if (eq msg 0) (setq msg nil)) (setq records (bbdb-message-cache-lookup msg)) (if records (car records) (let ((from (bbdb/mh-get-field "^From[ ]*:"))) (if (or (string= "" from) (string-match ... ...)) (progn (setq from ...) (if ... ...))) (if from (setq record (bbdb-annotate-message-sender from t ... ...))) (if (and msg record) (bbdb-encache-message msg (list record))) record))))) bbdb/mh-update-record() run-hooks(mh-show-hook) mh-show-msg(nil) mh-show(nil) emh-show() call-interactively(emh-show nil nil) Expected results: No error. Additional info: Google reports a fix from NetBSD: http://gnats.netbsd.org/44963 This patch seems to suppress the error in Fedora 17: RCS file: misc/bbdb/patches/patch-ab diff -N misc/bbdb/patches/patch-ab --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ misc/bbdb/patches/patch-ab 13 May 2011 13:43:06 -0000 @@ -0,0 +1,19 @@ +$NetBSD$ + +To avoid being flagged by emacs-24.0.50 + bbdb-mhe.el:56:41:Error: Invalid function: + bbdb-mhe.el:38:30:Warning: `(\` (let* ((attrs (file-attributes ((\, + ..... (ommitted) + status-time-2)))))' is a malformed function + +--- work/bbdb-2.34/lisp/bbdb-mhe.el.orig 2011-04-02 20:42:13.000000000 +0900 ++++ lisp/bbdb-mhe.el 2011-04-02 20:42:28.000000000 +0900 +@@ -37,7 +37,7 @@ + + (defmacro bbdb/mh-cache-key (message) + "Return a (numeric) key for MESSAGE" +- (`(let* ((attrs (file-attributes (, message))) ++ ( ` (let* ((attrs (file-attributes (, message))) + (status-time (nth 6 attrs)) + (status-time-2 (cdr status-time)) +
emacs-bbdb-2.35-7.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/emacs-bbdb-2.35-7.fc17
Thanks for the report John. I'll be orphaning the emacs-bbdb package in the near future as I no longer use it and so can't routinely test it. If you're a Fedora packager, please consider becoming a co-maintainer for the package. If you're not, you might consider becoming a packager: http://fedoraproject.org/wiki/Join_the_package_collection_maintainers
Package emacs-bbdb-2.35-7.fc17: * should fix your issue, * was pushed to the Fedora 17 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing emacs-bbdb-2.35-7.fc17' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2012-8955/emacs-bbdb-2.35-7.fc17 then log in and leave karma (feedback).
emacs-bbdb-2.35-7.fc17 has been pushed to the Fedora 17 stable repository. If problems still persist, please make note of it in this bug report.