From 84595cbcc78b1ea44302f22b83a7d722940c6e49 Mon Sep 17 00:00:00 2001 From: Eshel Yaron Date: Sun, 26 Jan 2025 08:56:15 +0100 Subject: [PATCH] ; (let-alist): Document double-dot escape syntax. (Bug#75852) --- 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 27ce3e5c137..15a9bb89a42 100644 --- a/lisp/emacs-lisp/let-alist.el +++ b/lisp/emacs-lisp/let-alist.el @@ -141,6 +141,12 @@ the variables of the outer one. You can, however, access alists 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: