subr.el doc clarifications.

* subr.el (when-let, when-let*, and-let*): Doc clarifications.
Make `when-let* doc string self-contained.
This commit is contained in:
Richard Stallman 2025-01-08 08:40:32 -05:00
parent 2a3385ab50
commit 67be8db518

View file

@ -2643,7 +2643,8 @@ SYMBOL is checked for nil."
(defmacro when-let* (varlist &rest body)
"Bind variables according to VARLIST and conditionally evaluate BODY.
Evaluate each binding in turn, stopping if a binding value is nil.
If all are non-nil, return the value of the last form in BODY.
If all are non-nil, evaluate the forms in BODY
and return the value of the last form.
The variable list VARLIST is the same as in `if-let*'.
@ -2653,8 +2654,12 @@ See also `and-let*'."
(defmacro and-let* (varlist &rest body)
"Bind variables according to VARLIST and conditionally evaluate BODY.
Like `when-let*', except if BODY is empty and all the bindings
are non-nil, then the result is the value of the last binding.
Evaluate each binding in turn, stopping if a binding value is nil.
If all bindings are non-nil, evaluate the forms in BODY
and return the value of the last form, or else the last binding value
if BODY is empty.
Like `when-let*', except for the handling of an empty BODY.
Some Lisp programmers follow the convention that `and' and `and-let*'
are for forms evaluated for return value, and `when' and `when-let*' are
@ -2690,7 +2695,8 @@ binding."
(defmacro when-let (spec &rest body)
"Bind variables according to SPEC and conditionally evaluate BODY.
Evaluate each binding in turn, stopping if a binding value is nil.
If all are non-nil, return the value of the last form in BODY.
If all are non-nil, evaluate the forms in BODY
and return the value of the last form.
The variable list SPEC is the same as in `if-let'."
(declare (indent 1) (debug if-let)