emacs-pretest-bug
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]