diff options
Diffstat (limited to 'lisp/emacs-lisp/cl-macs.el')
-rw-r--r-- | lisp/emacs-lisp/cl-macs.el | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 8b2d3c413af..d7e6c307ed3 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -2144,7 +2144,9 @@ Like `cl-flet' but the definitions can refer to previous ones. ((and `(condition-case ,err-var ,bodyform . ,handlers) (guard (not (eq err-var var)))) `(condition-case ,err-var - (progn (setq ,retvar ,bodyform) nil) + ,(if (assq :success handlers) + bodyform + `(progn (setq ,retvar ,bodyform) nil)) . ,(mapcar (lambda (h) (cons (car h) (funcall opt-exps (cdr h)))) handlers))) |