diff options
author | Noam Postavsky <npostavs@gmail.com> | 2018-01-06 21:16:33 -0500 |
---|---|---|
committer | Noam Postavsky <npostavs@gmail.com> | 2018-01-06 21:22:24 -0500 |
commit | 5f720046783c5b29fad3765303c1ad57aba167ce (patch) | |
tree | 2e2e05d977b762fe05edac7bd521e3b551ab6e6d /lisp/emacs-lisp | |
parent | 15cd18991c1d9a9bafeef7bf9b4dad91ecc0332a (diff) | |
download | emacs-5f720046783c5b29fad3765303c1ad57aba167ce.tar.gz emacs-5f720046783c5b29fad3765303c1ad57aba167ce.tar.bz2 emacs-5f720046783c5b29fad3765303c1ad57aba167ce.zip |
Revert "Fix command repetition with lexical-binding (Bug#29334)"
It does not work with more complicated interactive forms, because
byte-compile-lambda actually receives an intermediate form of code
rather than valid lisp source (Bug#29988).
* src/callint.c (Fcall_interactively):
* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Revert previous
change, and update commentary.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/bytecomp.el | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 564aac2fc6a..cc3a24e3d51 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -2839,7 +2839,12 @@ for symbols generated by the byte compiler itself." (while (consp (cdr form)) (setq form (cdr form))) (setq form (car form))) - (if (eq (car-safe form) 'list) + (if (and (eq (car-safe form) 'list) + ;; For code using lexical-binding, form is not + ;; valid lisp, but rather an intermediate form + ;; which may include "calls" to + ;; internal-make-closure (Bug#29988). + (not lexical-binding)) nil (setq int `(interactive ,newform))))) ((cdr int) |