]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/subr.el (function-get): Refine `autoload' arg so it can also
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 13 Aug 2012 21:23:09 +0000 (17:23 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 13 Aug 2012 21:23:09 +0000 (17:23 -0400)
autoload functions for gv.el.
* lisp/emacs-lisp/edebug.el (get-edebug-spec): Adjust so it only
autoloads macros.

Fixes: debbugs:12191
lisp/ChangeLog
lisp/emacs-lisp/edebug.el
lisp/subr.el

index 2cbf94c0ee732c9af13f1b64cf31ef49b1e1b418..6ccbb69a9198c44c4a268c8d951a056f61c29e6c 100644 (file)
@@ -1,5 +1,10 @@
 2012-08-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+       * subr.el (function-get): Refine `autoload' arg so it can also
+       autoload functions for gv.el (bug#12191).
+       * emacs-lisp/edebug.el (get-edebug-spec): Adjust so it only
+       autoloads macros.
+
        * color.el (color-xyz-to-lab, color-lab-to-xyz, color-cie-de2000):
        Prefer pcase-let over destructuring-bind.
        * vc/diff-mode.el (diff-remove-trailing-whitespace): Same.
index bbf0757c3bc209bd43b85fe8ea8e79c11e4710ac..910d9403753ecec3d9b1a878e5b03c49868efd87 100644 (file)
@@ -248,7 +248,7 @@ If the result is non-nil, then break.  Errors are ignored."
         (progn
           (and (symbolp indirect)
                (setq indirect
-                     (function-get indirect 'edebug-form-spec 'autoload))))
+                     (function-get indirect 'edebug-form-spec 'macro))))
       ;; (edebug-trace "indirection: %s" edebug-form-spec)
       (setq edebug-form-spec indirect))
     edebug-form-spec
index 6b64bbc2f4d5ef7a7e75f9253c9cb9c945003f9b..212632ff779823962652a90fd76010577700db82 100644 (file)
@@ -2785,15 +2785,19 @@ form."
 
 (defun function-get (f prop &optional autoload)
   "Return the value of property PROP of function F.
-If AUTOLOAD is non-nil and F is an autoloaded macro, try to autoload
-the macro in the hope that it will set PROP."
+If AUTOLOAD is non-nil and F is autoloaded, try to autoload it
+in the hope that it will set PROP.  If AUTOLOAD is `macro', only do it
+if it's an autoloaded macro."
   (let ((val nil))
     (while (and (symbolp f)
                 (null (setq val (get f prop)))
                 (fboundp f))
       (let ((fundef (symbol-function f)))
         (if (and autoload (autoloadp fundef)
-                 (not (equal fundef (autoload-do-load fundef f 'macro))))
+                 (not (equal fundef
+                             (autoload-do-load fundef f
+                                               (if (eq autoload 'macro)
+                                                   'macro)))))
             nil                         ;Re-try `get' on the same `f'.
           (setq f fundef))))
     val))