GNU bug report logs - #59369
29.0.50; eudc-mailabbrev-query-internal fails with void-variable

Previous Next

Package: emacs;

Reported by: Brent Westbrook <bwestbr2 <at> go.olemiss.edu>

Date: Fri, 18 Nov 2022 19:55:02 UTC

Severity: normal

Found in version 29.0.50

Done: Thomas Fitzsimmons <fitzsim <at> fitzsim.org>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Brent Westbrook <bwestbr2 <at> go.olemiss.edu>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.50; eudc-mailabbrev-query-internal fails with void-variable
Date: Fri, 18 Nov 2022 12:16:43 -0500
I was not able to reproduce this with emacs -Q and loading my mu4e
config, but when I try to compose an email with mu4e-compose and press
tab to expand one particular email address ("someemail" used as a
placeholder), it fails with this backtrace:

Debugger entered--Lisp error: (void-variable someemail)
  symbol-value(someemail)
  eudc-mailabbrev-query-internal(((email . "someemail")) (firstname name email))
  eudc-query(((email . "someemail")) (firstname name email))
  #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_22>(("someemail") t (nil) ((email) (firstname)))
  eudc-query-with-words(("someemail") t)
  eudc-capf-message-expand-name()
  eudc-capf-complete()
  completion--capf-wrapper(eudc-capf-complete all)
  completion-at-point()
  message-tab()
  funcall-interactively(message-tab)
  command-execute(message-tab)

It works fine if I press tab after a substring like "someemai" or "someema" or even
"someemail@", but fails for "someemail" exactly.

This patch seems to fix the issue by checking if the symbol is bound
before calling symbol-value.

diff --git a/lisp/net/eudcb-mailabbrev.el b/lisp/net/eudcb-mailabbrev.el
index 64b50af09b..4a2dd9ad4a 100644
--- a/lisp/net/eudcb-mailabbrev.el
+++ b/lisp/net/eudcb-mailabbrev.el
@@ -78,7 +78,10 @@ RETURN-ATTRS is a list of attributes to return, defaulting to
     (dolist (term query)
       (let* ((attr (car term))
              (value (cdr term))
-             (raw-matches (symbol-value (intern-soft value mail-abbrevs))))
+             (soft (intern-soft value mail-abbrevs))
+             (raw-matches (and
+                           (boundp soft)
+                           (symbol-value soft))))
         (when (and raw-matches
                    (memq attr '(email firstname name)))
           (let* ((matches (split-string raw-matches ", "))





This bug report was last modified 2 years and 179 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.