changeset 39977:51c2b8f7aa5a

Change doc-string comments to `new style' [w/`doc:' keyword].
author Miles Bader <miles@gnu.org>
date Tue, 16 Oct 2001 13:07:29 +0000
parents fa2e20b1440c
children 795002b191bb
files src/fns.c
diffstat 1 files changed, 239 insertions(+), 241 deletions(-) [+]
line wrap: on
line diff
--- a/src/fns.c	Tue Oct 16 13:05:28 2001 +0000
+++ b/src/fns.c	Tue Oct 16 13:07:29 2001 +0000
@@ -19,8 +19,6 @@
 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-#define DOC_STRINGS_IN_COMMENTS
-
 #include <config.h>
 
 #ifdef HAVE_UNISTD_H
@@ -76,20 +74,20 @@
 #endif
 
 DEFUN ("identity", Fidentity, Sidentity, 1, 1, 0,
-       /* Return the argument unchanged. */
-       (arg))
+       doc: /* Return the argument unchanged. */)
+     (arg)
      Lisp_Object arg;
 {
   return arg;
 }
 
 DEFUN ("random", Frandom, Srandom, 0, 1, 0,
-       /* Return a pseudo-random number.
+       doc: /* Return a pseudo-random number.
 All integers representable in Lisp are equally likely.
   On most systems, this is 28 bits' worth.
 With positive integer argument N, return random number in interval [0,N).
-With argument t, set the random number seed from the current time and pid. */
-       (n))
+With argument t, set the random number seed from the current time and pid. */)
+     (n)
      Lisp_Object n;
 {
   EMACS_INT val;
@@ -121,12 +119,12 @@
 /* Random data-structure functions */
 
 DEFUN ("length", Flength, Slength, 1, 1, 0,
-       /* Return the length of vector, list or string SEQUENCE.
+       doc: /* Return the length of vector, list or string SEQUENCE.
 A byte-code function object is also allowed.
 If the string contains multibyte characters, this is not the necessarily
 the number of bytes in the string; it is the number of characters.
-To get the number of bytes, use `string-bytes'. */
-       (sequence))
+To get the number of bytes, use `string-bytes'. */)
+     (sequence)
      register Lisp_Object sequence;
 {
   register Lisp_Object val;
@@ -178,11 +176,11 @@
    since it must terminate.  */
 
 DEFUN ("safe-length", Fsafe_length, Ssafe_length, 1, 1, 0,
-       /* Return the length of a list, but avoid error or infinite loop.
+       doc: /* Return the length of a list, but avoid error or infinite loop.
 This function never gets an error.  If LIST is not really a list,
 it returns 0.  If LIST is circular, it returns a finite value
-which is at least the number of distinct elements. */
-       (list))
+which is at least the number of distinct elements. */)
+     (list)
      Lisp_Object list;
 {
   Lisp_Object tail, halftail, length;
@@ -204,9 +202,9 @@
 }
 
 DEFUN ("string-bytes", Fstring_bytes, Sstring_bytes, 1, 1, 0, 
-       /* Return the number of bytes in STRING.
-If STRING is a multibyte string, this is greater than the length of STRING. */
-       (string))
+       doc: /* Return the number of bytes in STRING.
+If STRING is a multibyte string, this is greater than the length of STRING. */)
+     (string)
      Lisp_Object string;
 {
   CHECK_STRING (string, 1);
@@ -214,10 +212,10 @@
 }
 
 DEFUN ("string-equal", Fstring_equal, Sstring_equal, 2, 2, 0,
-       /* Return t if two strings have identical contents.
+       doc: /* Return t if two strings have identical contents.
 Case is significant, but text properties are ignored.
-Symbols are also allowed; their print names are used instead. */
-       (s1, s2))
+Symbols are also allowed; their print names are used instead. */)
+     (s1, s2)
      register Lisp_Object s1, s2;
 {
   if (SYMBOLP (s1))
@@ -236,7 +234,7 @@
 
 DEFUN ("compare-strings", Fcompare_strings,
        Scompare_strings, 6, 7, 0,
-/* Compare the contents of two strings, converting to multibyte if needed.
+doc: /* Compare the contents of two strings, converting to multibyte if needed.
 In string STR1, skip the first START1 characters and stop at END1.
 In string STR2, skip the first START2 characters and stop at END2.
 END1 and END2 default to the full lengths of the respective strings.
@@ -248,8 +246,8 @@
 If string STR1 is less, the value is a negative number N;
   - 1 - N is the number of characters that match at the beginning.
 If string STR1 is greater, the value is a positive number N;
-  N - 1 is the number of characters that match at the beginning. */
-       (str1, start1, end1, str2, start2, end2, ignore_case))
+  N - 1 is the number of characters that match at the beginning. */)
+     (str1, start1, end1, str2, start2, end2, ignore_case)
      Lisp_Object str1, start1, end1, start2, str2, end2, ignore_case;
 {
   register int end1_char, end2_char;
@@ -338,10 +336,10 @@
 }
 
 DEFUN ("string-lessp", Fstring_lessp, Sstring_lessp, 2, 2, 0,
-/* Return t if first arg string is less than second in lexicographic order.
+       doc: /* Return t if first arg string is less than second in lexicographic order.
 Case is significant.
-Symbols are also allowed; their print names are used instead. */
-       (s1, s2))
+Symbols are also allowed; their print names are used instead. */)
+     (s1, s2)
      register Lisp_Object s1, s2;
 {
   register int end;
@@ -409,11 +407,11 @@
 }
 
 DEFUN ("append", Fappend, Sappend, 0, MANY, 0,
-       /* Concatenate all the arguments and make the result a list.
+       doc: /* Concatenate all the arguments and make the result a list.
 The result is a list whose elements are the elements of all the arguments.
 Each argument may be a list, vector or string.
-The last argument is not copied, just used as the tail of the new list. */
-       (nargs, args))
+The last argument is not copied, just used as the tail of the new list. */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -421,10 +419,10 @@
 }
 
 DEFUN ("concat", Fconcat, Sconcat, 0, MANY, 0,
-       /* Concatenate all the arguments and make the result a string.
+       doc: /* Concatenate all the arguments and make the result a string.
 The result is a string whose elements are the elements of all the arguments.
-Each argument may be a string or a list or vector of characters (integers). */
-       (nargs, args))
+Each argument may be a string or a list or vector of characters (integers). */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -432,10 +430,10 @@
 }
 
 DEFUN ("vconcat", Fvconcat, Svconcat, 0, MANY, 0,
-       /* Concatenate all the arguments and make the result a vector.
+       doc: /* Concatenate all the arguments and make the result a vector.
 The result is a vector whose elements are the elements of all the arguments.
-Each argument may be a list, vector or string. */
-       (nargs, args))
+Each argument may be a list, vector or string. */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -465,10 +463,10 @@
 
 
 DEFUN ("copy-sequence", Fcopy_sequence, Scopy_sequence, 1, 1, 0,
-       /* Return a copy of a list, vector or string.
+       doc: /* Return a copy of a list, vector or string.
 The elements of a list or vector are not copied; they are shared
-with the original. */
-       (arg))
+with the original. */)
+     (arg)
      Lisp_Object arg;
 {
   if (NILP (arg)) return arg;
@@ -1054,10 +1052,10 @@
 
 DEFUN ("string-make-multibyte", Fstring_make_multibyte, Sstring_make_multibyte,
        1, 1, 0,
-       /* Return the multibyte equivalent of STRING.
+       doc: /* Return the multibyte equivalent of STRING.
 The function `unibyte-char-to-multibyte' is used to convert
-each unibyte character to a multibyte character. */
-       (string))
+each unibyte character to a multibyte character. */)
+     (string)
      Lisp_Object string;
 {
   CHECK_STRING (string, 0);
@@ -1067,10 +1065,10 @@
 
 DEFUN ("string-make-unibyte", Fstring_make_unibyte, Sstring_make_unibyte,
        1, 1, 0,
-       /* Return the unibyte equivalent of STRING.
+       doc: /* Return the unibyte equivalent of STRING.
 Multibyte character codes are converted to unibyte
-by using just the low 8 bits. */
-       (string))
+by using just the low 8 bits. */)
+     (string)
      Lisp_Object string;
 {
   CHECK_STRING (string, 0);
@@ -1080,13 +1078,13 @@
 
 DEFUN ("string-as-unibyte", Fstring_as_unibyte, Sstring_as_unibyte,
        1, 1, 0,
-       /* Return a unibyte string with the same individual bytes as STRING.
+       doc: /* Return a unibyte string with the same individual bytes as STRING.
 If STRING is unibyte, the result is STRING itself.
 Otherwise it is a newly created string, with no text properties.
 If STRING is multibyte and contains a character of charset
 `eight-bit-control' or `eight-bit-graphic', it is converted to the
-corresponding single byte.  */
-       (string))
+corresponding single byte.  */)
+     (string)
      Lisp_Object string;
 {
   CHECK_STRING (string, 0);
@@ -1106,13 +1104,13 @@
 
 DEFUN ("string-as-multibyte", Fstring_as_multibyte, Sstring_as_multibyte,
        1, 1, 0,
-/* Return a multibyte string with the same individual bytes as STRING.
+       doc: /* Return a multibyte string with the same individual bytes as STRING.
 If STRING is multibyte, the result is STRING itself.
 Otherwise it is a newly created string, with no text properties.
 If STRING is unibyte and contains an individual 8-bit byte (i.e. not
 part of a multibyte form), it is converted to the corresponding
-multibyte character of charset `eight-bit-control' or `eight-bit-graphic'.  */
-       (string))
+multibyte character of charset `eight-bit-control' or `eight-bit-graphic'.  */)
+     (string)
      Lisp_Object string;
 {
   CHECK_STRING (string, 0);
@@ -1138,13 +1136,13 @@
 }
 
 DEFUN ("copy-alist", Fcopy_alist, Scopy_alist, 1, 1, 0,
-       /* Return a copy of ALIST.
+       doc: /* Return a copy of ALIST.
 This is an alist which represents the same mapping from objects to objects,
 but does not share the alist structure with ALIST.
 The objects mapped (cars and cdrs of elements of the alist)
 are shared, however.
-Elements of ALIST that are not conses are also shared.  */
-       (alist))
+Elements of ALIST that are not conses are also shared.  */)
+     (alist)
      Lisp_Object alist;
 {
   register Lisp_Object tem;
@@ -1165,12 +1163,13 @@
 }
 
 DEFUN ("substring", Fsubstring, Ssubstring, 2, 3, 0,
-/* Return a substring of STRING, starting at index FROM and ending before TO.
+       doc: /* 
+Return a substring of STRING, starting at index FROM and ending before TO.
 TO may be nil or omitted; then the substring runs to the end of STRING.
 If FROM or TO is negative, it counts from the end.
 
-This function allows vectors as well as strings.  */
-       (string, from, to))
+This function allows vectors as well as strings.  */)
+     (string, from, to)
      Lisp_Object string;
      register Lisp_Object from, to;
 {
@@ -1277,8 +1276,8 @@
 }
 
 DEFUN ("nthcdr", Fnthcdr, Snthcdr, 2, 2, 0,
-       /* Take cdr N times on LIST, returns the result.  */
-       (n, list))
+       doc: /* Take cdr N times on LIST, returns the result.  */)
+     (n, list)
      Lisp_Object n;
      register Lisp_Object list;
 {
@@ -1296,17 +1295,17 @@
 }
 
 DEFUN ("nth", Fnth, Snth, 2, 2, 0,
-       /* Return the Nth element of LIST.
-N counts from zero.  If LIST is not that long, nil is returned.  */
-       (n, list))
+       doc: /* Return the Nth element of LIST.
+N counts from zero.  If LIST is not that long, nil is returned.  */)
+     (n, list)
      Lisp_Object n, list;
 {
   return Fcar (Fnthcdr (n, list));
 }
 
 DEFUN ("elt", Felt, Selt, 2, 2, 0,
-       /* Return element of SEQUENCE at index N.  */
-       (sequence, n))
+       doc: /* Return element of SEQUENCE at index N.  */)
+     (sequence, n)
      register Lisp_Object sequence, n;
 {
   CHECK_NUMBER (n, 0);
@@ -1323,9 +1322,9 @@
 }
 
 DEFUN ("member", Fmember, Smember, 2, 2, 0,
-/* Return non-nil if ELT is an element of LIST.  Comparison done with `equal'.
-The value is actually the tail of LIST whose car is ELT.  */
-       (elt, list))
+doc: /* Return non-nil if ELT is an element of LIST.  Comparison done with `equal'.
+The value is actually the tail of LIST whose car is ELT.  */)
+     (elt, list)
      register Lisp_Object elt;
      Lisp_Object list;
 {
@@ -1344,10 +1343,10 @@
 }
 
 DEFUN ("memq", Fmemq, Smemq, 2, 2, 0,
-       /* Return non-nil if ELT is an element of LIST.
+       doc: /* Return non-nil if ELT is an element of LIST.
 Comparison done with EQ.  The value is actually the tail of LIST
-whose car is ELT.  */
-       (elt, list))
+whose car is ELT.  */)
+     (elt, list)
      Lisp_Object elt, list;
 {
   while (1)
@@ -1374,10 +1373,10 @@
 }
 
 DEFUN ("assq", Fassq, Sassq, 2, 2, 0,
-  /* Return non-nil if KEY is `eq' to the car of an element of LIST.
+       doc: /* Return non-nil if KEY is `eq' to the car of an element of LIST.
 The value is actually the element of LIST whose car is KEY.
-Elements of LIST that are not conses are ignored.  */
-       (key, list))
+Elements of LIST that are not conses are ignored.  */)
+     (key, list)
      Lisp_Object key, list;
 {
   Lisp_Object result;
@@ -1431,9 +1430,9 @@
 }
 
 DEFUN ("assoc", Fassoc, Sassoc, 2, 2, 0,
-  /* Return non-nil if KEY is `equal' to the car of an element of LIST.
-The value is actually the element of LIST whose car equals KEY.  */
-       (key, list))
+       doc: /* Return non-nil if KEY is `equal' to the car of an element of LIST.
+The value is actually the element of LIST whose car equals KEY.  */)
+       (key, list)
      Lisp_Object key, list;
 {
   Lisp_Object result, car;
@@ -1475,9 +1474,9 @@
 }
 
 DEFUN ("rassq", Frassq, Srassq, 2, 2, 0,
-  /* Return non-nil if KEY is `eq' to the cdr of an element of LIST.
-The value is actually the element of LIST whose cdr is KEY.  */
-       (key, list))
+       doc: /* Return non-nil if KEY is `eq' to the cdr of an element of LIST.
+The value is actually the element of LIST whose cdr is KEY.  */)
+     (key, list)
      register Lisp_Object key;
      Lisp_Object list;
 {
@@ -1517,9 +1516,9 @@
 }
 
 DEFUN ("rassoc", Frassoc, Srassoc, 2, 2, 0,
-  /* Return non-nil if KEY is `equal' to the cdr of an element of LIST.
-The value is actually the element of LIST whose cdr equals KEY.  */
-       (key, list))
+       doc: /* Return non-nil if KEY is `equal' to the cdr of an element of LIST.
+The value is actually the element of LIST whose cdr equals KEY.  */)
+     (key, list)
      Lisp_Object key, list;
 {
   Lisp_Object result, cdr;
@@ -1561,12 +1560,12 @@
 }
 
 DEFUN ("delq", Fdelq, Sdelq, 2, 2, 0,
-  /* Delete by side effect any occurrences of ELT as a member of LIST.
+       doc: /* Delete by side effect any occurrences of ELT as a member of LIST.
 The modified LIST is returned.  Comparison is done with `eq'.
 If the first member of LIST is ELT, there is no way to remove it by side effect;
 therefore, write `(setq foo (delq element foo))'
-to be sure of changing the value of `foo'.  */
-       (elt, list))
+to be sure of changing the value of `foo'.  */)
+     (elt, list)
      register Lisp_Object elt;
      Lisp_Object list;
 {
@@ -1596,14 +1595,14 @@
 }
 
 DEFUN ("delete", Fdelete, Sdelete, 2, 2, 0,
-  /* Delete by side effect any occurrences of ELT as a member of SEQ.
+       doc: /* Delete by side effect any occurrences of ELT as a member of SEQ.
 SEQ must be a list, a vector, or a string.
 The modified SEQ is returned.  Comparison is done with `equal'.
 If SEQ is not a list, or the first member of SEQ is ELT, deleting it
 is not a side effect; it is simply using a different sequence.
 Therefore, write `(setq foo (delete element foo))'
-to be sure of changing the value of `foo'.  */
-       (elt, seq))
+to be sure of changing the value of `foo'.  */)
+     (elt, seq)
      Lisp_Object elt, seq;
 {
   if (VECTORP (seq))
@@ -1720,9 +1719,9 @@
 }
 
 DEFUN ("nreverse", Fnreverse, Snreverse, 1, 1, 0,
-       /* Reverse LIST by modifying cdr pointers.
-Returns the beginning of the reversed list.  */
-       (list))
+       doc: /* Reverse LIST by modifying cdr pointers.
+Returns the beginning of the reversed list.  */)
+     (list)
      Lisp_Object list;
 {
   register Lisp_Object prev, tail, next;
@@ -1744,9 +1743,9 @@
 }
 
 DEFUN ("reverse", Freverse, Sreverse, 1, 1, 0,
-  /* Reverse LIST, copying.  Returns the beginning of the reversed list.
-See also the function `nreverse', which is used more often.  */
-       (list))
+    doc: /* Reverse LIST, copying.  Returns the beginning of the reversed list.
+See also the function `nreverse', which is used more often.  */)
+     (list)
      Lisp_Object list;
 {
   Lisp_Object new;
@@ -1761,11 +1760,11 @@
 Lisp_Object merge ();
 
 DEFUN ("sort", Fsort, Ssort, 2, 2, 0,
-  /* Sort LIST, stably, comparing elements using PREDICATE.
+       doc: /* Sort LIST, stably, comparing elements using PREDICATE.
 Returns the sorted list.  LIST is modified by side effects.
 PREDICATE is called with two elements of LIST, and should return t
-if the first element is "less" than the second.  */
-       (list, predicate))
+if the first element is "less" than the second.  */)
+     (list, predicate)
      Lisp_Object list, predicate;
 {
   Lisp_Object front, back;
@@ -1853,12 +1852,12 @@
 
 
 DEFUN ("plist-get", Fplist_get, Splist_get, 2, 2, 0,
-  /* Extract a value from a property list.
+       doc: /* Extract a value from a property list.
 PLIST is a property list, which is a list of the form
 \(PROP1 VALUE1 PROP2 VALUE2...).  This function returns the value
 corresponding to the given PROP, or nil if PROP is not
-one of the properties on the list.  */
-       (plist, prop))
+one of the properties on the list.  */)
+     (plist, prop)
      Lisp_Object plist;
      Lisp_Object prop;
 {
@@ -1884,9 +1883,9 @@
 }
 
 DEFUN ("get", Fget, Sget, 2, 2, 0,
-  /* Return the value of SYMBOL's PROPNAME property.
-This is the last value stored with `(put SYMBOL PROPNAME VALUE)'.  */
-       (symbol, propname))
+       doc: /* Return the value of SYMBOL's PROPNAME property.
+This is the last value stored with `(put SYMBOL PROPNAME VALUE)'.  */)
+     (symbol, propname)
      Lisp_Object symbol, propname;
 {
   CHECK_SYMBOL (symbol, 0);
@@ -1894,14 +1893,14 @@
 }
 
 DEFUN ("plist-put", Fplist_put, Splist_put, 3, 3, 0,
-  /* Change value in PLIST of PROP to VAL.
+       doc: /* Change value in PLIST of PROP to VAL.
 PLIST is a property list, which is a list of the form
 \(PROP1 VALUE1 PROP2 VALUE2 ...).  PROP is a symbol and VAL is any object.
 If PROP is already a property on the list, its value is set to VAL,
 otherwise the new PROP VAL pair is added.  The new plist is returned;
 use `(setq x (plist-put x prop val))' to be sure to use the new value.
-The PLIST is modified by side effects.  */
-       (plist, prop, val))
+The PLIST is modified by side effects.  */)
+     (plist, prop, val)
      Lisp_Object plist;
      register Lisp_Object prop;
      Lisp_Object val;
@@ -1930,9 +1929,9 @@
 }
 
 DEFUN ("put", Fput, Sput, 3, 3, 0,
-  /* Store SYMBOL's PROPNAME property with value VALUE.
-It can be retrieved with `(get SYMBOL PROPNAME)'.  */
-       (symbol, propname, value))
+       doc: /* Store SYMBOL's PROPNAME property with value VALUE.
+It can be retrieved with `(get SYMBOL PROPNAME)'.  */)
+     (symbol, propname, value)
      Lisp_Object symbol, propname, value;
 {
   CHECK_SYMBOL (symbol, 0);
@@ -1942,14 +1941,14 @@
 }
 
 DEFUN ("equal", Fequal, Sequal, 2, 2, 0,
-  /* Return t if two Lisp objects have similar structure and contents.
+       doc: /* Return t if two Lisp objects have similar structure and contents.
 They must have the same data type.
 Conses are compared by comparing the cars and the cdrs.
 Vectors and strings are compared element by element.
 Numbers are compared by value, but integers cannot equal floats.
  (Use `=' if you want integers and floats to be able to be equal.)
-Symbols must match exactly.  */
-       (o1, o2))
+Symbols must match exactly.  */)
+     (o1, o2)
      register Lisp_Object o1, o2;
 {
   return internal_equal (o1, o2, 0) ? Qt : Qnil;
@@ -2071,9 +2070,9 @@
 extern Lisp_Object Fmake_char_internal ();
 
 DEFUN ("fillarray", Ffillarray, Sfillarray, 2, 2, 0,
-  /* Store each element of ARRAY with ITEM.
-ARRAY is a vector, string, char-table, or bool-vector.  */
-       (array, item))
+       doc: /* Store each element of ARRAY with ITEM.
+ARRAY is a vector, string, char-table, or bool-vector.  */)
+     (array, item)
      Lisp_Object array, item;
 {
   register int size, index, charval;
@@ -2142,8 +2141,8 @@
 
 DEFUN ("char-table-subtype", Fchar_table_subtype, Schar_table_subtype,
        1, 1, 0,
-  /* Return the subtype of char-table CHAR-TABLE.  The value is a symbol.  */
-       (char_table))
+       doc: /* Return the subtype of char-table CHAR-TABLE.  The value is a symbol.  */)
+     (char_table)
      Lisp_Object char_table;
 {
   CHECK_CHAR_TABLE (char_table, 0);
@@ -2153,12 +2152,12 @@
 
 DEFUN ("char-table-parent", Fchar_table_parent, Schar_table_parent,
        1, 1, 0,
-  /* Return the parent char-table of CHAR-TABLE.
+       doc: /* Return the parent char-table of CHAR-TABLE.
 The value is either nil or another char-table.
 If CHAR-TABLE holds nil for a given character,
 then the actual applicable value is inherited from the parent char-table
-\(or from its parents, if necessary).  */
-       (char_table))
+\(or from its parents, if necessary).  */)
+     (char_table)
      Lisp_Object char_table;
 {
   CHECK_CHAR_TABLE (char_table, 0);
@@ -2168,9 +2167,9 @@
 
 DEFUN ("set-char-table-parent", Fset_char_table_parent, Sset_char_table_parent,
        2, 2, 0,
-  /* Set the parent char-table of CHAR-TABLE to PARENT.
-PARENT must be either nil or another char-table.  */
-       (char_table, parent))
+       doc: /* Set the parent char-table of CHAR-TABLE to PARENT.
+PARENT must be either nil or another char-table.  */)
+     (char_table, parent)
      Lisp_Object char_table, parent;
 {
   Lisp_Object temp;
@@ -2193,8 +2192,8 @@
 
 DEFUN ("char-table-extra-slot", Fchar_table_extra_slot, Schar_table_extra_slot,
        2, 2, 0,
-       /* Return the value of CHAR-TABLE's extra-slot number N.  */
-       (char_table, n))
+       doc: /* Return the value of CHAR-TABLE's extra-slot number N.  */)
+     (char_table, n)
      Lisp_Object char_table, n;
 {
   CHECK_CHAR_TABLE (char_table, 1);
@@ -2209,8 +2208,8 @@
 DEFUN ("set-char-table-extra-slot", Fset_char_table_extra_slot,
        Sset_char_table_extra_slot,
        3, 3, 0,
-       /* Set CHAR-TABLE's extra-slot number N to VALUE.  */
-       (char_table, n, value))
+       doc: /* Set CHAR-TABLE's extra-slot number N to VALUE.  */)
+     (char_table, n, value)
      Lisp_Object char_table, n, value;
 {
   CHECK_CHAR_TABLE (char_table, 1);
@@ -2224,11 +2223,11 @@
 
 DEFUN ("char-table-range", Fchar_table_range, Schar_table_range,
        2, 2, 0,
-  /* Return the value in CHAR-TABLE for a range of characters RANGE.
+       doc: /* Return the value in CHAR-TABLE for a range of characters RANGE.
 RANGE should be nil (for the default value)
 a vector which identifies a character set or a row of a character set,
-a character set name, or a character code.  */
-       (char_table, range))
+a character set name, or a character code.  */)
+     (char_table, range)
      Lisp_Object char_table, range;
 {
   CHECK_CHAR_TABLE (char_table, 0);
@@ -2270,11 +2269,11 @@
 
 DEFUN ("set-char-table-range", Fset_char_table_range, Sset_char_table_range,
        3, 3, 0,
-  /* Set the value in CHAR-TABLE for a range of characters RANGE to VALUE.
+       doc: /* Set the value in CHAR-TABLE for a range of characters RANGE to VALUE.
 RANGE should be t (for all characters), nil (for the default value)
 a vector which identifies a character set or a row of a character set,
-a coding system, or a character code.  */
-       (char_table, range, value))
+a coding system, or a character code.  */)
+     (char_table, range, value)
      Lisp_Object char_table, range, value;
 {
   int i;
@@ -2324,10 +2323,10 @@
 
 DEFUN ("set-char-table-default", Fset_char_table_default,
        Sset_char_table_default, 3, 3, 0,
-  /* Set the default value in CHAR-TABLE for a generic character CHAR to VALUE.
+       doc: /* Set the default value in CHAR-TABLE for a generic character CHAR to VALUE.
 The generic character specifies the group of characters.
-See also the documentation of make-char.  */
-       (char_table, ch, value))
+See also the documentation of make-char.  */)
+     (char_table, ch, value)
      Lisp_Object char_table, ch, value;
 {
   int c, charset, code1, code2;
@@ -2414,9 +2413,8 @@
 }
 
 DEFUN ("optimize-char-table", Foptimize_char_table, Soptimize_char_table,
-       1, 1, 0,
-       /* Optimize char table TABLE.  */
-       (table))
+       1, 1, 0, doc: /* Optimize char table TABLE.  */)
+     (table)
      Lisp_Object table;
 {
   Lisp_Object elt;
@@ -2523,10 +2521,10 @@
 
 DEFUN ("map-char-table", Fmap_char_table, Smap_char_table,
        2, 2, 0,
-  /* Call FUNCTION for each (normal and generic) characters in CHAR-TABLE.
+       doc: /* Call FUNCTION for each (normal and generic) characters in CHAR-TABLE.
 FUNCTION is called with two arguments--a key and a value.
-The key is always a possible IDX argument to `aref'.  */
-       (function, char_table))
+The key is always a possible IDX argument to `aref'.  */)
+     (function, char_table)
      Lisp_Object function, char_table;
 {
   /* The depth of char table is at most 3. */
@@ -2589,9 +2587,9 @@
 }
 
 DEFUN ("nconc", Fnconc, Snconc, 0, MANY, 0,
-       /* Concatenate any number of lists by altering them.
-Only the last argument is not altered, and need not be a list.  */
-       (nargs, args))
+       doc: /* Concatenate any number of lists by altering them.
+Only the last argument is not altered, and need not be a list.  */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -2718,11 +2716,11 @@
 }
 
 DEFUN ("mapconcat", Fmapconcat, Smapconcat, 3, 3, 0,
-  /* Apply FUNCTION to each element of SEQUENCE, and concat the results as strings.
+       doc: /* Apply FUNCTION to each element of SEQUENCE, and concat the results as strings.
 In between each pair of results, stick in SEPARATOR.  Thus, " " as
 SEPARATOR results in spaces between the values returned by FUNCTION.
-SEQUENCE may be a list, a vector, a bool-vector, or a string.  */
-       (function, sequence, separator))
+SEQUENCE may be a list, a vector, a bool-vector, or a string.  */)
+     (function, sequence, separator)
      Lisp_Object function, sequence, separator;
 {
   Lisp_Object len;
@@ -2753,10 +2751,10 @@
 }
 
 DEFUN ("mapcar", Fmapcar, Smapcar, 2, 2, 0,
-  /* Apply FUNCTION to each element of SEQUENCE, and make a list of the results.
+       doc: /* Apply FUNCTION to each element of SEQUENCE, and make a list of the results.
 The result is a list just as long as SEQUENCE.
-SEQUENCE may be a list, a vector, a bool-vector, or a string.  */
-       (function, sequence))
+SEQUENCE may be a list, a vector, a bool-vector, or a string.  */)
+     (function, sequence)
      Lisp_Object function, sequence;
 {
   register Lisp_Object len;
@@ -2773,10 +2771,10 @@
 }
 
 DEFUN ("mapc", Fmapc, Smapc, 2, 2, 0,
-  /* Apply FUNCTION to each element of SEQUENCE for side effects only.
+       doc: /* Apply FUNCTION to each element of SEQUENCE for side effects only.
 Unlike `mapcar', don't accumulate the results.  Return SEQUENCE.
-SEQUENCE may be a list, a vector, a bool-vector, or a string.  */
-       (function, sequence))
+SEQUENCE may be a list, a vector, a bool-vector, or a string.  */)
+     (function, sequence)
      Lisp_Object function, sequence;
 {
   register int leni;
@@ -2790,7 +2788,7 @@
 /* Anything that calls this function must protect from GC!  */
 
 DEFUN ("y-or-n-p", Fy_or_n_p, Sy_or_n_p, 1, 1, 0,
-  /* Ask user a "y or n" question.  Return t if answer is "y".
+       doc: /* Ask user a "y or n" question.  Return t if answer is "y".
 Takes one argument, which is the string to display to ask the question.
 It should end in a space; `y-or-n-p' adds `(y or n) ' to it.
 No confirmation of the answer is requested; a single character is enough.
@@ -2800,8 +2798,8 @@
 `recenter', and `quit'.\)
 
 Under a windowing system a dialog box will be used if `last-nonmenu-event'
-is nil and `use-dialog-box' is non-nil.  */
-       (prompt))
+is nil and `use-dialog-box' is non-nil.  */)
+     (prompt)
      Lisp_Object prompt;
 {
   register Lisp_Object obj, key, def, map;
@@ -2930,15 +2928,15 @@
 /* Anything that calls this function must protect from GC!  */
 
 DEFUN ("yes-or-no-p", Fyes_or_no_p, Syes_or_no_p, 1, 1, 0,
-  /* Ask user a yes-or-no question.  Return t if answer is yes.
+       doc: /* Ask user a yes-or-no question.  Return t if answer is yes.
 Takes one argument, which is the string to display to ask the question.
 It should end in a space; `yes-or-no-p' adds `(yes or no) ' to it.
 The user must confirm the answer with RET,
 and can edit it until it has been confirmed.
 
 Under a windowing system a dialog box will be used if `last-nonmenu-event'
-is nil, and `use-dialog-box' is non-nil.  */
-       (prompt))
+is nil, and `use-dialog-box' is non-nil.  */)
+     (prompt)
      Lisp_Object prompt;
 {
   register Lisp_Object ans;
@@ -2995,7 +2993,7 @@
 }
 
 DEFUN ("load-average", Fload_average, Sload_average, 0, 1, 0,
-  /* Return list of 1 minute, 5 minute and 15 minute load averages.
+       doc: /* Return list of 1 minute, 5 minute and 15 minute load averages.
      
 Each of the three load averages is multiplied by 100, then converted
 to integer.
@@ -3004,8 +3002,8 @@
 These floats are not multiplied by 100.
 
 If the 5-minute or 15-minute load averages are not available, return a
-shortened list, containing only those averages which are available.  */
-       (use_floats))
+shortened list, containing only those averages which are available.  */)
+     (use_floats)
      Lisp_Object use_floats;
 {
   double load_ave[3];
@@ -3030,14 +3028,14 @@
 extern Lisp_Object Vafter_load_alist;
 
 DEFUN ("featurep", Ffeaturep, Sfeaturep, 1, 2, 0,
-  /* Returns t if FEATURE is present in this Emacs.
+       doc: /* Returns t if FEATURE is present in this Emacs.
      
 Use this to conditionalize execution of lisp code based on the
 presence or absence of emacs or environment extensions.
 Use `provide' to declare that a feature is available.  This function
 looks at the value of the variable `features'.  The optional argument
-SUBFEATURE can be used to check a specific subfeature of FEATURE.  */
-       (feature, subfeature))
+SUBFEATURE can be used to check a specific subfeature of FEATURE.  */)
+     (feature, subfeature)
      Lisp_Object feature, subfeature;
 {
   register Lisp_Object tem;
@@ -3049,10 +3047,10 @@
 }
 
 DEFUN ("provide", Fprovide, Sprovide, 1, 2, 0,
-  /* Announce that FEATURE is a feature of the current Emacs.
+       doc: /* Announce that FEATURE is a feature of the current Emacs.
 The optional argument SUBFEATURES should be a list of symbols listing
-particular subfeatures supported in this version of FEATURE.  */
-       (feature, subfeatures))
+particular subfeatures supported in this version of FEATURE.  */)
+     (feature, subfeatures)
      Lisp_Object feature, subfeatures;
 {
   register Lisp_Object tem;
@@ -3075,7 +3073,7 @@
 }
 
 DEFUN ("require", Frequire, Srequire, 1, 3, 0,
-  /* If feature FEATURE is not loaded, load it from FILENAME.
+       doc: /* If feature FEATURE is not loaded, load it from FILENAME.
 If FEATURE is not a member of the list `features', then the feature
 is not loaded; so load the file FILENAME.
 If FILENAME is omitted, the printname of FEATURE is used as the file name,
@@ -3084,8 +3082,8 @@
 If the optional third argument NOERROR is non-nil,
 then return nil if the file is not found instead of signaling an error.
 Normally the return value is FEATURE.
-The normal messages at start and end of loading FILENAME are suppressed.  */
-       (feature, filename, noerror))
+The normal messages at start and end of loading FILENAME are suppressed.  */)
+     (feature, filename, noerror)
      Lisp_Object feature, filename, noerror;
 {
   register Lisp_Object tem;
@@ -3128,13 +3126,13 @@
    for the sole reason of efficiency.  */
 
 DEFUN ("plist-member", Fplist_member, Splist_member, 2, 2, 0,
-  /* Return non-nil if PLIST has the property PROP.
+       doc: /* Return non-nil if PLIST has the property PROP.
 PLIST is a property list, which is a list of the form
 \(PROP1 VALUE1 PROP2 VALUE2 ...\).  PROP is a symbol.
 Unlike `plist-get', this allows you to distinguish between a missing
 property and a property with the value nil.
-The value is actually the tail of PLIST whose car is PROP.  */
-       (plist, prop))
+The value is actually the tail of PLIST whose car is PROP.  */)
+     (plist, prop)
      Lisp_Object plist, prop;
 {
   while (CONSP (plist) && !EQ (XCAR (plist), prop))
@@ -3147,9 +3145,9 @@
 }
 
 DEFUN ("widget-put", Fwidget_put, Swidget_put, 3, 3, 0,
-  /* In WIDGET, set PROPERTY to VALUE.
-The value can later be retrieved with `widget-get'.  */
-       (widget, property, value))
+       doc: /* In WIDGET, set PROPERTY to VALUE.
+The value can later be retrieved with `widget-get'.  */)
+     (widget, property, value)
      Lisp_Object widget, property, value;
 {
   CHECK_CONS (widget, 1);
@@ -3158,10 +3156,10 @@
 }
 
 DEFUN ("widget-get", Fwidget_get, Swidget_get, 2, 2, 0,
-  /* In WIDGET, get the value of PROPERTY.
+       doc: /* In WIDGET, get the value of PROPERTY.
 The value could either be specified when the widget was created, or
-later with `widget-put'.  */
-       (widget, property))
+later with `widget-put'.  */)
+     (widget, property)
      Lisp_Object widget, property;
 {
   Lisp_Object tmp;
@@ -3185,9 +3183,9 @@
 }
 
 DEFUN ("widget-apply", Fwidget_apply, Swidget_apply, 2, MANY, 0,
-  /* Apply the value of WIDGET's PROPERTY to the widget itself.
-ARGS are passed as extra arguments to the function.  */
-       (nargs, args))
+       doc: /* Apply the value of WIDGET's PROPERTY to the widget itself.
+ARGS are passed as extra arguments to the function.  */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -3292,11 +3290,11 @@
 
 DEFUN ("base64-encode-region", Fbase64_encode_region, Sbase64_encode_region,
        2, 3, "r",
-       /* Base64-encode the region between BEG and END.
+       doc: /* Base64-encode the region between BEG and END.
 Return the length of the encoded text.
 Optional third argument NO-LINE-BREAK means do not break long lines
-into shorter lines.  */
-       (beg, end, no_line_break))
+into shorter lines.  */)
+     (beg, end, no_line_break)
      Lisp_Object beg, end, no_line_break;
 {
   char *encoded;
@@ -3357,10 +3355,10 @@
 
 DEFUN ("base64-encode-string", Fbase64_encode_string, Sbase64_encode_string,
        1, 2, 0,
-       /* Base64-encode STRING and return the result.
+       doc: /* Base64-encode STRING and return the result.
 Optional second argument NO-LINE-BREAK means do not break long lines
-into shorter lines.  */
-       (string, no_line_break))
+into shorter lines.  */)
+     (string, no_line_break)
      Lisp_Object string, no_line_break;
 {
   int allength, length, encoded_length;
@@ -3499,10 +3497,10 @@
 
 DEFUN ("base64-decode-region", Fbase64_decode_region, Sbase64_decode_region,
        2, 2, "r",
-       /* Base64-decode the region between BEG and END.
+       doc: /* Base64-decode the region between BEG and END.
 Return the length of the decoded text.
-If the region can't be decoded, signal an error and don't modify the buffer.  */
-       (beg, end))
+If the region can't be decoded, signal an error and don't modify the buffer.  */)
+     (beg, end)
      Lisp_Object beg, end;
 {
   int ibeg, iend, length, allength;
@@ -3565,8 +3563,8 @@
 
 DEFUN ("base64-decode-string", Fbase64_decode_string, Sbase64_decode_string,
        1, 1, 0,
-       /* Base64-decode STRING and return the result.  */
-       (string))
+       doc: /* Base64-decode STRING and return the result.  */)
+     (string)
      Lisp_Object string;
 {
   char *decoded;
@@ -4669,8 +4667,8 @@
 
 
 DEFUN ("sxhash", Fsxhash, Ssxhash, 1, 1, 0,
-       /* Compute a hash code for OBJ and return it as integer.  */
-       (obj))
+       doc: /* Compute a hash code for OBJ and return it as integer.  */)
+     (obj)
      Lisp_Object obj;
 {
   unsigned hash = sxhash (obj, 0);;
@@ -4679,7 +4677,7 @@
 
 
 DEFUN ("make-hash-table", Fmake_hash_table, Smake_hash_table, 0, MANY, 0,
-       /* Create and return a new hash table.
+       doc: /* Create and return a new hash table.
 	  
 Arguments are specified as keyword/argument pairs.  The following
 arguments are defined:
@@ -4707,8 +4705,8 @@
 hash table when there are no non-weak references pointing to their
 key, value, one of key or value, or both key and value, depending on
 WEAK.  WEAK t is equivalent to `key-and-value'.  Default value of WEAK
-is nil.  */
-       (nargs, args))
+is nil.  */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -4793,8 +4791,8 @@
 
 
 DEFUN ("copy-hash-table", Fcopy_hash_table, Scopy_hash_table, 1, 1, 0,
-       /* Return a copy of hash table TABLE.  */
-       (table))
+       doc: /* Return a copy of hash table TABLE.  */)
+     (table)
      Lisp_Object table;
 {
   return copy_hash_table (check_hash_table (table));
@@ -4802,12 +4800,12 @@
 
 
 DEFUN ("makehash", Fmakehash, Smakehash, 0, 1, 0,
-       /* Create a new hash table.
+       doc: /* Create a new hash table.
 	  
 Optional first argument TEST specifies how to compare keys in the
 table.  Predefined tests are `eq', `eql', and `equal'.  Default is
-`eql'.  New tests can be defined with `define-hash-table-test'.  */
-       (test))
+`eql'.  New tests can be defined with `define-hash-table-test'.  */)
+     (test)
      Lisp_Object test;
 {
   Lisp_Object args[2];
@@ -4818,8 +4816,8 @@
 
 
 DEFUN ("hash-table-count", Fhash_table_count, Shash_table_count, 1, 1, 0,
-       /* Return the number of elements in TABLE.  */
-       (table))
+       doc: /* Return the number of elements in TABLE.  */)
+     (table)
      Lisp_Object table;
 {
   return check_hash_table (table)->count;
@@ -4828,8 +4826,8 @@
 
 DEFUN ("hash-table-rehash-size", Fhash_table_rehash_size,
        Shash_table_rehash_size, 1, 1, 0,
-       /* Return the current rehash size of TABLE.  */
-       (table))
+       doc: /* Return the current rehash size of TABLE.  */)
+     (table)
      Lisp_Object table;
 {
   return check_hash_table (table)->rehash_size;
@@ -4838,8 +4836,8 @@
 
 DEFUN ("hash-table-rehash-threshold", Fhash_table_rehash_threshold,
        Shash_table_rehash_threshold, 1, 1, 0,
-       /* Return the current rehash threshold of TABLE.  */
-       (table))
+       doc: /* Return the current rehash threshold of TABLE.  */)
+     (table)
      Lisp_Object table;
 {
   return check_hash_table (table)->rehash_threshold;
@@ -4847,11 +4845,11 @@
 
 
 DEFUN ("hash-table-size", Fhash_table_size, Shash_table_size, 1, 1, 0,
-       /* Return the size of TABLE.
+       doc: /* Return the size of TABLE.
 The size can be used as an argument to `make-hash-table' to create
 a hash table than can hold as many elements of TABLE holds
-without need for resizing.  */
-       (table))
+without need for resizing.  */)
+     (table)
        Lisp_Object table;
 {
   struct Lisp_Hash_Table *h = check_hash_table (table);
@@ -4860,8 +4858,8 @@
 
 
 DEFUN ("hash-table-test", Fhash_table_test, Shash_table_test, 1, 1, 0,
-       /* Return the test TABLE uses.  */
-       (table))
+       doc: /* Return the test TABLE uses.  */)
+     (table)
      Lisp_Object table;
 {
   return check_hash_table (table)->test;
@@ -4870,8 +4868,8 @@
 
 DEFUN ("hash-table-weakness", Fhash_table_weakness, Shash_table_weakness,
        1, 1, 0,
-       /* Return the weakness of TABLE.  */
-       (table))
+       doc: /* Return the weakness of TABLE.  */)
+     (table)
      Lisp_Object table;
 {
   return check_hash_table (table)->weak;
@@ -4879,8 +4877,8 @@
 
 
 DEFUN ("hash-table-p", Fhash_table_p, Shash_table_p, 1, 1, 0,
-       /* Return t if OBJ is a Lisp hash table object.  */
-       (obj))
+       doc: /* Return t if OBJ is a Lisp hash table object.  */)
+     (obj)
      Lisp_Object obj;
 {
   return HASH_TABLE_P (obj) ? Qt : Qnil;
@@ -4888,8 +4886,8 @@
 
 
 DEFUN ("clrhash", Fclrhash, Sclrhash, 1, 1, 0,
-       /* Clear hash table TABLE.  */
-       (table))
+       doc: /* Clear hash table TABLE.  */)
+     (table)
      Lisp_Object table;
 {
   hash_clear (check_hash_table (table));
@@ -4898,9 +4896,9 @@
 
 
 DEFUN ("gethash", Fgethash, Sgethash, 2, 3, 0,
-       /* Look up KEY in TABLE and return its associated value.
-If KEY is not found, return DFLT which defaults to nil.  */
-       (key, table, dflt))
+       doc: /* Look up KEY in TABLE and return its associated value.
+If KEY is not found, return DFLT which defaults to nil.  */)
+     (key, table, dflt)
      Lisp_Object key, table, dflt;
 {
   struct Lisp_Hash_Table *h = check_hash_table (table);
@@ -4910,10 +4908,10 @@
 
 
 DEFUN ("puthash", Fputhash, Sputhash, 3, 3, 0,
-       /* Associate KEY with VALUE in hash table TABLE.
+       doc: /* Associate KEY with VALUE in hash table TABLE.
 If KEY is already present in table, replace its current value with
-VALUE.  */
-       (key, value, table))
+VALUE.  */)
+     (key, value, table)
      Lisp_Object key, value, table;
 {
   struct Lisp_Hash_Table *h = check_hash_table (table);
@@ -4931,8 +4929,8 @@
 
 
 DEFUN ("remhash", Fremhash, Sremhash, 2, 2, 0,
-       /* Remove KEY from TABLE.  */
-       (key, table))
+       doc: /* Remove KEY from TABLE.  */)
+     (key, table)
      Lisp_Object key, table;
 {
   struct Lisp_Hash_Table *h = check_hash_table (table);
@@ -4942,9 +4940,9 @@
 
 
 DEFUN ("maphash", Fmaphash, Smaphash, 2, 2, 0,
-       /* Call FUNCTION for all entries in hash table TABLE.
-FUNCTION is called with 2 arguments KEY and VALUE.  */
-       (function, table))
+       doc: /* Call FUNCTION for all entries in hash table TABLE.
+FUNCTION is called with 2 arguments KEY and VALUE.  */)
+     (function, table)
      Lisp_Object function, table;
 {
   struct Lisp_Hash_Table *h = check_hash_table (table);
@@ -4966,7 +4964,7 @@
 
 DEFUN ("define-hash-table-test", Fdefine_hash_table_test,
        Sdefine_hash_table_test, 3, 3, 0,
-       /* Define a new hash table test with name NAME, a symbol.
+       doc: /* Define a new hash table test with name NAME, a symbol.
 	  
 In hash tables created with NAME specified as test, use TEST to
 compare keys, and HASH for computing hash codes of keys.
@@ -4975,8 +4973,8 @@
 both arguments are the same.  HASH must be a function taking one
 argument and return an integer that is the hash code of the argument.
 Hash code computation should use the whole value range of integers,
-including negative integers.  */
-       (name, test, hash))
+including negative integers.  */)
+     (name, test, hash)
      Lisp_Object name, test, hash;
 {
   return Fput (name, Qhash_table_test, list2 (test, hash));
@@ -4992,7 +4990,7 @@
 #include "coding.h"
 
 DEFUN ("md5", Fmd5, Smd5, 1, 5, 0,
-       /* Return MD5 message digest of OBJECT, a buffer or string.
+       doc: /* Return MD5 message digest of OBJECT, a buffer or string.
 	  
 A message digest is a cryptographic checksum of a document, and the
 algorithm to calculate it is defined in RFC 1321.
@@ -5017,8 +5015,8 @@
 command `prefer-coding-system') is used.
 
 If NOERROR is non-nil, silently assume the `raw-text' coding if the
-guesswork fails.  Normally, an error is signaled in such case.  */
-       (object, start, end, coding_system, noerror))
+guesswork fails.  Normally, an error is signaled in such case.  */)
+     (object, start, end, coding_system, noerror)
      Lisp_Object object, start, end, coding_system, noerror;
 {
   unsigned char digest[16];
@@ -5273,15 +5271,15 @@
 
   Fset (Qyes_or_no_p_history, Qnil);
 
-  DEFVAR_LISP ("features", &Vfeatures
-    /* A list of symbols which are the features of the executing emacs.
+  DEFVAR_LISP ("features", &Vfeatures,
+    doc: /* A list of symbols which are the features of the executing emacs.
 Used by `featurep' and `require', and altered by `provide'.  */);
   Vfeatures = Qnil;
   Qsubfeatures = intern ("subfeatures");
   staticpro (&Qsubfeatures);
 
-  DEFVAR_BOOL ("use-dialog-box", &use_dialog_box
-    /* *Non-nil means mouse commands use dialog boxes to ask questions.
+  DEFVAR_BOOL ("use-dialog-box", &use_dialog_box,
+    doc: /* *Non-nil means mouse commands use dialog boxes to ask questions.
 This applies to y-or-n and yes-or-no questions asked by commands
 invoked by mouse clicks and mouse menu items.  */);
   use_dialog_box = 1;