]> git.eshelyaron.com Git - emacs.git/commitdiff
(Ffset): Save autoload of the function being set.
authorJuanma Barranquero <lekktu@gmail.com>
Sun, 14 Oct 2007 18:02:05 +0000 (18:02 +0000)
committerJuanma Barranquero <lekktu@gmail.com>
Sun, 14 Oct 2007 18:02:05 +0000 (18:02 +0000)
src/ChangeLog
src/data.c

index 27662e950a2d90e8e1b6fab891cf5b214cb3d3e2..2317e4302a94804847a69ece264b4ce0069d347c 100644 (file)
@@ -1,3 +1,9 @@
+2007-10-14  Juanma Barranquero  <lekktu@gmail.com>
+
+       * eval.c (do_autoload): Don't save autoloads.
+
+       * data.c (Ffset): Save autoload of the function being set.
+
 2007-10-07  John Paul Wallington  <jpw@pobox.com>
 
        * xfns.c (x_create_tip_frame): Set the `display-type' frame
@@ -63,7 +69,7 @@
 
 2007-10-01  Juanma Barranquero  <lekktu@gmail.com>
 
-       * lread.c (Fload): Fix typo in docstring.
+       * lread.c (Fload): Fix typo in docstring.
 
 2007-09-29  Juri Linkov  <juri@jurta.org>
 
index 5e7453e9d42ca0f8e1d2e27a2487f1143fab1504..f954116f32e31b741304a9fe2ff54af529e274da 100644 (file)
@@ -662,12 +662,20 @@ DEFUN ("fset", Ffset, Sfset, 2, 2, 0,
      (symbol, definition)
      register Lisp_Object symbol, definition;
 {
+  register Lisp_Object function;
+
   CHECK_SYMBOL (symbol);
   if (NILP (symbol) || EQ (symbol, Qt))
     xsignal1 (Qsetting_constant, symbol);
-  if (!NILP (Vautoload_queue) && !EQ (XSYMBOL (symbol)->function, Qunbound))
-    Vautoload_queue = Fcons (Fcons (symbol, XSYMBOL (symbol)->function),
-                            Vautoload_queue);
+
+  function = XSYMBOL (symbol)->function;
+
+  if (!NILP (Vautoload_queue) && !EQ (function, Qunbound))
+    Vautoload_queue = Fcons (Fcons (symbol, function), Vautoload_queue);
+
+  if (CONSP (function) && EQ (XCAR (function), Qautoload))
+    Fput (symbol, Qautoload, XCDR (function));
+
   XSYMBOL (symbol)->function = definition;
   /* Handle automatic advice activation */
   if (CONSP (XSYMBOL (symbol)->plist) && !NILP (Fget (symbol, Qad_advice_info)))