aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2014-11-03 17:48:30 -0500
committerStefan Monnier2014-11-03 17:48:30 -0500
commit50deba142a9f49270e43361e4b610bc67653ee3a (patch)
tree66347b7de786fd4bdb38ea0d3277e8a89e1d6d93
parent772a965c5f684c73e6ce6520ba49ef6b9a53651e (diff)
downloademacs-50deba142a9f49270e43361e4b610bc67653ee3a.tar.gz
emacs-50deba142a9f49270e43361e4b610bc67653ee3a.zip
* lisp/emacs-lisp/byte-run.el (defun-declarations-alist): Fix compiler-macro
autoloading when specified as a lambda. * lisp/emacs-lisp/edebug.el (edebug-safe-prin1-to-string): Assume that edebug-prin1-to-string already handles circularity.
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/emacs-lisp/byte-run.el21
-rw-r--r--lisp/emacs-lisp/edebug.el4
3 files changed, 22 insertions, 9 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index e6d74f48b78..445cef9c8c9 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,11 @@
12014-11-03 Stefan Monnier <monnier@iro.umontreal.ca> 12014-11-03 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * emacs-lisp/edebug.el (edebug-safe-prin1-to-string): Assume that
4 edebug-prin1-to-string already handles circularity.
5
6 * emacs-lisp/byte-run.el (defun-declarations-alist): Fix compiler-macro
7 autoloading when specified as a lambda.
8
3 * simple.el (execute-extended-command--last-typed): New var. 9 * simple.el (execute-extended-command--last-typed): New var.
4 (read-extended-command): Set it. 10 (read-extended-command): Set it.
5 Don't complete obsolete commands. 11 Don't complete obsolete commands.
diff --git a/lisp/emacs-lisp/byte-run.el b/lisp/emacs-lisp/byte-run.el
index 0edcf6197b4..97768fa7e1a 100644
--- a/lisp/emacs-lisp/byte-run.el
+++ b/lisp/emacs-lisp/byte-run.el
@@ -112,12 +112,21 @@ This may shift errors from run-time to compile-time.")
112If `error-free', drop calls even if `byte-compile-delete-errors' is nil.") 112If `error-free', drop calls even if `byte-compile-delete-errors' is nil.")
113 (list 'compiler-macro 113 (list 'compiler-macro
114 #'(lambda (f args compiler-function) 114 #'(lambda (f args compiler-function)
115 `(eval-and-compile 115 (if (not (eq (car-safe compiler-function) 'lambda))
116 (function-put ',f 'compiler-macro 116 `(eval-and-compile
117 ,(if (eq (car-safe compiler-function) 'lambda) 117 (function-put ',f 'compiler-macro #',compiler-function))
118 `(lambda ,(append (cadr compiler-function) args) 118 (let ((cfname (intern (concat (symbol-name f)
119 ,@(cddr compiler-function)) 119 "--anon-compiler-macro"))))
120 `#',compiler-function))))) 120 `(progn
121 (eval-and-compile
122 (function-put ',f 'compiler-macro #',cfname))
123 ;; Don't autoload the compiler-macro itself, since the
124 ;; macroexpander will find this file via `f's autoload,
125 ;; if needed.
126 :autoload-end
127 (eval-and-compile
128 (defun ,cfname (,@(cadr compiler-function) ,@args)
129 ,@(cddr compiler-function))))))))
121 (list 'doc-string 130 (list 'doc-string
122 #'(lambda (f _args pos) 131 #'(lambda (f _args pos)
123 (list 'function-put (list 'quote f) 132 (list 'function-put (list 'quote f)
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 785050896b8..473edb4bc61 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -3373,9 +3373,7 @@ Return the result of the last expression."
3373 (print-level (or edebug-print-level print-level)) 3373 (print-level (or edebug-print-level print-level))
3374 (print-circle (or edebug-print-circle print-circle)) 3374 (print-circle (or edebug-print-circle print-circle))
3375 (print-readably nil)) ; lemacs uses this. 3375 (print-readably nil)) ; lemacs uses this.
3376 (condition-case nil 3376 (edebug-prin1-to-string value)))
3377 (edebug-prin1-to-string value)
3378 (error "#Apparently circular structure#"))))
3379 3377
3380(defun edebug-compute-previous-result (previous-value) 3378(defun edebug-compute-previous-result (previous-value)
3381 (if edebug-unwrap-results 3379 (if edebug-unwrap-results