Richard Stallman <[EMAIL PROTECTED]> writes:

> Does that code work correctly when you do NOT debug it with edebug?

Yes, it does. (Otherwise I'd have mentioned it.) I suppose it is
nevertheless a bug and not just a missing feature, because: if edebug
encounters a macro about which it has no information, it normally just
jumps over the entire macro body while silently macroexpanding it. For
instance:

(defmacro my-do-vector (var vect &rest body)
  (let ((i (make-symbol "i"))
        (len (make-symbol "len"))
        (v (make-symbol "v")))
    `(let* ((,i 0)
            (,v ,vect)
            (,len (length ,vect)))
       (while (< ,i ,len)
         (setq ,var (aref ,v ,i)
               ,i (1+ ,i))
         ,@body))))

(defun my-test ()
  (my-do-vector e [alpha beta gamma]
    (print e)))
  
No error here, when edebugging `my-test'. Though, edebug does not step
through the loop in the `my-do-vector' expression, either.

IIRC, it is possible to advise `edebug' about what to do with such
macros. I suppose, the described bug with `labels' happens, because
edebug actually tries to DTRT, but fails.

I have not checked yet, whether this bug might be more general; for
instance, it could be a bug in said advice mechanism.


    Oliver
-- 
Oliver Scholz               19 Ventôse an 215 de la Révolution
Ostendstr. 61               Liberté, Egalité, Fraternité!
60314 Frankfurt a. M.       


_______________________________________________
emacs-pretest-bug mailing list
emacs-pretest-bug@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug

Reply via email to