diff options
| author | Richard M. Stallman | 1994-07-31 20:57:45 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-07-31 20:57:45 +0000 |
| commit | f845f2c9a5a0a939efa82adc28076c927401a817 (patch) | |
| tree | 8673066a8577fa01b2c2baade87a065771f3df48 /src/data.c | |
| parent | 7782a0c643afd8ece1e874043933f2f739171de1 (diff) | |
| download | emacs-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.c | 13 |
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; | |||
| 74 | Lisp_Object Qbuffer_or_string_p; | 74 | Lisp_Object Qbuffer_or_string_p; |
| 75 | Lisp_Object Qboundp, Qfboundp; | 75 | Lisp_Object Qboundp, Qfboundp; |
| 76 | Lisp_Object Qcdr; | 76 | Lisp_Object Qcdr; |
| 77 | Lisp_Object Qadvice_info, Qactivate_advice; | ||
| 77 | 78 | ||
| 78 | Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error; | 79 | Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error; |
| 79 | Lisp_Object Qoverflow_error, Qunderflow_error; | 80 | Lisp_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); |