aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
authorRichard M. Stallman1994-07-31 20:57:45 +0000
committerRichard M. Stallman1994-07-31 20:57:45 +0000
commitf845f2c9a5a0a939efa82adc28076c927401a817 (patch)
tree8673066a8577fa01b2c2baade87a065771f3df48 /src/data.c
parent7782a0c643afd8ece1e874043933f2f739171de1 (diff)
downloademacs-f845f2c9a5a0a939efa82adc28076c927401a817.tar.gz
emacs-f845f2c9a5a0a939efa82adc28076c927401a817.zip
(syms_of_data): Set up Qadvice_info, Qactivate_advice.
(Ffset): Activate advice if symbol has advice-info property.
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/data.c b/src/data.c
index c30dff84ffc..c87ec249d5b 100644
--- a/src/data.c
+++ b/src/data.c
@@ -74,6 +74,7 @@ Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp;
74Lisp_Object Qbuffer_or_string_p; 74Lisp_Object Qbuffer_or_string_p;
75Lisp_Object Qboundp, Qfboundp; 75Lisp_Object Qboundp, Qfboundp;
76Lisp_Object Qcdr; 76Lisp_Object Qcdr;
77Lisp_Object Qadvice_info, Qactivate_advice;
77 78
78Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error; 79Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error;
79Lisp_Object Qoverflow_error, Qunderflow_error; 80Lisp_Object Qoverflow_error, Qunderflow_error;
@@ -554,6 +555,12 @@ DEFUN ("fset", Ffset, Sfset, 2, 2, 0,
554 Vautoload_queue = Fcons (Fcons (sym, XSYMBOL (sym)->function), 555 Vautoload_queue = Fcons (Fcons (sym, XSYMBOL (sym)->function),
555 Vautoload_queue); 556 Vautoload_queue);
556 XSYMBOL (sym)->function = newdef; 557 XSYMBOL (sym)->function = newdef;
558 /* Handle automatic advice activation */
559 if (!NILP (Fget (sym, Qadvice_info)))
560 {
561 call2 (Qactivate_advice, sym, Fbyte_code_function_p (newdef));
562 newdef = XSYMBOL (sym)->function;
563 }
557 return newdef; 564 return newdef;
558} 565}
559 566
@@ -2050,6 +2057,10 @@ syms_of_data ()
2050 2057
2051 Qcdr = intern ("cdr"); 2058 Qcdr = intern ("cdr");
2052 2059
2060 /* Handle automatic advice activation */
2061 Qadvice_info = intern ("advice-info");
2062 Qactivate_advice = intern ("ad-activate");
2063
2053 error_tail = Fcons (Qerror, Qnil); 2064 error_tail = Fcons (Qerror, Qnil);
2054 2065
2055 /* ERROR is used as a signaler for random errors for which nothing else is right */ 2066 /* ERROR is used as a signaler for random errors for which nothing else is right */
@@ -2232,6 +2243,8 @@ syms_of_data ()
2232 staticpro (&Qboundp); 2243 staticpro (&Qboundp);
2233 staticpro (&Qfboundp); 2244 staticpro (&Qfboundp);
2234 staticpro (&Qcdr); 2245 staticpro (&Qcdr);
2246 staticpro (&Qadvice_info);
2247 staticpro (&Qactivate_advice);
2235 2248
2236 defsubr (&Seq); 2249 defsubr (&Seq);
2237 defsubr (&Snull); 2250 defsubr (&Snull);