The byte compiler prints macro declarations without quoting.
E.g. defun-cvs-mode; the definition in pcvs.el looks like this:
(defmacro defun-cvs-mode (fun args docstring interact &rest body)
[...]
(declare (debug (&define sexp lambda-list stringp ("interactive"
interactive) def-body)))
[...]
Note the quotes around `interactive'.
However, the edebug-form-spec loaded from pcvs.*elc* lacks the quotes:
(require 'pcvs)
(get 'defun-cvs-mode 'edebug-form-spec)
=>
(&define sexp lambda-list stringp (interactive interactive) def-body)
This breaks edebugging.
Here's a fix.
2007-03-15 Johan Bockgård <[EMAIL PROTECTED]>
* emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble):
Use prin1 instead of princ.
--- bytecomp.el 12 Mar 2007 11:11:14 +0100 2.195
+++ bytecomp.el 15 Mar 2007 15:20:38 +0100
@@ -2341,7 +2341,7 @@
(eq (car (car (cdr tail))) 'declare))
(let ((declaration (car (cdr tail))))
(setcdr tail (cdr (cdr tail)))
- (princ `(if macro-declaration-function
+ (prin1 `(if macro-declaration-function
(funcall macro-declaration-function
',name ',declaration))
outbuffer)))))
--
Johan Bockgård
_______________________________________________
emacs-pretest-bug mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug