summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/cl.el
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2018-06-23 07:50:59 -0700
committerGlenn Morris <rgm@gnu.org>2018-06-23 07:50:59 -0700
commitb81e193ac0c4644d041a4eb4fa4cb62cf9446bd6 (patch)
tree837db70e4aff8fce66886b0cfbe82dbccdea4b06 /lisp/emacs-lisp/cl.el
parent4df361557c3f1b4039fa59d23cd1ed66c2ca5b1c (diff)
parent5cb3991a4f78b39a2c95b22a5159ae3ba779397e (diff)
downloademacs-b81e193ac0c4644d041a4eb4fa4cb62cf9446bd6.tar.gz
emacs-b81e193ac0c4644d041a4eb4fa4cb62cf9446bd6.tar.bz2
emacs-b81e193ac0c4644d041a4eb4fa4cb62cf9446bd6.zip
Merge from origin/emacs-26
5cb3991 Fix a typo in emacs-lisp-intro.texi d6aa55e Avoid segfaults in replace-buffer-contents with large buffers d22b8d1 Adjust for scaling for mode-line popup menus (Bug#31880) 3d2e3dc Change name of `seqp' argument (Bug#26411) 40e1db8 Change index of ";" to better reflect it's usage (Bug#31623) d289e7e Fix bug of 'mouse-drag-and-drop-region' to detect edges of re... e292c09 Fix #'fun handling inside `labels' (Bug#31792)
Diffstat (limited to 'lisp/emacs-lisp/cl.el')
-rw-r--r--lisp/emacs-lisp/cl.el7
1 files changed, 5 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el
index d53c8e0bbcf..f6643158d2d 100644
--- a/lisp/emacs-lisp/cl.el
+++ b/lisp/emacs-lisp/cl.el
@@ -466,9 +466,12 @@ rather than relying on `lexical-binding'."
(push var sets)
(push (cons (car binding)
`(lambda (&rest cl-labels-args)
- (cl-list* 'funcall ',var
- cl-labels-args)))
+ (if (eq (car cl-labels-args) cl--labels-magic)
+ (list cl--labels-magic ',var)
+ (cl-list* 'funcall ',var cl-labels-args))))
newenv)))
+ ;; `lexical-let' adds `cl--function-convert' (which calls
+ ;; `cl--labels-convert') as a macroexpander for `function'.
(macroexpand-all `(lexical-let ,vars (setq ,@sets) ,@body) newenv)))
;; Generalized variables are provided by gv.el, but some details are