From a9a03cf35ef4f4bb3a75daffaa93e620f808db0f Mon Sep 17 00:00:00 2001 From: Richard Lawrence Date: Sat, 3 Jan 2026 17:10:54 +0100 Subject: [PATCH] Fix (or ...) patterns in 'cond*'/'match*' This fixes Bug#80121. * lisp/emacs-lisp/cond-star.el (cond*-subpat): Add missing reference to 'expression' when clearing multiple backtrack aliases. --- lisp/emacs-lisp/cond-star.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/emacs-lisp/cond-star.el b/lisp/emacs-lisp/cond-star.el index 97a24011bce..98d4b93583a 100644 --- a/lisp/emacs-lisp/cond-star.el +++ b/lisp/emacs-lisp/cond-star.el @@ -728,7 +728,7 @@ whether SUBPAT (as well as the subpatterns that contain/precede it) matches," (if (null (cdr clearing)) `(or ,expression ,(car clearing)) - `(progn ,@clearing)))))) + `(or ,expression (progn ,@clearing))))))) (push expression expressions))) ;; At end of (or...), EACH variable bound by any arm ;; has a backtrack alias gensym. At run time, that gensym's value