aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorJuanma Barranquero2007-10-14 17:21:39 +0000
committerJuanma Barranquero2007-10-14 17:21:39 +0000
commit764ea377da8f352b999ba144751ac76c6ffe97db (patch)
treec0d48ce1bc2baea7641ad6db4b4fe4db7f04a108 /src/data.c
parentd945992e32fd243aef865d770c1d6b97e547f200 (diff)
downloademacs-764ea377da8f352b999ba144751ac76c6ffe97db.tar.gz
emacs-764ea377da8f352b999ba144751ac76c6ffe97db.zip
(Ffset): Save autoload of the function being set.
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/data.c b/src/data.c
index dfc0c35705a..c8c40aa6df0 100644
--- a/src/data.c
+++ b/src/data.c
@@ -663,12 +663,20 @@ DEFUN ("fset", Ffset, Sfset, 2, 2, 0,
663 (symbol, definition) 663 (symbol, definition)
664 register Lisp_Object symbol, definition; 664 register Lisp_Object symbol, definition;
665{ 665{
666 register Lisp_Object function;
667
666 CHECK_SYMBOL (symbol); 668 CHECK_SYMBOL (symbol);
667 if (NILP (symbol) || EQ (symbol, Qt)) 669 if (NILP (symbol) || EQ (symbol, Qt))
668 xsignal1 (Qsetting_constant, symbol); 670 xsignal1 (Qsetting_constant, symbol);
669 if (!NILP (Vautoload_queue) && !EQ (XSYMBOL (symbol)->function, Qunbound)) 671
670 Vautoload_queue = Fcons (Fcons (symbol, XSYMBOL (symbol)->function), 672 function = XSYMBOL (symbol)->function;
671 Vautoload_queue); 673
674 if (!NILP (Vautoload_queue) && !EQ (function, Qunbound))
675 Vautoload_queue = Fcons (Fcons (symbol, function), Vautoload_queue);
676
677 if (CONSP (function) && EQ (XCAR (function), Qautoload))
678 Fput (symbol, Qautoload, XCDR (function));
679
672 XSYMBOL (symbol)->function = definition; 680 XSYMBOL (symbol)->function = definition;
673 /* Handle automatic advice activation */ 681 /* Handle automatic advice activation */
674 if (CONSP (XSYMBOL (symbol)->plist) && !NILP (Fget (symbol, Qad_advice_info))) 682 if (CONSP (XSYMBOL (symbol)->plist) && !NILP (Fget (symbol, Qad_advice_info)))
@@ -752,7 +760,7 @@ Value, if non-nil, is a list \(interactive SPEC). */)
752 Lisp_Object cmd; 760 Lisp_Object cmd;
753{ 761{
754 Lisp_Object fun = indirect_function (cmd); /* Check cycles. */ 762 Lisp_Object fun = indirect_function (cmd); /* Check cycles. */
755 763
756 if (NILP (fun) || EQ (fun, Qunbound)) 764 if (NILP (fun) || EQ (fun, Qunbound))
757 return Qnil; 765 return Qnil;
758 766