diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2002-07-09 23:12:30 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2002-07-09 23:12:30 +0000 |
commit | d2fde41d7de13c4557aa8669ffed5ace92fc2b6e (patch) | |
tree | ea692d1172caf0e9fed422ff1e4afad8fa1aba39 /src/data.c | |
parent | 7e301470e63212ff6827a2385d9c754ff6c5d775 (diff) | |
download | emacs-d2fde41d7de13c4557aa8669ffed5ace92fc2b6e.tar.gz emacs-d2fde41d7de13c4557aa8669ffed5ace92fc2b6e.tar.bz2 emacs-d2fde41d7de13c4557aa8669ffed5ace92fc2b6e.zip |
(Fdefalias): Add an optional `docstring' argument.
(set_internal, Fsetq_default): Use XCAR/XCDR.
Diffstat (limited to 'src/data.c')
-rw-r--r-- | src/data.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/data.c b/src/data.c index 33a94b389f3..f2c13dd9749 100644 --- a/src/data.c +++ b/src/data.c @@ -704,14 +704,18 @@ DEFUN ("fset", Ffset, Sfset, 2, 2, 0, return definition; } -DEFUN ("defalias", Fdefalias, Sdefalias, 2, 2, 0, +extern Lisp_Object Qfunction_documentation; + +DEFUN ("defalias", Fdefalias, Sdefalias, 2, 3, 0, doc: /* Set SYMBOL's function definition to DEFINITION, and return DEFINITION. Associates the function with the current load file, if any. */) - (symbol, definition) - register Lisp_Object symbol, definition; + (symbol, definition, docstring) + register Lisp_Object symbol, definition, docstring; { definition = Ffset (symbol, definition); LOADHIST_ATTACH (symbol); + if (!NILP (docstring)) + Fput (symbol, Qfunction_documentation, docstring); return definition; } @@ -1209,7 +1213,7 @@ set_internal (symbol, newval, buf, bindflag) and load that binding. */ else { - tem1 = Fcons (symbol, Fcdr (current_alist_element)); + tem1 = Fcons (symbol, XCDR (current_alist_element)); buf->local_var_alist = Fcons (tem1, buf->local_var_alist); } @@ -1411,9 +1415,9 @@ usage: (setq-default SYMBOL VALUE [SYMBOL VALUE...]) */) do { val = Feval (Fcar (Fcdr (args_left))); - symbol = Fcar (args_left); + symbol = XCAR (args_left); Fset_default (symbol, val); - args_left = Fcdr (Fcdr (args_left)); + args_left = Fcdr (XCDR (args_left)); } while (!NILP (args_left)); |