--- Begin Message ---
Subject: |
29.0.50; eudc-mailabbrev-query-internal fails with void-variable |
Date: |
Fri, 18 Nov 2022 12:16:43 -0500 |
User-agent: |
mu4e 1.8.11; emacs 29.0.50 |
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 ", "))
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#59369: 29.0.50; eudc-mailabbrev-query-internal fails with void-variable |
Date: |
Sat, 19 Nov 2022 09:34:06 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hi Ben,
Brent Westbrook <bwestbr2@go.olemiss.edu> writes:
> 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.
Yes, I also noticed this type of failure last night, while I was working
on bug#59314.
> This patch seems to fix the issue by checking if the symbol is bound
> before calling symbol-value.
Thanks for the fix, I pushed it to the master branch. I confirmed no
regressions by running:
make -C test lisp/net/eudc-tests.log
Thomas
--- End Message ---