Subject: Re: bug#59369: 29.0.50; eudc-mailabbrev-query-internal fails with void-variable

From: Thomas Fitzsimmons <[email-masked]>
Date: Sat, 19 Nov 2022 09:34:06 -0500

Hi Ben,

Brent Westbrook <[email-masked]> 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