(ad-make-advised-definition): If the
authorGerd Moellmann <gerd@gnu.org>
Mon, 9 Jul 2001 13:06:36 +0000 (13:06 +0000)
committerGerd Moellmann <gerd@gnu.org>
Mon, 9 Jul 2001 13:06:36 +0000 (13:06 +0000)
original definition has an interactive form, but is Elp
instrumented, use the interactive form of the function called by
elp-wrapper.

lisp/ChangeLog
lisp/emacs-lisp/advice.el

index 8a2c303..178dfe8 100644 (file)
@@ -1,5 +1,10 @@
 2001-07-09  Gerd Moellmann  <gerd@gnu.org>
 
+       * emacs-lisp/advice.el (ad-make-advised-definition): If the
+       original definition has an interactive form, but is Elp
+       instrumented, use the interactive form of the function called by
+       elp-wrapper.
+
        * winner.el (winner-equal): Make it a defun.  Don't compare Winner
        configurations with compare-window-configuration; they aren't
        window configurations.
index 268fea5..c13bff9 100644 (file)
@@ -3068,11 +3068,15 @@ Example: `(ad-map-arglists '(a &rest args) '(w x y z))' will return
             (interactive-form
              (cond (orig-macro-p nil)
                    (advised-interactive-form)
-                   ((ad-interactive-form origdef))
+                   ((ad-interactive-form origdef)
+                    (if (and (symbolp function) (get function 'elp-info))
+                        (interactive-form (aref (get function 'elp-info) 2))
+                      (ad-interactive-form origdef)))                 
                    ;; Otherwise we must have a subr: make it interactive if
                    ;; we have to and initialize required arguments in case
                    ;; it is called interactively:
-                   (orig-interactive-p (interactive-form origdef))))
+                   (orig-interactive-p 
+                    (interactive-form origdef))))
             (orig-form
              (cond ((or orig-special-form-p orig-macro-p)
                     ;; Special forms and macros will be advised into macros.