[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Macro declarations
From: |
Johan Bockgård |
Subject: |
Macro declarations |
Date: |
Mon, 19 Mar 2007 17:42:11 +0100 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.93 (gnu/linux) |
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 <address@hidden>
* 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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Macro declarations,
Johan Bockgård <=