]> code.delx.au - gnu-emacs/commitdiff
(Fdefalias): Add an optional `docstring' argument.
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 9 Jul 2002 23:12:30 +0000 (23:12 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 9 Jul 2002 23:12:30 +0000 (23:12 +0000)
(set_internal, Fsetq_default): Use XCAR/XCDR.

src/data.c

index 33a94b389f3971bc127f69aa5194ed789a3a18e2..f2c13dd9749584f6cf26c4901c4d0d597623c311 100644 (file)
@@ -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));