# HG changeset patch # User Richard M. Stallman # Date 775688265 0 # Node ID 1eee41c8120cd3a47d8b70e03d1e85bc61281106 # Parent cc016ca78c9eda9941b1cf60989c0b586e73426e (syms_of_data): Set up Qadvice_info, Qactivate_advice. (Ffset): Activate advice if symbol has advice-info property. diff -r cc016ca78c9e -r 1eee41c8120c src/data.c --- a/src/data.c Sun Jul 31 20:47:15 1994 +0000 +++ b/src/data.c Sun Jul 31 20:57:45 1994 +0000 @@ -74,6 +74,7 @@ Lisp_Object Qbuffer_or_string_p; Lisp_Object Qboundp, Qfboundp; Lisp_Object Qcdr; +Lisp_Object Qadvice_info, Qactivate_advice; Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error; Lisp_Object Qoverflow_error, Qunderflow_error; @@ -554,6 +555,12 @@ Vautoload_queue = Fcons (Fcons (sym, XSYMBOL (sym)->function), Vautoload_queue); XSYMBOL (sym)->function = newdef; + /* Handle automatic advice activation */ + if (!NILP (Fget (sym, Qadvice_info))) + { + call2 (Qactivate_advice, sym, Fbyte_code_function_p (newdef)); + newdef = XSYMBOL (sym)->function; + } return newdef; } @@ -2050,6 +2057,10 @@ Qcdr = intern ("cdr"); + /* Handle automatic advice activation */ + Qadvice_info = intern ("advice-info"); + Qactivate_advice = intern ("ad-activate"); + error_tail = Fcons (Qerror, Qnil); /* ERROR is used as a signaler for random errors for which nothing else is right */ @@ -2232,6 +2243,8 @@ staticpro (&Qboundp); staticpro (&Qfboundp); staticpro (&Qcdr); + staticpro (&Qadvice_info); + staticpro (&Qactivate_advice); defsubr (&Seq); defsubr (&Snull);