Subject: Re: bug#75852: [PATCH] ; (let-alist): Document double-dot escape syntax.

From: Stefan Kangas <[email-masked]>
Date: Sun, 26 Jan 2025 08:08:53 -0600

Eshel Yaron via "Bug reports for GNU Emacs, the Swiss army knife of text
editors" <[email-masked]> writes:

> Tags: patch
>
> Document a "hidden" let-alist feature.

Artur, any comments?

> From 286f79bf5768fb093f0a044084a83a89fffe111f Mon Sep 17 00:00:00 2001
> From: Eshel Yaron <[email-masked]>
> Date: Sun, 26 Jan 2025 08:56:15 +0100
> Subject: [PATCH] ; (let-alist): Document double-dot escape syntax.
>
> ---
>  lisp/emacs-lisp/let-alist.el | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/lisp/emacs-lisp/let-alist.el b/lisp/emacs-lisp/let-alist.el
> index 239a4ad69eb..b79c2e51de9 100644
> --- a/lisp/emacs-lisp/let-alist.el
> +++ b/lisp/emacs-lisp/let-alist.el
> @@ -146,6 +146,12 @@ let-alist
>  inside the original alist by using dots inside the symbol, as
>  displayed in the example above.
>
> +To refer to a non-`let-alist' variable starting with a dot in BODY, use
> +two dots instead of one.  For example, in the following form `..foo'
> +refers to the variable `.foo' bound outside of the `let-alist':
> +
> +    (let ((.foo 42)) (let-alist \\='((foo . nil)) ..foo))
> +
>  Note that there is no way to differentiate the case where a key
>  is missing from when it is present, but its value is nil.  Thus,
>  the following form evaluates to nil:
> --
> 2.46.2