changeset 40123:e528f2adeed4

Change doc-string comments to `new style' [w/`doc:' keyword].
author Pavel Janík <Pavel@Janik.cz>
date Sun, 21 Oct 2001 12:13:46 +0000
parents 4a487543a226
children 9031427edfa3
files src/data.c src/fileio.c src/indent.c src/print.c src/search.c src/sound.c src/sunfns.c src/textprop.c src/undo.c src/xselect.c
diffstat 10 files changed, 1422 insertions(+), 1407 deletions(-) [+]
line wrap: on
line diff
--- a/src/data.c	Sun Oct 21 12:08:54 2001 +0000
+++ b/src/data.c	Sun Oct 21 12:13:46 2001 +0000
@@ -177,8 +177,8 @@
 /* Data type predicates */
 
 DEFUN ("eq", Feq, Seq, 2, 2, 0,
-  "Return t if the two args are the same Lisp object.")
-  (obj1, obj2)
+       doc: /* Return t if the two args are the same Lisp object.  */)
+     (obj1, obj2)
      Lisp_Object obj1, obj2;
 {
   if (EQ (obj1, obj2))
@@ -186,8 +186,9 @@
   return Qnil;
 }
 
-DEFUN ("null", Fnull, Snull, 1, 1, 0, "Return t if OBJECT is nil.")
-  (object)
+DEFUN ("null", Fnull, Snull, 1, 1, 0,
+       doc: /* Return t if OBJECT is nil.  */)
+     (object)
      Lisp_Object object;
 {
   if (NILP (object))
@@ -196,10 +197,10 @@
 }
 
 DEFUN ("type-of", Ftype_of, Stype_of, 1, 1, 0,
-  "Return a symbol representing the type of OBJECT.\n\
-The symbol returned names the object's basic type;\n\
-for example, (type-of 1) returns `integer'.")
-  (object)
+       doc: /* Return a symbol representing the type of OBJECT.
+The symbol returned names the object's basic type;
+for example, (type-of 1) returns `integer'.  */)
+     (object)
      Lisp_Object object;
 {
   switch (XGCTYPE (object))
@@ -259,8 +260,9 @@
     }
 }
 
-DEFUN ("consp", Fconsp, Sconsp, 1, 1, 0, "Return t if OBJECT is a cons cell.")
-  (object)
+DEFUN ("consp", Fconsp, Sconsp, 1, 1, 0,
+       doc: /* Return t if OBJECT is a cons cell.  */)
+     (object)
      Lisp_Object object;
 {
   if (CONSP (object))
@@ -269,8 +271,8 @@
 }
 
 DEFUN ("atom", Fatom, Satom, 1, 1, 0,
-       "Return t if OBJECT is not a cons cell.  This includes nil.")
-  (object)
+       doc: /* Return t if OBJECT is not a cons cell.  This includes nil.  */)
+     (object)
      Lisp_Object object;
 {
   if (CONSP (object))
@@ -279,8 +281,8 @@
 }
 
 DEFUN ("listp", Flistp, Slistp, 1, 1, 0,
-       "Return t if OBJECT is a list.  This includes nil.")
-  (object)
+       doc: /* Return t if OBJECT is a list.  This includes nil.  */)
+     (object)
      Lisp_Object object;
 {
   if (CONSP (object) || NILP (object))
@@ -289,8 +291,8 @@
 }
 
 DEFUN ("nlistp", Fnlistp, Snlistp, 1, 1, 0,
-       "Return t if OBJECT is not a list.  Lists include nil.")
-  (object)
+       doc: /* Return t if OBJECT is not a list.  Lists include nil.  */)
+     (object)
      Lisp_Object object;
 {
   if (CONSP (object) || NILP (object))
@@ -299,8 +301,8 @@
 }
 
 DEFUN ("symbolp", Fsymbolp, Ssymbolp, 1, 1, 0,
-       "Return t if OBJECT is a symbol.")
-  (object)
+       doc: /* Return t if OBJECT is a symbol.  */)
+     (object)
      Lisp_Object object;
 {
   if (SYMBOLP (object))
@@ -311,10 +313,10 @@
 /* Define this in C to avoid unnecessarily consing up the symbol
    name.  */
 DEFUN ("keywordp", Fkeywordp, Skeywordp, 1, 1, 0,
-       "Return t if OBJECT is a keyword.\n\
-This means that it is a symbol with a print name beginning with `:'\n\
-interned in the initial obarray.")
-  (object)
+       doc: /* Return t if OBJECT is a keyword.
+This means that it is a symbol with a print name beginning with `:'
+interned in the initial obarray.  */)
+     (object)
      Lisp_Object object;
 {
   if (SYMBOLP (object)
@@ -325,8 +327,8 @@
 }
 
 DEFUN ("vectorp", Fvectorp, Svectorp, 1, 1, 0,
-       "Return t if OBJECT is a vector.")
-  (object)
+       doc: /* Return t if OBJECT is a vector.  */)
+     (object)
      Lisp_Object object;
 {
   if (VECTORP (object))
@@ -335,8 +337,8 @@
 }
 
 DEFUN ("stringp", Fstringp, Sstringp, 1, 1, 0,
-       "Return t if OBJECT is a string.")
-  (object)
+       doc: /* Return t if OBJECT is a string.  */)
+     (object)
      Lisp_Object object;
 {
   if (STRINGP (object))
@@ -345,8 +347,9 @@
 }
 
 DEFUN ("multibyte-string-p", Fmultibyte_string_p, Smultibyte_string_p,
-       1, 1, 0, "Return t if OBJECT is a multibyte string.")
-  (object)
+       1, 1, 0,
+       doc: /* Return t if OBJECT is a multibyte string.  */)
+     (object)
      Lisp_Object object;
 {
   if (STRINGP (object) && STRING_MULTIBYTE (object))
@@ -355,8 +358,8 @@
 }
 
 DEFUN ("char-table-p", Fchar_table_p, Schar_table_p, 1, 1, 0,
-       "Return t if OBJECT is a char-table.")
-  (object)
+       doc: /* Return t if OBJECT is a char-table.  */)
+     (object)
      Lisp_Object object;
 {
   if (CHAR_TABLE_P (object))
@@ -366,8 +369,8 @@
 
 DEFUN ("vector-or-char-table-p", Fvector_or_char_table_p,
        Svector_or_char_table_p, 1, 1, 0,
-       "Return t if OBJECT is a char-table or vector.")
-  (object)
+       doc: /* Return t if OBJECT is a char-table or vector.  */)
+     (object)
      Lisp_Object object;
 {
   if (VECTORP (object) || CHAR_TABLE_P (object))
@@ -375,8 +378,9 @@
   return Qnil;
 }
 
-DEFUN ("bool-vector-p", Fbool_vector_p, Sbool_vector_p, 1, 1, 0, "Return t if OBJECT is a bool-vector.")
-  (object)
+DEFUN ("bool-vector-p", Fbool_vector_p, Sbool_vector_p, 1, 1, 0,
+       doc: /* Return t if OBJECT is a bool-vector.  */)
+     (object)
      Lisp_Object object;
 {
   if (BOOL_VECTOR_P (object))
@@ -384,8 +388,9 @@
   return Qnil;
 }
 
-DEFUN ("arrayp", Farrayp, Sarrayp, 1, 1, 0, "Return t if OBJECT is an array (string or vector).")
-  (object)
+DEFUN ("arrayp", Farrayp, Sarrayp, 1, 1, 0,
+       doc: /* Return t if OBJECT is an array (string or vector).  */)
+     (object)
      Lisp_Object object;
 {
   if (VECTORP (object) || STRINGP (object)
@@ -395,8 +400,8 @@
 }
 
 DEFUN ("sequencep", Fsequencep, Ssequencep, 1, 1, 0,
-  "Return t if OBJECT is a sequence (list or array).")
-  (object)
+       doc: /* Return t if OBJECT is a sequence (list or array).  */)
+     (object)
      register Lisp_Object object;
 {
   if (CONSP (object) || NILP (object) || VECTORP (object) || STRINGP (object)
@@ -405,8 +410,9 @@
   return Qnil;
 }
 
-DEFUN ("bufferp", Fbufferp, Sbufferp, 1, 1, 0, "Return t if OBJECT is an editor buffer.")
-  (object)
+DEFUN ("bufferp", Fbufferp, Sbufferp, 1, 1, 0,
+       doc: /* Return t if OBJECT is an editor buffer.  */)
+     (object)
      Lisp_Object object;
 {
   if (BUFFERP (object))
@@ -414,8 +420,9 @@
   return Qnil;
 }
 
-DEFUN ("markerp", Fmarkerp, Smarkerp, 1, 1, 0, "Return t if OBJECT is a marker (editor pointer).")
-  (object)
+DEFUN ("markerp", Fmarkerp, Smarkerp, 1, 1, 0,
+       doc: /* Return t if OBJECT is a marker (editor pointer).  */)
+     (object)
      Lisp_Object object;
 {
   if (MARKERP (object))
@@ -423,8 +430,9 @@
   return Qnil;
 }
 
-DEFUN ("subrp", Fsubrp, Ssubrp, 1, 1, 0, "Return t if OBJECT is a built-in function.")
-  (object)
+DEFUN ("subrp", Fsubrp, Ssubrp, 1, 1, 0,
+       doc: /* Return t if OBJECT is a built-in function.  */)
+     (object)
      Lisp_Object object;
 {
   if (SUBRP (object))
@@ -433,8 +441,9 @@
 }
 
 DEFUN ("byte-code-function-p", Fbyte_code_function_p, Sbyte_code_function_p,
-       1, 1, 0, "Return t if OBJECT is a byte-compiled function object.")
-  (object)
+       1, 1, 0,
+       doc: /* Return t if OBJECT is a byte-compiled function object.  */)
+     (object)
      Lisp_Object object;
 {
   if (COMPILEDP (object))
@@ -443,8 +452,8 @@
 }
 
 DEFUN ("char-or-string-p", Fchar_or_string_p, Schar_or_string_p, 1, 1, 0,
-  "Return t if OBJECT is a character (an integer) or a string.")
-  (object)
+       doc: /* Return t if OBJECT is a character (an integer) or a string.  */)
+     (object)
      register Lisp_Object object;
 {
   if (INTEGERP (object) || STRINGP (object))
@@ -452,8 +461,9 @@
   return Qnil;
 }
 
-DEFUN ("integerp", Fintegerp, Sintegerp, 1, 1, 0, "Return t if OBJECT is an integer.")
-  (object)
+DEFUN ("integerp", Fintegerp, Sintegerp, 1, 1, 0,
+       doc: /* Return t if OBJECT is an integer.  */)
+     (object)
      Lisp_Object object;
 {
   if (INTEGERP (object))
@@ -462,8 +472,8 @@
 }
 
 DEFUN ("integer-or-marker-p", Finteger_or_marker_p, Sinteger_or_marker_p, 1, 1, 0,
-  "Return t if OBJECT is an integer or a marker (editor pointer).")
-  (object)
+       doc: /* Return t if OBJECT is an integer or a marker (editor pointer).  */)
+     (object)
      register Lisp_Object object;
 {
   if (MARKERP (object) || INTEGERP (object))
@@ -472,8 +482,8 @@
 }
 
 DEFUN ("natnump", Fnatnump, Snatnump, 1, 1, 0,
-  "Return t if OBJECT is a nonnegative integer.")
-  (object)
+       doc: /* Return t if OBJECT is a nonnegative integer.  */)
+     (object)
      Lisp_Object object;
 {
   if (NATNUMP (object))
@@ -482,8 +492,8 @@
 }
 
 DEFUN ("numberp", Fnumberp, Snumberp, 1, 1, 0,
-       "Return t if OBJECT is a number (floating point or integer).")
-  (object)
+       doc: /* Return t if OBJECT is a number (floating point or integer).  */)
+     (object)
      Lisp_Object object;
 {
   if (NUMBERP (object))
@@ -494,8 +504,8 @@
 
 DEFUN ("number-or-marker-p", Fnumber_or_marker_p,
        Snumber_or_marker_p, 1, 1, 0,
-       "Return t if OBJECT is a number or a marker.")
-  (object)
+       doc: /* Return t if OBJECT is a number or a marker.  */)
+     (object)
      Lisp_Object object;
 {
   if (NUMBERP (object) || MARKERP (object))
@@ -504,8 +514,8 @@
 }
 
 DEFUN ("floatp", Ffloatp, Sfloatp, 1, 1, 0,
-       "Return t if OBJECT is a floating point number.")
-  (object)
+       doc: /* Return t if OBJECT is a floating point number.  */)
+     (object)
      Lisp_Object object;
 {
   if (FLOATP (object))
@@ -517,9 +527,9 @@
 /* Extract and set components of lists */
 
 DEFUN ("car", Fcar, Scar, 1, 1, 0,
-  "Return the car of LIST.  If arg is nil, return nil.\n\
-Error if arg is not nil and not a cons cell.  See also `car-safe'.")
-  (list)
+       doc: /* Return the car of LIST.  If arg is nil, return nil.
+Error if arg is not nil and not a cons cell.  See also `car-safe'.  */)
+     (list)
      register Lisp_Object list;
 {
   while (1)
@@ -534,8 +544,8 @@
 }
 
 DEFUN ("car-safe", Fcar_safe, Scar_safe, 1, 1, 0,
-  "Return the car of OBJECT if it is a cons cell, or else nil.")
-  (object)
+       doc: /* Return the car of OBJECT if it is a cons cell, or else nil.  */)
+     (object)
      Lisp_Object object;
 {
   if (CONSP (object))
@@ -545,10 +555,9 @@
 }
 
 DEFUN ("cdr", Fcdr, Scdr, 1, 1, 0,
-  "Return the cdr of LIST.  If arg is nil, return nil.\n\
-Error if arg is not nil and not a cons cell.  See also `cdr-safe'.")
-
-  (list)
+       doc: /* Return the cdr of LIST.  If arg is nil, return nil.
+Error if arg is not nil and not a cons cell.  See also `cdr-safe'.  */)
+     (list)
      register Lisp_Object list;
 {
   while (1)
@@ -563,8 +572,8 @@
 }
 
 DEFUN ("cdr-safe", Fcdr_safe, Scdr_safe, 1, 1, 0,
-  "Return the cdr of OBJECT if it is a cons cell, or else nil.")
-  (object)
+       doc: /* Return the cdr of OBJECT if it is a cons cell, or else nil.  */)
+     (object)
      Lisp_Object object;
 {
   if (CONSP (object))
@@ -574,8 +583,8 @@
 }
 
 DEFUN ("setcar", Fsetcar, Ssetcar, 2, 2, 0,
-  "Set the car of CELL to be NEWCAR.  Returns NEWCAR.")
-  (cell, newcar)
+       doc: /* Set the car of CELL to be NEWCAR.  Returns NEWCAR.  */)
+     (cell, newcar)
      register Lisp_Object cell, newcar;
 {
   if (!CONSP (cell))
@@ -587,8 +596,8 @@
 }
 
 DEFUN ("setcdr", Fsetcdr, Ssetcdr, 2, 2, 0,
-  "Set the cdr of CELL to be NEWCDR.  Returns NEWCDR.")
-  (cell, newcdr)
+       doc: /* Set the cdr of CELL to be NEWCDR.  Returns NEWCDR.  */)
+     (cell, newcdr)
      register Lisp_Object cell, newcdr;
 {
   if (!CONSP (cell))
@@ -601,8 +610,9 @@
 
 /* Extract and set components of symbols */
 
-DEFUN ("boundp", Fboundp, Sboundp, 1, 1, 0, "Return t if SYMBOL's value is not void.")
-  (symbol)
+DEFUN ("boundp", Fboundp, Sboundp, 1, 1, 0,
+       doc: /* Return t if SYMBOL's value is not void.  */)
+     (symbol)
      register Lisp_Object symbol;
 {
   Lisp_Object valcontents;
@@ -617,16 +627,18 @@
   return (EQ (valcontents, Qunbound) ? Qnil : Qt);
 }
 
-DEFUN ("fboundp", Ffboundp, Sfboundp, 1, 1, 0, "Return t if SYMBOL's function definition is not void.")
-  (symbol)
+DEFUN ("fboundp", Ffboundp, Sfboundp, 1, 1, 0,
+       doc: /* Return t if SYMBOL's function definition is not void.  */)
+     (symbol)
      register Lisp_Object symbol;
 {
   CHECK_SYMBOL (symbol, 0);
   return (EQ (XSYMBOL (symbol)->function, Qunbound) ? Qnil : Qt);
 }
 
-DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0, "Make SYMBOL's value be void.")
-  (symbol)
+DEFUN ("makunbound", Fmakunbound, Smakunbound, 1, 1, 0,
+       doc: /* Make SYMBOL's value be void.  */)
+     (symbol)
      register Lisp_Object symbol;
 {
   CHECK_SYMBOL (symbol, 0);
@@ -636,8 +648,9 @@
   return symbol;
 }
 
-DEFUN ("fmakunbound", Ffmakunbound, Sfmakunbound, 1, 1, 0, "Make SYMBOL's function definition be void.")
-  (symbol)
+DEFUN ("fmakunbound", Ffmakunbound, Sfmakunbound, 1, 1, 0,
+       doc: /* Make SYMBOL's function definition be void.  */)
+     (symbol)
      register Lisp_Object symbol;
 {
   CHECK_SYMBOL (symbol, 0);
@@ -648,8 +661,8 @@
 }
 
 DEFUN ("symbol-function", Fsymbol_function, Ssymbol_function, 1, 1, 0,
-  "Return SYMBOL's function definition.  Error if that is void.")
-  (symbol)
+       doc: /* Return SYMBOL's function definition.  Error if that is void.  */)
+     (symbol)
      register Lisp_Object symbol;
 {
   CHECK_SYMBOL (symbol, 0);
@@ -658,16 +671,18 @@
   return XSYMBOL (symbol)->function;
 }
 
-DEFUN ("symbol-plist", Fsymbol_plist, Ssymbol_plist, 1, 1, 0, "Return SYMBOL's property list.")
-  (symbol)
+DEFUN ("symbol-plist", Fsymbol_plist, Ssymbol_plist, 1, 1, 0,
+       doc: /* Return SYMBOL's property list.  */)
+     (symbol)
      register Lisp_Object symbol;
 {
   CHECK_SYMBOL (symbol, 0);
   return XSYMBOL (symbol)->plist;
 }
 
-DEFUN ("symbol-name", Fsymbol_name, Ssymbol_name, 1, 1, 0, "Return SYMBOL's name, a string.")
-  (symbol)
+DEFUN ("symbol-name", Fsymbol_name, Ssymbol_name, 1, 1, 0,
+       doc: /* Return SYMBOL's name, a string.  */)
+     (symbol)
      register Lisp_Object symbol;
 {
   register Lisp_Object name;
@@ -678,8 +693,8 @@
 }
 
 DEFUN ("fset", Ffset, Sfset, 2, 2, 0,
-  "Set SYMBOL's function definition to DEFINITION, and return DEFINITION.")
-  (symbol, definition)
+       doc: /* Set SYMBOL's function definition to DEFINITION, and return DEFINITION.  */)
+     (symbol, definition)
      register Lisp_Object symbol, definition;
 {
   CHECK_SYMBOL (symbol, 0);
@@ -699,9 +714,9 @@
 }
 
 DEFUN ("defalias", Fdefalias, Sdefalias, 2, 2, 0,
-  "Set SYMBOL's function definition to DEFINITION, and return DEFINITION.\n\
-Associates the function with the current load file, if any.")
-  (symbol, definition)
+       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;
 {
   definition = Ffset (symbol, definition);
@@ -710,8 +725,8 @@
 }
 
 DEFUN ("setplist", Fsetplist, Ssetplist, 2, 2, 0,
-  "Set SYMBOL's property list to NEWVAL, and return NEWVAL.")
-  (symbol, newplist)
+       doc: /* Set SYMBOL's property list to NEWVAL, and return NEWVAL.  */)
+     (symbol, newplist)
      register Lisp_Object symbol, newplist;
 {
   CHECK_SYMBOL (symbol, 0);
@@ -720,12 +735,12 @@
 }
 
 DEFUN ("subr-arity", Fsubr_arity, Ssubr_arity, 1, 1, 0,
-  "Return minimum and maximum number of args allowed for SUBR.\n\
-SUBR must be a built-in function.\n\
-The returned value is a pair (MIN . MAX).  MIN is the minimum number\n\
-of args.  MAX is the maximum number or the symbol `many', for a\n\
-function with `&rest' args, or `unevalled' for a special form.")
-  (subr)
+       doc: /* Return minimum and maximum number of args allowed for SUBR.
+SUBR must be a built-in function.
+The returned value is a pair (MIN . MAX).  MIN is the minimum number
+of args.  MAX is the maximum number or the symbol `many', for a
+function with `&rest' args, or `unevalled' for a special form.  */)
+     (subr)
      Lisp_Object subr;
 {
   short minargs, maxargs;
@@ -742,10 +757,10 @@
 }
 
 DEFUN ("subr-interactive-form", Fsubr_interactive_form, Ssubr_interactive_form, 1, 1, 0,
-  "Return the interactive form of SUBR or nil if none.\n\
-SUBR must be a built-in function.  Value, if non-nil, is a list\n\
-\(interactive SPEC).")
-  (subr)
+       doc: /* Return the interactive form of SUBR or nil if none.
+SUBR must be a built-in function.  Value, if non-nil, is a list
+\(interactive SPEC).  */)
+     (subr)
      Lisp_Object subr;
 {
   if (!SUBRP (subr))
@@ -790,12 +805,12 @@
 
 
 DEFUN ("indirect-variable", Findirect_variable, Sindirect_variable, 1, 1, 0,
-  "Return the variable at the end of OBJECT's variable chain.\n\
-If OBJECT is a symbol, follow all variable indirections and return the final\n\
-variable.  If OBJECT is not a symbol, just return it.\n\
-Signal a cyclic-variable-indirection error if there is a loop in the\n\
-variable chain of symbols.")
-  (object)
+       doc: /* Return the variable at the end of OBJECT's variable chain.
+If OBJECT is a symbol, follow all variable indirections and return the final
+variable.  If OBJECT is not a symbol, just return it.
+Signal a cyclic-variable-indirection error if there is a loop in the
+variable chain of symbols.  */)
+     (object)
      Lisp_Object object;
 {
   if (SYMBOLP (object))
@@ -1049,8 +1064,8 @@
 }
 
 DEFUN ("symbol-value", Fsymbol_value, Ssymbol_value, 1, 1, 0,
-  "Return SYMBOL's value.  Error if that is void.")
-  (symbol)
+       doc: /* Return SYMBOL's value.  Error if that is void.  */)
+     (symbol)
      Lisp_Object symbol;
 {
   Lisp_Object val;
@@ -1063,8 +1078,8 @@
 }
 
 DEFUN ("set", Fset, Sset, 2, 2, 0,
-  "Set SYMBOL's value to NEWVAL, and return NEWVAL.")
-  (symbol, newval)
+       doc: /* Set SYMBOL's value to NEWVAL, and return NEWVAL.  */)
+     (symbol, newval)
      register Lisp_Object symbol, newval;
 {
   return set_internal (symbol, newval, current_buffer, 0);
@@ -1294,10 +1309,10 @@
 }
 
 DEFUN ("default-boundp", Fdefault_boundp, Sdefault_boundp, 1, 1, 0,
-  "Return t if SYMBOL has a non-void default value.\n\
-This is the value that is seen in buffers that do not have their own values\n\
-for this variable.")
-  (symbol)
+       doc: /* Return t if SYMBOL has a non-void default value.
+This is the value that is seen in buffers that do not have their own values
+for this variable.  */)
+     (symbol)
      Lisp_Object symbol;
 {
   register Lisp_Object value;
@@ -1307,11 +1322,11 @@
 }
 
 DEFUN ("default-value", Fdefault_value, Sdefault_value, 1, 1, 0,
-  "Return SYMBOL's default value.\n\
-This is the value that is seen in buffers that do not have their own values\n\
-for this variable.  The default value is meaningful for variables with\n\
-local bindings in certain buffers.")
-  (symbol)
+       doc: /* Return SYMBOL's default value.
+This is the value that is seen in buffers that do not have their own values
+for this variable.  The default value is meaningful for variables with
+local bindings in certain buffers.  */)
+     (symbol)
      Lisp_Object symbol;
 {
   register Lisp_Object value;
@@ -1323,10 +1338,10 @@
 }
 
 DEFUN ("set-default", Fset_default, Sset_default, 2, 2, 0,
-  "Set SYMBOL's default value to VAL.  SYMBOL and VAL are evaluated.\n\
-The default value is seen in buffers that do not have their own values\n\
-for this variable.")
-  (symbol, value)
+       doc: /* Set SYMBOL's default value to VAL.  SYMBOL and VAL are evaluated.
+The default value is seen in buffers that do not have their own values
+for this variable.  */)
+     (symbol, value)
      Lisp_Object symbol, value;
 {
   register Lisp_Object valcontents, current_alist_element, alist_element_buffer;
@@ -1377,18 +1392,18 @@
 }
 
 DEFUN ("setq-default", Fsetq_default, Ssetq_default, 2, UNEVALLED, 0,
-       "Set the default value of variable VAR to VALUE.\n\
-VAR, the variable name, is literal (not evaluated);\n\
-VALUE is an expression and it is evaluated.\n\
-The default value of a variable is seen in buffers\n\
-that do not have their own values for the variable.\n\
-\n\
-More generally, you can use multiple variables and values, as in\n\
-  (setq-default SYMBOL VALUE SYMBOL VALUE...)\n\
-This sets each SYMBOL's default value to the corresponding VALUE.\n\
-The VALUE for the Nth SYMBOL can refer to the new default values\n\
-of previous SYMs.")
-  (args)
+       doc: /* Set the default value of variable VAR to VALUE.
+VAR, the variable name, is literal (not evaluated);
+VALUE is an expression and it is evaluated.
+The default value of a variable is seen in buffers
+that do not have their own values for the variable.
+
+More generally, you can use multiple variables and values, as in
+  (setq-default SYMBOL VALUE SYMBOL VALUE...)
+This sets each SYMBOL's default value to the corresponding VALUE.
+The VALUE for the Nth SYMBOL can refer to the new default values
+of previous SYMs.  */)
+     (args)
      Lisp_Object args;
 {
   register Lisp_Object args_left;
@@ -1417,17 +1432,17 @@
 /* Lisp functions for creating and removing buffer-local variables.  */
 
 DEFUN ("make-variable-buffer-local", Fmake_variable_buffer_local, Smake_variable_buffer_local,
-  1, 1, "vMake Variable Buffer Local: ",
-  "Make VARIABLE become buffer-local whenever it is set.\n\
-At any time, the value for the current buffer is in effect,\n\
-unless the variable has never been set in this buffer,\n\
-in which case the default value is in effect.\n\
-Note that binding the variable with `let', or setting it while\n\
-a `let'-style binding made in this buffer is in effect,\n\
-does not make the variable buffer-local.\n\
-\n\
-The function `default-value' gets the default value and `set-default' sets it.")
-  (variable)
+       1, 1, "vMake Variable Buffer Local: ",
+       doc: /* Make VARIABLE become buffer-local whenever it is set.
+At any time, the value for the current buffer is in effect,
+unless the variable has never been set in this buffer,
+in which case the default value is in effect.
+Note that binding the variable with `let', or setting it while
+a `let'-style binding made in this buffer is in effect,
+does not make the variable buffer-local.
+
+The function `default-value' gets the default value and `set-default' sets it.  */)
+     (variable)
      register Lisp_Object variable;
 {
   register Lisp_Object tem, valcontents, newval;
@@ -1463,24 +1478,24 @@
 }
 
 DEFUN ("make-local-variable", Fmake_local_variable, Smake_local_variable,
-  1, 1, "vMake Local Variable: ",
-  "Make VARIABLE have a separate value in the current buffer.\n\
-Other buffers will continue to share a common default value.\n\
-\(The buffer-local value of VARIABLE starts out as the same value\n\
-VARIABLE previously had.  If VARIABLE was void, it remains void.\)\n\
-See also `make-variable-buffer-local'.\n\
-\n\
-If the variable is already arranged to become local when set,\n\
-this function causes a local value to exist for this buffer,\n\
-just as setting the variable would do.\n\
-\n\
-This function returns VARIABLE, and therefore\n\
-  (set (make-local-variable 'VARIABLE) VALUE-EXP)\n\
-works.\n\
-\n\
-Do not use `make-local-variable' to make a hook variable buffer-local.\n\
-Use `make-local-hook' instead.")
-  (variable)
+       1, 1, "vMake Local Variable: ",
+       doc: /* Make VARIABLE have a separate value in the current buffer.
+Other buffers will continue to share a common default value.
+\(The buffer-local value of VARIABLE starts out as the same value
+VARIABLE previously had.  If VARIABLE was void, it remains void.\)
+See also `make-variable-buffer-local'.
+
+If the variable is already arranged to become local when set,
+this function causes a local value to exist for this buffer,
+just as setting the variable would do.
+
+This function returns VARIABLE, and therefore
+  (set (make-local-variable 'VARIABLE) VALUE-EXP)
+works.
+
+Do not use `make-local-variable' to make a hook variable buffer-local.
+Use `make-local-hook' instead.  */)
+     (variable)
      register Lisp_Object variable;
 {
   register Lisp_Object tem, valcontents;
@@ -1556,10 +1571,10 @@
 }
 
 DEFUN ("kill-local-variable", Fkill_local_variable, Skill_local_variable,
-  1, 1, "vKill Local Variable: ",
-  "Make VARIABLE no longer have a separate value in the current buffer.\n\
-From now on the default value will apply in this buffer.")
-  (variable)
+       1, 1, "vKill Local Variable: ",
+       doc: /* Make VARIABLE no longer have a separate value in the current buffer.
+From now on the default value will apply in this buffer.  */)
+     (variable)
      register Lisp_Object variable;
 {
   register Lisp_Object tem, valcontents;
@@ -1614,15 +1629,15 @@
 /* Lisp functions for creating and removing buffer-local variables.  */
 
 DEFUN ("make-variable-frame-local", Fmake_variable_frame_local, Smake_variable_frame_local,
-  1, 1, "vMake Variable Frame Local: ",
-  "Enable VARIABLE to have frame-local bindings.\n\
-When a frame-local binding exists in the current frame,\n\
-it is in effect whenever the current buffer has no buffer-local binding.\n\
-A frame-local binding is actual a frame parameter value;\n\
-thus, any given frame has a local binding for VARIABLE\n\
-if it has a value for the frame parameter named VARIABLE.\n\
-See `modify-frame-parameters'.")
-  (variable)
+       1, 1, "vMake Variable Frame Local: ",
+       doc: /* Enable VARIABLE to have frame-local bindings.
+When a frame-local binding exists in the current frame,
+it is in effect whenever the current buffer has no buffer-local binding.
+A frame-local binding is actual a frame parameter value;
+thus, any given frame has a local binding for VARIABLE
+if it has a value for the frame parameter named VARIABLE.
+See `modify-frame-parameters'.  */)
+     (variable)
      register Lisp_Object variable;
 {
   register Lisp_Object tem, valcontents, newval;
@@ -1659,10 +1674,10 @@
 }
 
 DEFUN ("local-variable-p", Flocal_variable_p, Slocal_variable_p,
-  1, 2, 0,
-  "Non-nil if VARIABLE has a local binding in buffer BUFFER.\n\
-BUFFER defaults to the current buffer.")
-  (variable, buffer)
+       1, 2, 0,
+       doc: /* Non-nil if VARIABLE has a local binding in buffer BUFFER.
+BUFFER defaults to the current buffer.  */)
+     (variable, buffer)
      register Lisp_Object variable, buffer;
 {
   Lisp_Object valcontents;
@@ -1703,10 +1718,10 @@
 }
 
 DEFUN ("local-variable-if-set-p", Flocal_variable_if_set_p, Slocal_variable_if_set_p,
-  1, 2, 0,
-  "Non-nil if VARIABLE will be local in buffer BUFFER if it is set there.\n\
-BUFFER defaults to the current buffer.")
-  (variable, buffer)
+       1, 2, 0,
+       doc: /* Non-nil if VARIABLE will be local in buffer BUFFER if it is set there.
+BUFFER defaults to the current buffer.  */)
+     (variable, buffer)
      register Lisp_Object variable, buffer;
 {
   Lisp_Object valcontents;
@@ -1779,15 +1794,15 @@
 }
 
 DEFUN ("indirect-function", Findirect_function, Sindirect_function, 1, 1, 0,
-  "Return the function at the end of OBJECT's function chain.\n\
-If OBJECT is a symbol, follow all function indirections and return the final\n\
-function binding.\n\
-If OBJECT is not a symbol, just return it.\n\
-Signal a void-function error if the final symbol is unbound.\n\
-Signal a cyclic-function-indirection error if there is a loop in the\n\
-function chain of symbols.")
-  (object)
-    register Lisp_Object object;
+       doc: /* Return the function at the end of OBJECT's function chain.
+If OBJECT is a symbol, follow all function indirections and return the final
+function binding.
+If OBJECT is not a symbol, just return it.
+Signal a void-function error if the final symbol is unbound.
+Signal a cyclic-function-indirection error if there is a loop in the
+function chain of symbols.  */)
+     (object)
+     register Lisp_Object object;
 {
   Lisp_Object result;
 
@@ -1801,10 +1816,10 @@
 /* Extract and set vector and string elements */
 
 DEFUN ("aref", Faref, Saref, 2, 2, 0,
-  "Return the element of ARRAY at index IDX.\n\
-ARRAY may be a vector, a string, a char-table, a bool-vector,\n\
-or a byte-code object.  IDX starts at 0.")
-  (array, idx)
+       doc: /* Return the element of ARRAY at index IDX.
+ARRAY may be a vector, a string, a char-table, a bool-vector,
+or a byte-code object.  IDX starts at 0.  */)
+     (array, idx)
      register Lisp_Object array;
      Lisp_Object idx;
 {
@@ -1932,10 +1947,10 @@
 #define MAX_ALLOCA 16*1024
 
 DEFUN ("aset", Faset, Saset, 3, 3, 0,
-  "Store into the element of ARRAY at index IDX the value NEWELT.\n\
-ARRAY may be a vector, a string, a char-table or a bool-vector.\n\
-IDX starts at 0.")
-  (array, idx, newelt)
+       doc: /* Store into the element of ARRAY at index IDX the value NEWELT.
+ARRAY may be a vector, a string, a char-table or a bool-vector.
+IDX starts at 0.  */)
+     (array, idx, newelt)
      register Lisp_Object array;
      Lisp_Object idx, newelt;
 {
@@ -2152,57 +2167,58 @@
 }
 
 DEFUN ("=", Feqlsign, Seqlsign, 2, 2, 0,
-  "Return t if two args, both numbers or markers, are equal.")
-  (num1, num2)
+       doc: /* Return t if two args, both numbers or markers, are equal.  */)
+     (num1, num2)
      register Lisp_Object num1, num2;
 {
   return arithcompare (num1, num2, equal);
 }
 
 DEFUN ("<", Flss, Slss, 2, 2, 0,
-  "Return t if first arg is less than second arg.  Both must be numbers or markers.")
-  (num1, num2)
+       doc: /* Return t if first arg is less than second arg.  Both must be numbers or markers.  */)
+     (num1, num2)
      register Lisp_Object num1, num2;
 {
   return arithcompare (num1, num2, less);
 }
 
 DEFUN (">", Fgtr, Sgtr, 2, 2, 0,
-  "Return t if first arg is greater than second arg.  Both must be numbers or markers.")
-  (num1, num2)
+       doc: /* Return t if first arg is greater than second arg.  Both must be numbers or markers.  */)
+     (num1, num2)
      register Lisp_Object num1, num2;
 {
   return arithcompare (num1, num2, grtr);
 }
 
 DEFUN ("<=", Fleq, Sleq, 2, 2, 0,
-  "Return t if first arg is less than or equal to second arg.\n\
-Both must be numbers or markers.")
-  (num1, num2)
+       doc: /* Return t if first arg is less than or equal to second arg.
+Both must be numbers or markers.  */)
+     (num1, num2)
      register Lisp_Object num1, num2;
 {
   return arithcompare (num1, num2, less_or_equal);
 }
 
 DEFUN (">=", Fgeq, Sgeq, 2, 2, 0,
-  "Return t if first arg is greater than or equal to second arg.\n\
-Both must be numbers or markers.")
-  (num1, num2)
+       doc: /* Return t if first arg is greater than or equal to second arg.
+Both must be numbers or markers.  */)
+     (num1, num2)
      register Lisp_Object num1, num2;
 {
   return arithcompare (num1, num2, grtr_or_equal);
 }
 
 DEFUN ("/=", Fneq, Sneq, 2, 2, 0,
-  "Return t if first arg is not equal to second arg.  Both must be numbers or markers.")
-  (num1, num2)
+       doc: /* Return t if first arg is not equal to second arg.  Both must be numbers or markers.  */)
+     (num1, num2)
      register Lisp_Object num1, num2;
 {
   return arithcompare (num1, num2, notequal);
 }
 
-DEFUN ("zerop", Fzerop, Szerop, 1, 1, 0, "Return t if NUMBER is zero.")
-  (number)
+DEFUN ("zerop", Fzerop, Szerop, 1, 1, 0,
+       doc: /* Return t if NUMBER is zero.  */)
+     (number)
      register Lisp_Object number;
 {
   CHECK_NUMBER_OR_FLOAT (number, 0);
@@ -2249,10 +2265,10 @@
 }
 
 DEFUN ("number-to-string", Fnumber_to_string, Snumber_to_string, 1, 1, 0,
-  "Convert NUMBER to a string by printing it in decimal.\n\
-Uses a minus sign if negative.\n\
-NUMBER may be an integer or a floating point number.")
-  (number)
+       doc: /* Convert NUMBER to a string by printing it in decimal.
+Uses a minus sign if negative.
+NUMBER may be an integer or a floating point number.  */)
+     (number)
      Lisp_Object number;
 {
   char buffer[VALBITS];
@@ -2298,14 +2314,14 @@
 }    
 
 DEFUN ("string-to-number", Fstring_to_number, Sstring_to_number, 1, 2, 0,
-  "Convert STRING to a number by parsing it as a decimal number.\n\
-This parses both integers and floating point numbers.\n\
-It ignores leading spaces and tabs.\n\
-\n\
-If BASE, interpret STRING as a number in that base.  If BASE isn't\n\
-present, base 10 is used.  BASE must be between 2 and 16 (inclusive).\n\
-If the base used is not 10, floating point is not recognized.")
-   (string, base)
+       doc: /* Convert STRING to a number by parsing it as a decimal number.
+This parses both integers and floating point numbers.
+It ignores leading spaces and tabs.
+
+If BASE, interpret STRING as a number in that base.  If BASE isn't
+present, base 10 is used.  BASE must be between 2 and 16 (inclusive).
+If the base used is not 10, floating point is not recognized.  */)
+     (string, base)
      register Lisp_Object string, base;
 {
   register unsigned char *p;
@@ -2531,9 +2547,9 @@
 
 
 DEFUN ("+", Fplus, Splus, 0, MANY, 0,
-  "Return sum of any number of arguments, which are numbers or markers.
-usage: (+ &rest NUMBERS-OR-MARKERS)")
-  (nargs, args)
+       doc: /* Return sum of any number of arguments, which are numbers or markers.
+usage: (+ &rest NUMBERS-OR-MARKERS)  */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -2541,11 +2557,11 @@
 }
 
 DEFUN ("-", Fminus, Sminus, 0, MANY, 0,
-  "Negate number or subtract numbers or markers.\n\
-With one arg, negates it.  With more than one arg,\n\
+       doc: /* Negate number or subtract numbers or markers.
+With one arg, negates it.  With more than one arg,
 subtracts all but the first from the first.
-usage: (- &optional NUMBER-OR-MARKER &rest MORE-NUMBERS-OR-MARKERS)")
-  (nargs, args)
+usage: (- &optional NUMBER-OR-MARKER &rest MORE-NUMBERS-OR-MARKERS)  */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -2553,9 +2569,9 @@
 }
 
 DEFUN ("*", Ftimes, Stimes, 0, MANY, 0,
-  "Returns product of any number of arguments, which are numbers or markers.
-usage: (* &rest NUMBERS-OR-MARKERS)")
-  (nargs, args)
+       doc: /* Returns product of any number of arguments, which are numbers or markers.
+usage: (* &rest NUMBERS-OR-MARKERS)  */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -2563,10 +2579,10 @@
 }
 
 DEFUN ("/", Fquo, Squo, 2, MANY, 0,
-  "Returns first argument divided by all the remaining arguments.\n\
+       doc: /* Returns first argument divided by all the remaining arguments.
 The arguments must be numbers or markers.
-usage: (/ DIVIDEND DIVISOR &rest DIVISORS)")
-  (nargs, args)
+usage: (/ DIVIDEND DIVISOR &rest DIVISORS)  */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -2574,9 +2590,9 @@
 }
 
 DEFUN ("%", Frem, Srem, 2, 2, 0,
-  "Returns remainder of X divided by Y.\n\
-Both must be integers or markers.")
-  (x, y)
+       doc: /* Returns remainder of X divided by Y.
+Both must be integers or markers.  */)
+     (x, y)
      register Lisp_Object x, y;
 {
   Lisp_Object val;
@@ -2615,10 +2631,10 @@
 #endif /* ! HAVE_FMOD */
 
 DEFUN ("mod", Fmod, Smod, 2, 2, 0,
-  "Returns X modulo Y.\n\
-The result falls between zero (inclusive) and Y (exclusive).\n\
-Both X and Y must be numbers or markers.")
-  (x, y)
+       doc: /* Returns X modulo Y.
+The result falls between zero (inclusive) and Y (exclusive).
+Both X and Y must be numbers or markers.  */)
+     (x, y)
      register Lisp_Object x, y;
 {
   Lisp_Object val;
@@ -2647,10 +2663,10 @@
 }
 
 DEFUN ("max", Fmax, Smax, 1, MANY, 0,
-  "Return largest of all the arguments (which must be numbers or markers).\n\
+       doc: /* Return largest of all the arguments (which must be numbers or markers).
 The value is always a number; markers are converted to numbers.
-usage: (max NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)")
-  (nargs, args)
+usage: (max NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)  */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -2658,10 +2674,10 @@
 }
 
 DEFUN ("min", Fmin, Smin, 1, MANY, 0,
-  "Return smallest of all the arguments (which must be numbers or markers).\n\
+       doc: /* Return smallest of all the arguments (which must be numbers or markers).
 The value is always a number; markers are converted to numbers.
-usage: (min NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)")
-  (nargs, args)
+usage: (min NUMBER-OR-MARKER &rest NUMBERS-OR-MARKERS)  */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -2669,10 +2685,10 @@
 }
 
 DEFUN ("logand", Flogand, Slogand, 0, MANY, 0,
-  "Return bitwise-and of all the arguments.\n\
+       doc: /* Return bitwise-and of all the arguments.
 Arguments may be integers, or markers converted to integers.
-usage: (logand &rest INTS-OR-MARKERS)")
-  (nargs, args)
+usage: (logand &rest INTS-OR-MARKERS)  */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -2680,10 +2696,10 @@
 }
 
 DEFUN ("logior", Flogior, Slogior, 0, MANY, 0,
-  "Return bitwise-or of all the arguments.\n\
+       doc: /* Return bitwise-or of all the arguments.
 Arguments may be integers, or markers converted to integers.
-usage: (logior &rest INTS-OR-MARKERS)")
-  (nargs, args)
+usage: (logior &rest INTS-OR-MARKERS)  */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -2691,10 +2707,10 @@
 }
 
 DEFUN ("logxor", Flogxor, Slogxor, 0, MANY, 0,
-  "Return bitwise-exclusive-or of all the arguments.\n\
+       doc: /* Return bitwise-exclusive-or of all the arguments.
 Arguments may be integers, or markers converted to integers.
-usage: (logxor &rest INTS-OR-MARKERS)")
-  (nargs, args)
+usage: (logxor &rest INTS-OR-MARKERS) */)
+     (nargs, args)
      int nargs;
      Lisp_Object *args;
 {
@@ -2702,10 +2718,10 @@
 }
 
 DEFUN ("ash", Fash, Sash, 2, 2, 0,
-  "Return VALUE with its bits shifted left by COUNT.\n\
-If COUNT is negative, shifting is actually to the right.\n\
-In this case, the sign bit is duplicated.")
-  (value, count)
+       doc: /* Return VALUE with its bits shifted left by COUNT.
+If COUNT is negative, shifting is actually to the right.
+In this case, the sign bit is duplicated.  */)
+     (value, count)
      register Lisp_Object value, count;
 {
   register Lisp_Object val;
@@ -2725,10 +2741,10 @@
 }
 
 DEFUN ("lsh", Flsh, Slsh, 2, 2, 0,
-  "Return VALUE with its bits shifted left by COUNT.\n\
-If COUNT is negative, shifting is actually to the right.\n\
-In this case,  zeros are shifted in on the left.")
-  (value, count)
+       doc: /* Return VALUE with its bits shifted left by COUNT.
+If COUNT is negative, shifting is actually to the right.
+In this case,  zeros are shifted in on the left.  */)
+     (value, count)
      register Lisp_Object value, count;
 {
   register Lisp_Object val;
@@ -2748,9 +2764,9 @@
 }
 
 DEFUN ("1+", Fadd1, Sadd1, 1, 1, 0,
-  "Return NUMBER plus one.  NUMBER may be a number or a marker.\n\
-Markers are converted to integers.")
-  (number)
+       doc: /* Return NUMBER plus one.  NUMBER may be a number or a marker.
+Markers are converted to integers.  */)
+     (number)
      register Lisp_Object number;
 {
   CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (number, 0);
@@ -2763,9 +2779,9 @@
 }
 
 DEFUN ("1-", Fsub1, Ssub1, 1, 1, 0,
-  "Return NUMBER minus one.  NUMBER may be a number or a marker.\n\
-Markers are converted to integers.")
-  (number)
+       doc: /* Return NUMBER minus one.  NUMBER may be a number or a marker.
+Markers are converted to integers.  */)
+     (number)
      register Lisp_Object number;
 {
   CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (number, 0);
@@ -2778,8 +2794,8 @@
 }
 
 DEFUN ("lognot", Flognot, Slognot, 1, 1, 0,
-  "Return the bitwise complement of NUMBER.  NUMBER must be an integer.")
-  (number)
+       doc: /* Return the bitwise complement of NUMBER.  NUMBER must be an integer.  */)
+     (number)
      register Lisp_Object number;
 {
   CHECK_NUMBER (number, 0);
@@ -3192,11 +3208,11 @@
   XSYMBOL (Qwholenump)->function = XSYMBOL (Qnatnump)->function;
 
   DEFVAR_INT ("most-positive-fixnum", &most_positive_fixnum,
-    "The largest value that is representable in a Lisp integer.");
+	      doc: /* The largest value that is representable in a Lisp integer.  */);
   most_positive_fixnum = MOST_POSITIVE_FIXNUM;
   
   DEFVAR_INT ("most-negative-fixnum", &most_negative_fixnum,
-    "The smallest value that is representable in a Lisp integer.");
+	      doc: /* The smallest value that is representable in a Lisp integer.  */);
   most_negative_fixnum = MOST_NEGATIVE_FIXNUM;
 }
 
@@ -3239,5 +3255,3 @@
   signal (SIGEMT, arith_error);
 #endif /* uts */
 }
-
-
--- a/src/fileio.c	Sun Oct 21 12:08:54 2001 +0000
+++ b/src/fileio.c	Sun Oct 21 12:13:46 2001 +0000
@@ -323,16 +323,17 @@
 Lisp_Object Qset_visited_file_modtime;
 
 DEFUN ("find-file-name-handler", Ffind_file_name_handler, Sfind_file_name_handler, 2, 2, 0,
-  "Return FILENAME's handler function for OPERATION, if it has one.\n\
-Otherwise, return nil.\n\
-A file name is handled if one of the regular expressions in\n\
-`file-name-handler-alist' matches it.\n\n\
-If OPERATION equals `inhibit-file-name-operation', then we ignore\n\
-any handlers that are members of `inhibit-file-name-handlers',\n\
-but we still do run any other handlers.  This lets handlers\n\
-use the standard functions without calling themselves recursively.")
-  (filename, operation)
-    Lisp_Object filename, operation;
+       doc: /* Return FILENAME's handler function for OPERATION, if it has one.
+Otherwise, return nil.
+A file name is handled if one of the regular expressions in
+`file-name-handler-alist' matches it.
+
+If OPERATION equals `inhibit-file-name-operation', then we ignore
+any handlers that are members of `inhibit-file-name-handlers',
+but we still do run any other handlers.  This lets handlers
+use the standard functions without calling themselves recursively.  */)
+     (filename, operation)
+     Lisp_Object filename, operation;
 {
   /* This function must not munge the match data.  */
   Lisp_Object chain, inhibited_handlers;
@@ -370,13 +371,13 @@
 }
 
 DEFUN ("file-name-directory", Ffile_name_directory, Sfile_name_directory,
-  1, 1, 0,
-  "Return the directory component in file name FILENAME.\n\
-Return nil if FILENAME does not include a directory.\n\
-Otherwise return a directory spec.\n\
-Given a Unix syntax file name, returns a string ending in slash;\n\
-on VMS, perhaps instead a string ending in `:', `]' or `>'.")
-  (filename)
+       1, 1, 0,
+       doc: /* Return the directory component in file name FILENAME.
+Return nil if FILENAME does not include a directory.
+Otherwise return a directory spec.
+Given a Unix syntax file name, returns a string ending in slash;
+on VMS, perhaps instead a string ending in `:', `]' or `>'.  */)
+     (filename)
      Lisp_Object filename;
 {
   register unsigned char *beg;
@@ -448,11 +449,11 @@
 
 DEFUN ("file-name-nondirectory", Ffile_name_nondirectory,
        Sfile_name_nondirectory, 1, 1, 0,
-  "Return file name FILENAME sans its directory.\n\
-For example, in a Unix-syntax file name,\n\
-this is everything after the last slash,\n\
-or the entire name if it contains no slash.")
-  (filename)
+       doc: /* Return file name FILENAME sans its directory.
+For example, in a Unix-syntax file name,
+this is everything after the last slash,
+or the entire name if it contains no slash.  */)
+     (filename)
      Lisp_Object filename;
 {
   register unsigned char *beg, *p, *end;
@@ -489,15 +490,15 @@
 
 DEFUN ("unhandled-file-name-directory", Funhandled_file_name_directory,
        Sunhandled_file_name_directory, 1, 1, 0,
-  "Return a directly usable directory name somehow associated with FILENAME.\n\
-A `directly usable' directory name is one that may be used without the\n\
-intervention of any file handler.\n\
-If FILENAME is a directly usable file itself, return\n\
-\(file-name-directory FILENAME).\n\
-The `call-process' and `start-process' functions use this function to\n\
-get a current directory to run processes in.")
-  (filename)
-    Lisp_Object filename;
+       doc: /* Return a directly usable directory name somehow associated with FILENAME.
+A `directly usable' directory name is one that may be used without the
+intervention of any file handler.
+If FILENAME is a directly usable file itself, return
+\(file-name-directory FILENAME).
+The `call-process' and `start-process' functions use this function to
+get a current directory to run processes in.  */)
+     (filename)
+     Lisp_Object filename;
 {
   Lisp_Object handler;
 
@@ -600,14 +601,14 @@
 
 DEFUN ("file-name-as-directory", Ffile_name_as_directory,
        Sfile_name_as_directory, 1, 1, 0,
-  "Return a string representing file FILENAME interpreted as a directory.\n\
-This operation exists because a directory is also a file, but its name as\n\
-a directory is different from its name as a file.\n\
-The result can be used as the value of `default-directory'\n\
-or passed as second argument to `expand-file-name'.\n\
-For a Unix-syntax file name, just appends a slash.\n\
-On VMS, converts \"[X]FOO.DIR\" to \"[X.FOO]\", etc.")
-  (file)
+       doc: /* Return a string representing file FILENAME interpreted as a directory.
+This operation exists because a directory is also a file, but its name as
+a directory is different from its name as a file.
+The result can be used as the value of `default-directory'
+or passed as second argument to `expand-file-name'.
+For a Unix-syntax file name, just appends a slash.
+On VMS, converts \"[X]FOO.DIR\" to \"[X.FOO]\", etc.  */)
+     (file)
      Lisp_Object file;
 {
   char *buf;
@@ -790,15 +791,15 @@
 }
 
 DEFUN ("directory-file-name", Fdirectory_file_name, Sdirectory_file_name,
-  1, 1, 0,
-  "Returns the file name of the directory named DIRECTORY.\n\
-This is the name of the file that holds the data for the directory DIRECTORY.\n\
-This operation exists because a directory is also a file, but its name as\n\
-a directory is different from its name as a file.\n\
-In Unix-syntax, this function just removes the final slash.\n\
-On VMS, given a VMS-syntax directory name such as \"[X.Y]\",\n\
-it returns a file name such as \"[X]Y.DIR.1\".")
-  (directory)
+       1, 1, 0,
+       doc: /* Returns the file name of the directory named DIRECTORY.
+This is the name of the file that holds the data for the directory DIRECTORY.
+This operation exists because a directory is also a file, but its name as
+a directory is different from its name as a file.
+In Unix-syntax, this function just removes the final slash.
+On VMS, given a VMS-syntax directory name such as \"[X.Y]\",
+it returns a file name such as \"[X]Y.DIR.1\".  */)
+     (directory)
      Lisp_Object directory;
 {
   char *buf;
@@ -962,18 +963,18 @@
 
 
 DEFUN ("make-temp-name", Fmake_temp_name, Smake_temp_name, 1, 1, 0,
-  "Generate temporary file name (string) starting with PREFIX (a string).\n\
-The Emacs process number forms part of the result,\n\
-so there is no danger of generating a name being used by another process.\n\
-\n\
-In addition, this function makes an attempt to choose a name\n\
-which has no existing file.  To make this work,\n\
-PREFIX should be an absolute file name.\n\
-\n\
-There is a race condition between calling `make-temp-name' and creating the\n\
-file which opens all kinds of security holes.  For that reason, you should\n\
-probably use `make-temp-file' instead.")
-  (prefix)
+       doc: /* Generate temporary file name (string) starting with PREFIX (a string).
+The Emacs process number forms part of the result,
+so there is no danger of generating a name being used by another process.
+
+In addition, this function makes an attempt to choose a name
+which has no existing file.  To make this work,
+PREFIX should be an absolute file name.
+
+There is a race condition between calling `make-temp-name' and creating the
+file which opens all kinds of security holes.  For that reason, you should
+probably use `make-temp-file' instead.  */)
+     (prefix)
      Lisp_Object prefix;
 {
   return make_temp_name (prefix, 0);
@@ -982,18 +983,18 @@
 
 
 DEFUN ("expand-file-name", Fexpand_file_name, Sexpand_file_name, 1, 2, 0,
-  "Convert filename NAME to absolute, and canonicalize it.\n\
-Second arg DEFAULT-DIRECTORY is directory to start with if NAME is relative\n\
- (does not start with slash); if DEFAULT-DIRECTORY is nil or missing,\n\
-the current buffer's value of default-directory is used.\n\
-File name components that are `.' are removed, and \n\
-so are file name components followed by `..', along with the `..' itself;\n\
-note that these simplifications are done without checking the resulting\n\
-file names in the file system.\n\
-An initial `~/' expands to your home directory.\n\
-An initial `~USER/' expands to USER's home directory.\n\
-See also the function `substitute-in-file-name'.")
-  (name, default_directory)
+       doc: /* Convert filename NAME to absolute, and canonicalize it.
+Second arg DEFAULT-DIRECTORY is directory to start with if NAME is relative
+ (does not start with slash); if DEFAULT-DIRECTORY is nil or missing,
+the current buffer's value of default-directory is used.
+File name components that are `.' are removed, and
+so are file name components followed by `..', along with the `..' itself;
+note that these simplifications are done without checking the resulting
+file names in the file system.
+An initial `~/' expands to your home directory.
+An initial `~USER/' expands to USER's home directory.
+See also the function `substitute-in-file-name'.  */)
+     (name, default_directory)
      Lisp_Object name, default_directory;
 {
   unsigned char *nm;
@@ -1971,16 +1972,17 @@
 #endif
 
 DEFUN ("substitute-in-file-name", Fsubstitute_in_file_name,
-  Ssubstitute_in_file_name, 1, 1, 0,
-  "Substitute environment variables referred to in FILENAME.\n\
-`$FOO' where FOO is an environment variable name means to substitute\n\
-the value of that variable.  The variable name should be terminated\n\
-with a character not a letter, digit or underscore; otherwise, enclose\n\
-the entire variable name in braces.\n\
-If `/~' appears, all of FILENAME through that `/' is discarded.\n\n\
-On VMS, `$' substitution is not done; this function does little and only\n\
-duplicates what `expand-file-name' does.")
-  (filename)
+       Ssubstitute_in_file_name, 1, 1, 0,
+       doc: /* Substitute environment variables referred to in FILENAME.
+`$FOO' where FOO is an environment variable name means to substitute
+the value of that variable.  The variable name should be terminated
+with a character not a letter, digit or underscore; otherwise, enclose
+the entire variable name in braces.
+If `/~' appears, all of FILENAME through that `/' is discarded.
+
+On VMS, `$' substitution is not done; this function does little and only
+duplicates what `expand-file-name' does.  */)
+     (filename)
      Lisp_Object filename;
 {
   unsigned char *nm;
@@ -2282,17 +2284,17 @@
 }
 
 DEFUN ("copy-file", Fcopy_file, Scopy_file, 2, 4,
-  "fCopy file: \nFCopy %s to file: \np\nP",
-  "Copy FILE to NEWNAME.  Both args must be strings.\n\
-If NEWNAME names a directory, copy FILE there.\n\
-Signals a `file-already-exists' error if file NEWNAME already exists,\n\
-unless a third argument OK-IF-ALREADY-EXISTS is supplied and non-nil.\n\
-A number as third arg means request confirmation if NEWNAME already exists.\n\
-This is what happens in interactive use with M-x.\n\
-Fourth arg KEEP-TIME non-nil means give the new file the same\n\
-last-modified time as the old one.  (This works on only some systems.)\n\
-A prefix arg makes KEEP-TIME non-nil.")
-  (file, newname, ok_if_already_exists, keep_time)
+       "fCopy file: \nFCopy %s to file: \np\nP",
+       doc: /* Copy FILE to NEWNAME.  Both args must be strings.
+If NEWNAME names a directory, copy FILE there.
+Signals a `file-already-exists' error if file NEWNAME already exists,
+unless a third argument OK-IF-ALREADY-EXISTS is supplied and non-nil.
+A number as third arg means request confirmation if NEWNAME already exists.
+This is what happens in interactive use with M-x.
+Fourth arg KEEP-TIME non-nil means give the new file the same
+last-modified time as the old one.  (This works on only some systems.)
+A prefix arg makes KEEP-TIME non-nil.  */)
+     (file, newname, ok_if_already_exists, keep_time)
      Lisp_Object file, newname, ok_if_already_exists, keep_time;
 {
   int ifd, ofd, n;
@@ -2452,8 +2454,8 @@
 
 DEFUN ("make-directory-internal", Fmake_directory_internal,
        Smake_directory_internal, 1, 1, 0,
-  "Create a new directory named DIRECTORY.")
-  (directory)
+       doc: /* Create a new directory named DIRECTORY.  */)
+     (directory)
      Lisp_Object directory;
 {
   unsigned char *dir;
@@ -2482,8 +2484,8 @@
 }
 
 DEFUN ("delete-directory", Fdelete_directory, Sdelete_directory, 1, 1, "FDelete directory: ",
-  "Delete the directory named DIRECTORY.")
-  (directory)
+       doc: /* Delete the directory named DIRECTORY.  */)
+     (directory)
      Lisp_Object directory;
 {
   unsigned char *dir;
@@ -2508,9 +2510,9 @@
 }
 
 DEFUN ("delete-file", Fdelete_file, Sdelete_file, 1, 1, "fDelete file: ",
-  "Delete file named FILENAME.\n\
-If file has multiple names, it continues to exist with the other names.")
-  (filename)
+       doc: /* Delete file named FILENAME.
+If file has multiple names, it continues to exist with the other names.  */)
+     (filename)
      Lisp_Object filename;
 {
   Lisp_Object handler;
@@ -2548,14 +2550,14 @@
 }
 
 DEFUN ("rename-file", Frename_file, Srename_file, 2, 3,
-  "fRename file: \nFRename %s to file: \np",
-  "Rename FILE as NEWNAME.  Both args strings.\n\
-If file has names other than FILE, it continues to have those names.\n\
-Signals a `file-already-exists' error if a file NEWNAME already exists\n\
-unless optional third argument OK-IF-ALREADY-EXISTS is non-nil.\n\
-A number as third arg means request confirmation if NEWNAME already exists.\n\
-This is what happens in interactive use with M-x.")
-  (file, newname, ok_if_already_exists)
+       "fRename file: \nFRename %s to file: \np",
+       doc: /* Rename FILE as NEWNAME.  Both args strings.
+If file has names other than FILE, it continues to have those names.
+Signals a `file-already-exists' error if a file NEWNAME already exists
+unless optional third argument OK-IF-ALREADY-EXISTS is non-nil.
+A number as third arg means request confirmation if NEWNAME already exists.
+This is what happens in interactive use with M-x.  */)
+     (file, newname, ok_if_already_exists)
      Lisp_Object file, newname, ok_if_already_exists;
 {
 #ifdef NO_ARG_ARRAY
@@ -2625,13 +2627,13 @@
 }
 
 DEFUN ("add-name-to-file", Fadd_name_to_file, Sadd_name_to_file, 2, 3,
-  "fAdd name to file: \nFName to add to %s: \np",
-  "Give FILE additional name NEWNAME.  Both args strings.\n\
-Signals a `file-already-exists' error if a file NEWNAME already exists\n\
-unless optional third argument OK-IF-ALREADY-EXISTS is non-nil.\n\
-A number as third arg means request confirmation if NEWNAME already exists.\n\
-This is what happens in interactive use with M-x.")
-  (file, newname, ok_if_already_exists)
+       "fAdd name to file: \nFName to add to %s: \np",
+       doc: /* Give FILE additional name NEWNAME.  Both args strings.
+Signals a `file-already-exists' error if a file NEWNAME already exists
+unless optional third argument OK-IF-ALREADY-EXISTS is non-nil.
+A number as third arg means request confirmation if NEWNAME already exists.
+This is what happens in interactive use with M-x.  */)
+     (file, newname, ok_if_already_exists)
      Lisp_Object file, newname, ok_if_already_exists;
 {
 #ifdef NO_ARG_ARRAY
@@ -2688,13 +2690,13 @@
 
 #ifdef S_IFLNK
 DEFUN ("make-symbolic-link", Fmake_symbolic_link, Smake_symbolic_link, 2, 3,
-  "FMake symbolic link to file: \nFMake symbolic link to file %s: \np",
-  "Make a symbolic link to FILENAME, named LINKNAME.  Both args strings.\n\
-Signals a `file-already-exists' error if a file LINKNAME already exists\n\
-unless optional third argument OK-IF-ALREADY-EXISTS is non-nil.\n\
-A number as third arg means request confirmation if LINKNAME already exists.\n\
-This happens for interactive use with M-x.")
-  (filename, linkname, ok_if_already_exists)
+       "FMake symbolic link to file: \nFMake symbolic link to file %s: \np",
+       doc: /* Make a symbolic link to FILENAME, named LINKNAME.  Both args strings.
+Signals a `file-already-exists' error if a file LINKNAME already exists
+unless optional third argument OK-IF-ALREADY-EXISTS is non-nil.
+A number as third arg means request confirmation if LINKNAME already exists.
+This happens for interactive use with M-x.  */)
+     (filename, linkname, ok_if_already_exists)
      Lisp_Object filename, linkname, ok_if_already_exists;
 {
 #ifdef NO_ARG_ARRAY
@@ -2768,9 +2770,9 @@
 
 DEFUN ("define-logical-name", Fdefine_logical_name, Sdefine_logical_name,
        2, 2, "sDefine logical name: \nsDefine logical name %s as: ",
-  "Define the job-wide logical name NAME to have the value STRING.\n\
-If STRING is nil or a null string, the logical name NAME is deleted.")
-  (name, string)
+       doc: /* Define the job-wide logical name NAME to have the value STRING.
+If STRING is nil or a null string, the logical name NAME is deleted.  */)
+     (name, string)
      Lisp_Object name;
      Lisp_Object string;
 {
@@ -2794,7 +2796,7 @@
 #ifdef HPUX_NET
 
 DEFUN ("sysnetunam", Fsysnetunam, Ssysnetunam, 2, 2, 0,
-       "Open a network connection to PATH using LOGIN as the login string.")
+       doc: /* Open a network connection to PATH using LOGIN as the login string.  */)
      (path, login)
      Lisp_Object path, login;
 {
@@ -2814,8 +2816,8 @@
 
 DEFUN ("file-name-absolute-p", Ffile_name_absolute_p, Sfile_name_absolute_p,
        1, 1, 0,
-       "Return t if file FILENAME specifies an absolute file name.\n\
-On Unix, this is a name starting with a `/' or a `~'.")
+       doc: /* Return t if file FILENAME specifies an absolute file name.
+On Unix, this is a name starting with a `/' or a `~'.  */)
      (filename)
      Lisp_Object filename;
 {
@@ -2899,9 +2901,9 @@
 }
 
 DEFUN ("file-exists-p", Ffile_exists_p, Sfile_exists_p, 1, 1, 0,
-  "Return t if file FILENAME exists.  (This does not mean you can read it.)\n\
-See also `file-readable-p' and `file-attributes'.")
-  (filename)
+       doc: /* Return t if file FILENAME exists.  (This does not mean you can read it.)
+See also `file-readable-p' and `file-attributes'.  */)
+     (filename)
      Lisp_Object filename;
 {
   Lisp_Object absname;
@@ -2923,11 +2925,10 @@
 }
 
 DEFUN ("file-executable-p", Ffile_executable_p, Sfile_executable_p, 1, 1, 0,
-  "Return t if FILENAME can be executed by you.\n\
-For a directory, this means you can access files in that directory.")
-  (filename)
-    Lisp_Object filename;
-
+       doc: /* Return t if FILENAME can be executed by you.
+For a directory, this means you can access files in that directory.  */)
+     (filename)
+     Lisp_Object filename;
 {
   Lisp_Object absname;
   Lisp_Object handler;
@@ -2947,9 +2948,9 @@
 }
 
 DEFUN ("file-readable-p", Ffile_readable_p, Sfile_readable_p, 1, 1, 0,
-  "Return t if file FILENAME exists and you can read it.\n\
-See also `file-exists-p' and `file-attributes'.")
-  (filename)
+       doc: /* Return t if file FILENAME exists and you can read it.
+See also `file-exists-p' and `file-attributes'.  */)
+     (filename)
      Lisp_Object filename;
 {
   Lisp_Object absname;
@@ -2998,8 +2999,8 @@
 /* Having this before file-symlink-p mysteriously caused it to be forgotten
    on the RT/PC.  */
 DEFUN ("file-writable-p", Ffile_writable_p, Sfile_writable_p, 1, 1, 0,
-  "Return t if file FILENAME can be written or created by you.")
-  (filename)
+       doc: /* Return t if file FILENAME can be written or created by you.  */)
+     (filename)
      Lisp_Object filename;
 {
   Lisp_Object absname, dir, encoded;
@@ -3045,10 +3046,10 @@
 }
 
 DEFUN ("access-file", Faccess_file, Saccess_file, 2, 2, 0,
-  "Access file FILENAME, and get an error if that does not work.\n\
-The second argument STRING is used in the error message.\n\
-If there is no error, we return nil.")
-  (filename, string)
+       doc: /* Access file FILENAME, and get an error if that does not work.
+The second argument STRING is used in the error message.
+If there is no error, we return nil.  */)
+     (filename, string)
      Lisp_Object filename, string;
 {
   Lisp_Object handler, encoded_filename;
@@ -3074,10 +3075,10 @@
 }
 
 DEFUN ("file-symlink-p", Ffile_symlink_p, Sfile_symlink_p, 1, 1, 0,
-  "Return non-nil if file FILENAME is the name of a symbolic link.\n\
-The value is the name of the file to which it is linked.\n\
-Otherwise returns nil.")
-  (filename)
+       doc: /* Return non-nil if file FILENAME is the name of a symbolic link.
+The value is the name of the file to which it is linked.
+Otherwise returns nil.  */)
+     (filename)
      Lisp_Object filename;
 {
 #ifdef S_IFLNK
@@ -3136,10 +3137,10 @@
 }
 
 DEFUN ("file-directory-p", Ffile_directory_p, Sfile_directory_p, 1, 1, 0,
-  "Return t if FILENAME names an existing directory.\n\
-Symbolic links to directories count as directories.\n\
-See `file-symlink-p' to distinguish symlinks.")
-  (filename)
+       doc: /* Return t if FILENAME names an existing directory.
+Symbolic links to directories count as directories.
+See `file-symlink-p' to distinguish symlinks.  */)
+     (filename)
      Lisp_Object filename;
 {
   register Lisp_Object absname;
@@ -3162,13 +3163,13 @@
 }
 
 DEFUN ("file-accessible-directory-p", Ffile_accessible_directory_p, Sfile_accessible_directory_p, 1, 1, 0,
-  "Return t if file FILENAME is the name of a directory as a file,\n\
-and files in that directory can be opened by you.  In order to use a\n\
-directory as a buffer's current directory, this predicate must return true.\n\
-A directory name spec may be given instead; then the value is t\n\
-if the directory so specified exists and really is a readable and\n\
-searchable directory.")
-  (filename)
+       doc: /* Return t if file FILENAME is the name of a directory as a file,
+and files in that directory can be opened by you.  In order to use a
+directory as a buffer's current directory, this predicate must return true.
+A directory name spec may be given instead; then the value is t
+if the directory so specified exists and really is a readable and
+searchable directory.  */)
+     (filename)
      Lisp_Object filename;
 {
   Lisp_Object handler;
@@ -3195,9 +3196,9 @@
 }
 
 DEFUN ("file-regular-p", Ffile_regular_p, Sfile_regular_p, 1, 1, 0,
-  "Return t if file FILENAME is the name of a regular file.\n\
-This is the sort of file that holds an ordinary stream of data bytes.")
-  (filename)
+       doc: /* Return t if file FILENAME is the name of a regular file.
+This is the sort of file that holds an ordinary stream of data bytes.  */)
+     (filename)
      Lisp_Object filename;
 {
   register Lisp_Object absname;
@@ -3236,8 +3237,8 @@
 }
 
 DEFUN ("file-modes", Ffile_modes, Sfile_modes, 1, 1, 0,
-  "Return mode bits of file named FILENAME, as an integer.")
-  (filename)
+       doc: /* Return mode bits of file named FILENAME, as an integer.  */)
+     (filename)
      Lisp_Object filename;
 {
   Lisp_Object absname;
@@ -3265,8 +3266,8 @@
 }
 
 DEFUN ("set-file-modes", Fset_file_modes, Sset_file_modes, 2, 2, 0,
-  "Set mode bits of file named FILENAME to MODE (an integer).\n\
-Only the 12 low bits of MODE are used.")
+       doc: /* Set mode bits of file named FILENAME to MODE (an integer).
+Only the 12 low bits of MODE are used.  */)
   (filename, mode)
      Lisp_Object filename, mode;
 {
@@ -3291,10 +3292,10 @@
 }
 
 DEFUN ("set-default-file-modes", Fset_default_file_modes, Sset_default_file_modes, 1, 1, 0,
-    "Set the file permission bits for newly created files.\n\
-The argument MODE should be an integer; only the low 9 bits are used.\n\
-This setting is inherited by subprocesses.")
-  (mode)
+       doc: /* Set the file permission bits for newly created files.
+The argument MODE should be an integer; only the low 9 bits are used.
+This setting is inherited by subprocesses.  */)
+     (mode)
      Lisp_Object mode;
 {
   CHECK_NUMBER (mode, 0);
@@ -3305,9 +3306,9 @@
 }
 
 DEFUN ("default-file-modes", Fdefault_file_modes, Sdefault_file_modes, 0, 0, 0,
-    "Return the default file protection for created files.\n\
-The value is an integer.")
-  ()
+       doc: /* Return the default file protection for created files.
+The value is an integer.  */)
+     ()
 {
   int realmask;
   Lisp_Object value;
@@ -3326,8 +3327,8 @@
 
 #ifdef unix
 DEFUN ("unix-sync", Funix_sync, Sunix_sync, 0, 0, "",
-  "Tell Unix to finish all pending disk updates.")
-  ()
+       doc: /* Tell Unix to finish all pending disk updates.  */)
+     ()
 {
   sync ();
   return Qnil;
@@ -3336,10 +3337,10 @@
 #endif /* unix */
 
 DEFUN ("file-newer-than-file-p", Ffile_newer_than_file_p, Sfile_newer_than_file_p, 2, 2, 0,
-  "Return t if file FILE1 is newer than file FILE2.\n\
-If FILE1 does not exist, the answer is nil;\n\
-otherwise, if FILE2 does not exist, the answer is t.")
-  (file1, file2)
+       doc: /* Return t if file FILE1 is newer than file FILE2.
+If FILE1 does not exist, the answer is nil;
+otherwise, if FILE2 does not exist, the answer is t.  */)
+     (file1, file2)
      Lisp_Object file1, file2;
 {
   Lisp_Object absname1, absname2;
@@ -3471,31 +3472,31 @@
 
 
 DEFUN ("insert-file-contents", Finsert_file_contents, Sinsert_file_contents,
-  1, 5, 0,
-  "Insert contents of file FILENAME after point.\n\
-Returns list of absolute file name and number of bytes inserted.\n\
-If second argument VISIT is non-nil, the buffer's visited filename\n\
-and last save file modtime are set, and it is marked unmodified.\n\
-If visiting and the file does not exist, visiting is completed\n\
-before the error is signaled.\n\
-The optional third and fourth arguments BEG and END\n\
-specify what portion of the file to insert.\n\
-These arguments count bytes in the file, not characters in the buffer.\n\
-If VISIT is non-nil, BEG and END must be nil.\n\
-\n\
-If optional fifth argument REPLACE is non-nil,\n\
-it means replace the current buffer contents (in the accessible portion)\n\
-with the file contents.  This is better than simply deleting and inserting\n\
-the whole thing because (1) it preserves some marker positions\n\
-and (2) it puts less data in the undo list.\n\
-When REPLACE is non-nil, the value is the number of characters actually read,\n\
-which is often less than the number of characters to be read.\n\
-\n\
-This does code conversion according to the value of\n\
-`coding-system-for-read' or `file-coding-system-alist',\n\
-and sets the variable `last-coding-system-used' to the coding system\n\
-actually used.")
-  (filename, visit, beg, end, replace)
+       1, 5, 0,
+       doc: /* Insert contents of file FILENAME after point.
+Returns list of absolute file name and number of bytes inserted.
+If second argument VISIT is non-nil, the buffer's visited filename
+and last save file modtime are set, and it is marked unmodified.
+If visiting and the file does not exist, visiting is completed
+before the error is signaled.
+The optional third and fourth arguments BEG and END
+specify what portion of the file to insert.
+These arguments count bytes in the file, not characters in the buffer.
+If VISIT is non-nil, BEG and END must be nil.
+
+If optional fifth argument REPLACE is non-nil,
+it means replace the current buffer contents (in the accessible portion)
+with the file contents.  This is better than simply deleting and inserting
+the whole thing because (1) it preserves some marker positions
+and (2) it puts less data in the undo list.
+When REPLACE is non-nil, the value is the number of characters actually read,
+which is often less than the number of characters to be read.
+
+This does code conversion according to the value of
+`coding-system-for-read' or `file-coding-system-alist',
+and sets the variable `last-coding-system-used' to the coding system
+actually used.  */)
+     (filename, visit, beg, end, replace)
      Lisp_Object filename, visit, beg, end, replace;
 {
   struct stat st;
@@ -4523,38 +4524,37 @@
 }
 
 DEFUN ("write-region", Fwrite_region, Swrite_region, 3, 7,
-  "r\nFWrite region to file: \ni\ni\ni\np",
-  "Write current region into specified file.\n\
-When called from a program, takes three arguments:\n\
-START, END and FILENAME.  START and END are buffer positions.\n\
-Optional fourth argument APPEND if non-nil means\n\
-  append to existing file contents (if any).  If it is an integer,\n\
-  seek to that offset in the file before writing.\n\
-Optional fifth argument VISIT if t means\n\
-  set the last-save-file-modtime of buffer to this file's modtime\n\
-  and mark buffer not modified.\n\
-If VISIT is a string, it is a second file name;\n\
-  the output goes to FILENAME, but the buffer is marked as visiting VISIT.\n\
-  VISIT is also the file name to lock and unlock for clash detection.\n\
-If VISIT is neither t nor nil nor a string,\n\
-  that means do not print the \"Wrote file\" message.\n\
-The optional sixth arg LOCKNAME, if non-nil, specifies the name to\n\
-  use for locking and unlocking, overriding FILENAME and VISIT.\n\
-The optional seventh arg MUSTBENEW, if non-nil, insists on a check\n\
-  for an existing file with the same name.  If MUSTBENEW is `excl',\n\
-  that means to get an error if the file already exists; never overwrite.\n\
-  If MUSTBENEW is neither nil nor `excl', that means ask for\n\
-  confirmation before overwriting, but do go ahead and overwrite the file\n\
-  if the user confirms.\n\
-Kludgy feature: if START is a string, then that string is written\n\
-to the file, instead of any buffer contents, and END is ignored.\n\
-\n\
-This does code conversion according to the value of\n\
-`coding-system-for-write', `buffer-file-coding-system', or\n\
-`file-coding-system-alist', and sets the variable\n\
-`last-coding-system-used' to the coding system actually used.")
-
-  (start, end, filename, append, visit, lockname, mustbenew)
+       "r\nFWrite region to file: \ni\ni\ni\np",
+       doc: /* Write current region into specified file.
+When called from a program, takes three arguments:
+START, END and FILENAME.  START and END are buffer positions.
+Optional fourth argument APPEND if non-nil means
+  append to existing file contents (if any).  If it is an integer,
+  seek to that offset in the file before writing.
+Optional fifth argument VISIT if t means
+  set the last-save-file-modtime of buffer to this file's modtime
+  and mark buffer not modified.
+If VISIT is a string, it is a second file name;
+  the output goes to FILENAME, but the buffer is marked as visiting VISIT.
+  VISIT is also the file name to lock and unlock for clash detection.
+If VISIT is neither t nor nil nor a string,
+  that means do not print the \"Wrote file\" message.
+The optional sixth arg LOCKNAME, if non-nil, specifies the name to
+  use for locking and unlocking, overriding FILENAME and VISIT.
+The optional seventh arg MUSTBENEW, if non-nil, insists on a check
+  for an existing file with the same name.  If MUSTBENEW is `excl',
+  that means to get an error if the file already exists; never overwrite.
+  If MUSTBENEW is neither nil nor `excl', that means ask for
+  confirmation before overwriting, but do go ahead and overwrite the file
+  if the user confirms.
+Kludgy feature: if START is a string, then that string is written
+to the file, instead of any buffer contents, and END is ignored.
+
+This does code conversion according to the value of
+`coding-system-for-write', `buffer-file-coding-system', or
+`file-coding-system-alist', and sets the variable
+`last-coding-system-used' to the coding system actually used.  */)
+     (start, end, filename, append, visit, lockname, mustbenew)
      Lisp_Object start, end, filename, append, visit, lockname, mustbenew;
 {
   register int desc;
@@ -5028,8 +5028,8 @@
 Lisp_Object merge ();
 
 DEFUN ("car-less-than-car", Fcar_less_than_car, Scar_less_than_car, 2, 2, 0,
-  "Return t if (car A) is numerically less than (car B).")
-  (a, b)
+       doc: /* Return t if (car A) is numerically less than (car B).  */)
+     (a, b)
      Lisp_Object a, b;
 {
   return Flss (Fcar (a), Fcar (b));
@@ -5268,10 +5268,10 @@
 }
 
 DEFUN ("verify-visited-file-modtime", Fverify_visited_file_modtime,
-  Sverify_visited_file_modtime, 1, 1, 0,
-  "Return t if last mod time of BUF's visited file matches what BUF records.\n\
-This means that the file has not been changed since it was visited or saved.")
-  (buf)
+       Sverify_visited_file_modtime, 1, 1, 0,
+       doc: /* Return t if last mod time of BUF's visited file matches what BUF records.
+This means that the file has not been changed since it was visited or saved.  */)
+     (buf)
      Lisp_Object buf;
 {
   struct buffer *b;
@@ -5313,34 +5313,34 @@
 }
 
 DEFUN ("clear-visited-file-modtime", Fclear_visited_file_modtime,
-  Sclear_visited_file_modtime, 0, 0, 0,
-  "Clear out records of last mod time of visited file.\n\
-Next attempt to save will certainly not complain of a discrepancy.")
-  ()
+       Sclear_visited_file_modtime, 0, 0, 0,
+       doc: /* Clear out records of last mod time of visited file.
+Next attempt to save will certainly not complain of a discrepancy.  */)
+     ()
 {
   current_buffer->modtime = 0;
   return Qnil;
 }
 
 DEFUN ("visited-file-modtime", Fvisited_file_modtime,
-  Svisited_file_modtime, 0, 0, 0,
-  "Return the current buffer's recorded visited file modification time.\n\
-The value is a list of the form (HIGH . LOW), like the time values\n\
-that `file-attributes' returns.")
-  ()
+       Svisited_file_modtime, 0, 0, 0,
+       doc: /* Return the current buffer's recorded visited file modification time.
+The value is a list of the form (HIGH . LOW), like the time values
+that `file-attributes' returns.  */)
+     ()
 {
   return long_to_cons ((unsigned long) current_buffer->modtime);
 }
 
 DEFUN ("set-visited-file-modtime", Fset_visited_file_modtime,
-  Sset_visited_file_modtime, 0, 1, 0,
-  "Update buffer's recorded modification time from the visited file's time.\n\
-Useful if the buffer was not read from the file normally\n\
-or if the file itself has been changed for some known benign reason.\n\
-An argument specifies the modification time value to use\n\
-\(instead of that of the visited file), in the form of a list\n\
-\(HIGH . LOW) or (HIGH LOW).")
-  (time_list)
+       Sset_visited_file_modtime, 0, 1, 0,
+       doc: /* Update buffer's recorded modification time from the visited file's time.
+Useful if the buffer was not read from the file normally
+or if the file itself has been changed for some known benign reason.
+An argument specifies the modification time value to use
+\(instead of that of the visited file), in the form of a list
+\(HIGH . LOW) or (HIGH LOW).  */)
+     (time_list)
      Lisp_Object time_list;
 {
   if (!NILP (time_list))
@@ -5439,16 +5439,17 @@
 }
 
 DEFUN ("do-auto-save", Fdo_auto_save, Sdo_auto_save, 0, 2, "",
-  "Auto-save all buffers that need it.\n\
-This is all buffers that have auto-saving enabled\n\
-and are changed since last auto-saved.\n\
-Auto-saving writes the buffer into a file\n\
-so that your editing is not lost if the system crashes.\n\
-This file is not the file you visited; that changes only when you save.\n\
-Normally we run the normal hook `auto-save-hook' before saving.\n\n\
-A non-nil NO-MESSAGE argument means do not print any message if successful.\n\
-A non-nil CURRENT-ONLY argument means save only current buffer.")
-  (no_message, current_only)
+       doc: /* Auto-save all buffers that need it.
+This is all buffers that have auto-saving enabled
+and are changed since last auto-saved.
+Auto-saving writes the buffer into a file
+so that your editing is not lost if the system crashes.
+This file is not the file you visited; that changes only when you save.
+Normally we run the normal hook `auto-save-hook' before saving.
+
+A non-nil NO-MESSAGE argument means do not print any message if successful.
+A non-nil CURRENT-ONLY argument means save only current buffer.  */)
+     (no_message, current_only)
      Lisp_Object no_message, current_only;
 {
   struct buffer *old = current_buffer, *b;
@@ -5634,10 +5635,10 @@
 }
 
 DEFUN ("set-buffer-auto-saved", Fset_buffer_auto_saved,
-  Sset_buffer_auto_saved, 0, 0, 0,
-  "Mark current buffer as auto-saved with its current text.\n\
-No auto-save file will be written until the buffer changes again.")
-  ()
+       Sset_buffer_auto_saved, 0, 0, 0,
+       doc: /* Mark current buffer as auto-saved with its current text.
+No auto-save file will be written until the buffer changes again.  */)
+     ()
 {
   current_buffer->auto_save_modified = MODIFF;
   XSETFASTINT (current_buffer->save_length, Z - BEG);
@@ -5646,18 +5647,18 @@
 }
 
 DEFUN ("clear-buffer-auto-save-failure", Fclear_buffer_auto_save_failure,
-  Sclear_buffer_auto_save_failure, 0, 0, 0,
-  "Clear any record of a recent auto-save failure in the current buffer.")
-  ()
+       Sclear_buffer_auto_save_failure, 0, 0, 0,
+       doc: /* Clear any record of a recent auto-save failure in the current buffer.  */)
+     ()
 {
   current_buffer->auto_save_failure_time = -1;
   return Qnil;
 }
 
 DEFUN ("recent-auto-save-p", Frecent_auto_save_p, Srecent_auto_save_p,
-  0, 0, 0,
-  "Return t if buffer has been auto-saved since last read in or saved.")
-  ()
+       0, 0, 0,
+       doc: /* Return t if buffer has been auto-saved since last read in or saved.  */)
+     ()
 {
   return (SAVE_MODIFF < current_buffer->auto_save_modified) ? Qt : Qnil;
 }
@@ -5700,9 +5701,9 @@
 }
 
 DEFUN ("read-file-name-internal", Fread_file_name_internal, Sread_file_name_internal,
-  3, 3, 0,
-  "Internal subroutine for read-file-name.  Do not call this.")
-  (string, dir, action)
+       3, 3, 0,
+       doc: /* Internal subroutine for read-file-name.  Do not call this.  */)
+     (string, dir, action)
      Lisp_Object string, dir, action;
   /* action is nil for complete, t for return list of completions,
      lambda for verify final value */
@@ -5775,20 +5776,20 @@
 }
 
 DEFUN ("read-file-name", Fread_file_name, Sread_file_name, 1, 5, 0,
-  "Read file name, prompting with PROMPT and completing in directory DIR.\n\
-Value is not expanded---you must call `expand-file-name' yourself.\n\
-Default name to DEFAULT-FILENAME if user enters a null string.\n\
- (If DEFAULT-FILENAME is omitted, the visited file name is used,\n\
-  except that if INITIAL is specified, that combined with DIR is used.)\n\
-Fourth arg MUSTMATCH non-nil means require existing file's name.\n\
- Non-nil and non-t means also require confirmation after completion.\n\
-Fifth arg INITIAL specifies text to start with.\n\
-DIR defaults to current buffer's directory default.\n\
-\n\
-If this command was invoked with the mouse, use a file dialog box if\n\
-`use-dialog-box' is non-nil, and the window system or X toolkit in use\n\
-provides a file dialog box..")
-  (prompt, dir, default_filename, mustmatch, initial)
+       doc: /* Read file name, prompting with PROMPT and completing in directory DIR.
+Value is not expanded---you must call `expand-file-name' yourself.
+Default name to DEFAULT-FILENAME if user enters a null string.
+ (If DEFAULT-FILENAME is omitted, the visited file name is used,
+  except that if INITIAL is specified, that combined with DIR is used.)
+Fourth arg MUSTMATCH non-nil means require existing file's name.
+ Non-nil and non-t means also require confirmation after completion.
+Fifth arg INITIAL specifies text to start with.
+DIR defaults to current buffer's directory default.
+
+If this command was invoked with the mouse, use a file dialog box if
+`use-dialog-box' is non-nil, and the window system or X toolkit in use
+provides a file dialog box.  */)
+     (prompt, dir, default_filename, mustmatch, initial)
      Lisp_Object prompt, dir, default_filename, mustmatch, initial;
 {
   Lisp_Object val, insdef, tem;
@@ -6049,26 +6050,26 @@
 #endif /* DOS_NT */
 
   DEFVAR_LISP ("file-name-coding-system", &Vfile_name_coding_system,
-    "*Coding system for encoding file names.\n\
-If it is nil, default-file-name-coding-system (which see) is used.");
+	       doc: /* *Coding system for encoding file names.
+If it is nil, default-file-name-coding-system (which see) is used.  */);
   Vfile_name_coding_system = Qnil;
 
   DEFVAR_LISP ("default-file-name-coding-system",
 	       &Vdefault_file_name_coding_system,
-    "Default coding system for encoding file names.\n\
-This variable is used only when file-name-coding-system is nil.\n\
-\n\
-This variable is set/changed by the command set-language-environment.\n\
-User should not set this variable manually,\n\
-instead use file-name-coding-system to get a constant encoding\n\
-of file names regardless of the current language environment.");
+	       doc: /* Default coding system for encoding file names.
+This variable is used only when file-name-coding-system is nil.
+
+This variable is set/changed by the command set-language-environment.
+User should not set this variable manually,
+instead use file-name-coding-system to get a constant encoding
+of file names regardless of the current language environment.  */);
   Vdefault_file_name_coding_system = Qnil;
 
   DEFVAR_LISP ("auto-save-file-format", &Vauto_save_file_format,
-    "*Format in which to write auto-save files.\n\
-Should be a list of symbols naming formats that are defined in `format-alist'.\n\
-If it is t, which is the default, auto-save files are written in the\n\
-same format as a regular save would use.");
+    doc: /* *Format in which to write auto-save files.
+Should be a list of symbols naming formats that are defined in `format-alist'.
+If it is t, which is the default, auto-save files are written in the
+same format as a regular save would use.  */);
   Vauto_save_file_format = Qt;
 
   Qformat_decode = intern ("format-decode");
@@ -6097,93 +6098,93 @@
 	build_string ("Cannot set file date"));
 
   DEFVAR_BOOL ("insert-default-directory", &insert_default_directory,
-    "*Non-nil means when reading a filename start with default dir in minibuffer.");
+	       doc: /* *Non-nil means when reading a filename start with default dir in minibuffer.  */);
   insert_default_directory = 1;
 
   DEFVAR_BOOL ("vms-stmlf-recfm", &vms_stmlf_recfm,
-    "*Non-nil means write new files with record format `stmlf'.\n\
-nil means use format `var'.  This variable is meaningful only on VMS.");
+	       doc: /* *Non-nil means write new files with record format `stmlf'.
+nil means use format `var'.  This variable is meaningful only on VMS.  */);
   vms_stmlf_recfm = 0;
 
   DEFVAR_LISP ("directory-sep-char", &Vdirectory_sep_char,
-    "Directory separator character for built-in functions that return file names.\n\
-The value should be either ?/ or ?\\ (any other value is treated as ?\\).\n\
-This variable affects the built-in functions only on Windows,\n\
-on other platforms, it is initialized so that Lisp code can find out\n\
-what the normal separator is.\n\
-\n\
-WARNING: This variable is deprecated and will be removed in the near\n\
-future.  DO NOT USE IT.");
+	       doc: /* Directory separator character for built-in functions that return file names.
+The value should be either ?/ or ?\\ (any other value is treated as ?\\).
+This variable affects the built-in functions only on Windows,
+on other platforms, it is initialized so that Lisp code can find out
+what the normal separator is.
+
+WARNING: This variable is deprecated and will be removed in the near
+future.  DO NOT USE IT.  */);
 
   DEFVAR_LISP ("file-name-handler-alist", &Vfile_name_handler_alist,
-    "*Alist of elements (REGEXP . HANDLER) for file names handled specially.\n\
-If a file name matches REGEXP, then all I/O on that file is done by calling\n\
-HANDLER.\n\
-\n\
-The first argument given to HANDLER is the name of the I/O primitive\n\
-to be handled; the remaining arguments are the arguments that were\n\
-passed to that primitive.  For example, if you do\n\
-    (file-exists-p FILENAME)\n\
-and FILENAME is handled by HANDLER, then HANDLER is called like this:\n\
-    (funcall HANDLER 'file-exists-p FILENAME)\n\
-The function `find-file-name-handler' checks this list for a handler\n\
-for its argument.");
+	       doc: /* *Alist of elements (REGEXP . HANDLER) for file names handled specially.
+If a file name matches REGEXP, then all I/O on that file is done by calling
+HANDLER.
+
+The first argument given to HANDLER is the name of the I/O primitive
+to be handled; the remaining arguments are the arguments that were
+passed to that primitive.  For example, if you do
+    (file-exists-p FILENAME)
+and FILENAME is handled by HANDLER, then HANDLER is called like this:
+    (funcall HANDLER 'file-exists-p FILENAME)
+The function `find-file-name-handler' checks this list for a handler
+for its argument.  */);
   Vfile_name_handler_alist = Qnil;
 
   DEFVAR_LISP ("set-auto-coding-function",
 	       &Vset_auto_coding_function,
-    "If non-nil, a function to call to decide a coding system of file.\n\
-Two arguments are passed to this function: the file name\n\
-and the length of a file contents following the point.\n\
-This function should return a coding system to decode the file contents.\n\
-It should check the file name against `auto-coding-alist'.\n\
-If no coding system is decided, it should check a coding system\n\
-specified in the heading lines with the format:\n\
-	-*- ... coding: CODING-SYSTEM; ... -*-\n\
-or local variable spec of the tailing lines with `coding:' tag.");
+	       doc: /* If non-nil, a function to call to decide a coding system of file.
+Two arguments are passed to this function: the file name
+and the length of a file contents following the point.
+This function should return a coding system to decode the file contents.
+It should check the file name against `auto-coding-alist'.
+If no coding system is decided, it should check a coding system
+specified in the heading lines with the format:
+	-*- ... coding: CODING-SYSTEM; ... -*-
+or local variable spec of the tailing lines with `coding:' tag.  */);
   Vset_auto_coding_function = Qnil;
 
   DEFVAR_LISP ("after-insert-file-functions", &Vafter_insert_file_functions,
-    "A list of functions to be called at the end of `insert-file-contents'.\n\
-Each is passed one argument, the number of bytes inserted.  It should return\n\
-the new byte count, and leave point the same.  If `insert-file-contents' is\n\
-intercepted by a handler from `file-name-handler-alist', that handler is\n\
-responsible for calling the after-insert-file-functions if appropriate.");
+	       doc: /* A list of functions to be called at the end of `insert-file-contents'.
+Each is passed one argument, the number of bytes inserted.  It should return
+the new byte count, and leave point the same.  If `insert-file-contents' is
+intercepted by a handler from `file-name-handler-alist', that handler is
+responsible for calling the after-insert-file-functions if appropriate.  */);
   Vafter_insert_file_functions = Qnil;
 
   DEFVAR_LISP ("write-region-annotate-functions", &Vwrite_region_annotate_functions,
-    "A list of functions to be called at the start of `write-region'.\n\
-Each is passed two arguments, START and END as for `write-region'.\n\
-These are usually two numbers but not always; see the documentation\n\
-for `write-region'.  The function should return a list of pairs\n\
-of the form (POSITION . STRING), consisting of strings to be effectively\n\
-inserted at the specified positions of the file being written (1 means to\n\
-insert before the first byte written).  The POSITIONs must be sorted into\n\
-increasing order.  If there are several functions in the list, the several\n\
-lists are merged destructively.");
+	       doc: /* A list of functions to be called at the start of `write-region'.
+Each is passed two arguments, START and END as for `write-region'.
+These are usually two numbers but not always; see the documentation
+for `write-region'.  The function should return a list of pairs
+of the form (POSITION . STRING), consisting of strings to be effectively
+inserted at the specified positions of the file being written (1 means to
+insert before the first byte written).  The POSITIONs must be sorted into
+increasing order.  If there are several functions in the list, the several
+lists are merged destructively.  */);
   Vwrite_region_annotate_functions = Qnil;
 
   DEFVAR_LISP ("write-region-annotations-so-far",
 	       &Vwrite_region_annotations_so_far,
-    "When an annotation function is called, this holds the previous annotations.\n\
-These are the annotations made by other annotation functions\n\
-that were already called.  See also `write-region-annotate-functions'.");
+	       doc: /* When an annotation function is called, this holds the previous annotations.
+These are the annotations made by other annotation functions
+that were already called.  See also `write-region-annotate-functions'.  */);
   Vwrite_region_annotations_so_far = Qnil;
 
   DEFVAR_LISP ("inhibit-file-name-handlers", &Vinhibit_file_name_handlers,
-    "A list of file name handlers that temporarily should not be used.\n\
-This applies only to the operation `inhibit-file-name-operation'.");
+	       doc: /* A list of file name handlers that temporarily should not be used.
+This applies only to the operation `inhibit-file-name-operation'.  */);
   Vinhibit_file_name_handlers = Qnil;
 
   DEFVAR_LISP ("inhibit-file-name-operation", &Vinhibit_file_name_operation,
-    "The operation for which `inhibit-file-name-handlers' is applicable.");
+	       doc: /* The operation for which `inhibit-file-name-handlers' is applicable.  */);
   Vinhibit_file_name_operation = Qnil;
 
   DEFVAR_LISP ("auto-save-list-file-name", &Vauto_save_list_file_name,
-    "File name in which we write a list of all auto save file names.\n\
-This variable is initialized automatically from `auto-save-list-file-prefix'\n\
-shortly after Emacs reads your `.emacs' file, if you have not yet given it\n\
-a non-nil value.");
+	       doc: /* File name in which we write a list of all auto save file names.
+This variable is initialized automatically from `auto-save-list-file-prefix'
+shortly after Emacs reads your `.emacs' file, if you have not yet given it
+a non-nil value.  */);
   Vauto_save_list_file_name = Qnil;
 
   defsubr (&Sfind_file_name_handler);
--- a/src/indent.c	Sun Oct 21 12:08:54 2001 +0000
+++ b/src/indent.c	Sun Oct 21 12:13:46 2001 +0000
@@ -328,16 +328,16 @@
   } while (0)
 
 DEFUN ("current-column", Fcurrent_column, Scurrent_column, 0, 0, 0,
-  "Return the horizontal position of point.  Beginning of line is column 0.\n\
-This is calculated by adding together the widths of all the displayed\n\
-representations of the character between the start of the previous line\n\
-and point.  (eg control characters will have a width of 2 or 4, tabs\n\
-will have a variable width)\n\
-Ignores finite width of frame, which means that this function may return\n\
-values greater than (frame-width).\n\
-Whether the line is visible (if `selective-display' is t) has no effect;\n\
-however, ^M is treated as end of line when `selective-display' is t.")
-  ()
+       doc: /* Return the horizontal position of point.  Beginning of line is column 0.
+This is calculated by adding together the widths of all the displayed
+representations of the character between the start of the previous line
+and point.  (eg control characters will have a width of 2 or 4, tabs
+will have a variable width)
+Ignores finite width of frame, which means that this function may return
+values greater than (frame-width).
+Whether the line is visible (if `selective-display' is t) has no effect;
+however, ^M is treated as end of line when `selective-display' is t.  */)
+     ()
 {
   Lisp_Object temp;
   XSETFASTINT (temp, current_column ());
@@ -715,10 +715,10 @@
 
 
 DEFUN ("indent-to", Findent_to, Sindent_to, 1, 2, "NIndent to column: ",
-  "Indent from point with tabs and spaces until COLUMN is reached.\n\
-Optional second argument MININUM says always do at least MININUM spaces\n\
-even if that goes past COLUMN; by default, MININUM is zero.")
-  (column, minimum)
+       doc: /* Indent from point with tabs and spaces until COLUMN is reached.
+Optional second argument MININUM says always do at least MININUM spaces
+even if that goes past COLUMN; by default, MININUM is zero.  */)
+     (column, minimum)
      Lisp_Object column, minimum;
 {
   int mincol;
@@ -766,11 +766,11 @@
 static int position_indentation P_ ((int));
 
 DEFUN ("current-indentation", Fcurrent_indentation, Scurrent_indentation,
-  0, 0, 0,
-  "Return the indentation of the current line.\n\
-This is the horizontal position of the character\n\
-following any initial whitespace.")
-  ()
+       0, 0, 0,
+       doc: /* Return the indentation of the current line.
+This is the horizontal position of the character
+following any initial whitespace.  */)
+     ()
 {
   Lisp_Object val;
   int opoint = PT, opoint_byte = PT_BYTE;
@@ -889,22 +889,23 @@
 }
 
 DEFUN ("move-to-column", Fmove_to_column, Smove_to_column, 1, 2, "p",
-  "Move point to column COLUMN in the current line.\n\
-The column of a character is calculated by adding together the widths\n\
-as displayed of the previous characters in the line.\n\
-This function ignores line-continuation;\n\
-there is no upper limit on the column number a character can have\n\
-and horizontal scrolling has no effect.\n\
-\n\
-If specified column is within a character, point goes after that character.\n\
-If it's past end of line, point goes to end of line.\n\n\
-A non-nil second (optional) argument FORCE means,\n\
-if COLUMN is in the middle of a tab character, change it to spaces.\n\
-In addition, if FORCE is t, and the line is too short\n\
-to reach column COLUMN, add spaces/tabs to get there.\n\
-\n\
-The return value is the current column.")
-  (column, force)
+       doc: /* Move point to column COLUMN in the current line.
+The column of a character is calculated by adding together the widths
+as displayed of the previous characters in the line.
+This function ignores line-continuation;
+there is no upper limit on the column number a character can have
+and horizontal scrolling has no effect.
+
+If specified column is within a character, point goes after that character.
+If it's past end of line, point goes to end of line.
+
+A non-nil second (optional) argument FORCE means,
+if COLUMN is in the middle of a tab character, change it to spaces.
+In addition, if FORCE is t, and the line is too short
+to reach column COLUMN, add spaces/tabs to get there.
+
+The return value is the current column.  */)
+     (column, force)
      Lisp_Object column, force;
 {
   register int pos;
@@ -1698,54 +1699,47 @@
 }
 
 
-#if 0 /* The doc string is too long for some compilers,
-	 but make-docfile can find it in this comment.  */
-DEFUN ("compute-motion", Ffoo, Sfoo, 7, 7, 0,
-  "Scan through the current buffer, calculating screen position.\n\
-Scan the current buffer forward from offset FROM,\n\
-assuming it is at position FROMPOS--a cons of the form (HPOS . VPOS)--\n\
-to position TO or position TOPOS--another cons of the form (HPOS . VPOS)--\n\
-and return the ending buffer position and screen location.\n\
-\n\
-There are three additional arguments:\n\
-\n\
-WIDTH is the number of columns available to display text;\n\
-this affects handling of continuation lines.\n\
-This is usually the value returned by `window-width', less one (to allow\n\
-for the continuation glyph).\n\
-\n\
-OFFSETS is either nil or a cons cell (HSCROLL . TAB-OFFSET).\n\
-HSCROLL is the number of columns not being displayed at the left\n\
-margin; this is usually taken from a window's hscroll member.\n\
-TAB-OFFSET is the number of columns of the first tab that aren't\n\
-being displayed, perhaps because the line was continued within it.\n\
-If OFFSETS is nil, HSCROLL and TAB-OFFSET are assumed to be zero.\n\
-\n\
-WINDOW is the window to operate on.  It is used to choose the display table;\n\
-if it is showing the current buffer, it is used also for\n\
-deciding which overlay properties apply.\n\
-Note that `compute-motion' always operates on the current buffer.\n\
-\n\
-The value is a list of five elements:\n\
-  (POS HPOS VPOS PREVHPOS CONTIN)\n\
-POS is the buffer position where the scan stopped.\n\
-VPOS is the vertical position where the scan stopped.\n\
-HPOS is the horizontal position where the scan stopped.\n\
-\n\
-PREVHPOS is the horizontal position one character back from POS.\n\
-CONTIN is t if a line was continued after (or within) the previous character.\n\
-\n\
-For example, to find the buffer position of column COL of line LINE\n\
-of a certain window, pass the window's starting location as FROM\n\
-and the window's upper-left coordinates as FROMPOS.\n\
-Pass the buffer's (point-max) as TO, to limit the scan to the end of the\n\
-visible section of the buffer, and pass LINE and COL as TOPOS.")
-  (from, frompos, to, topos, width, offsets, window)
-#endif
+DEFUN ("compute-motion", Fcompute_motion, Scompute_motion, 7, 7, 0,
+       doc: /* Scan through the current buffer, calculating screen position.
+Scan the current buffer forward from offset FROM,
+assuming it is at position FROMPOS--a cons of the form (HPOS . VPOS)--
+to position TO or position TOPOS--another cons of the form (HPOS . VPOS)--
+and return the ending buffer position and screen location.
+
+There are three additional arguments:
+
+WIDTH is the number of columns available to display text;
+this affects handling of continuation lines.
+This is usually the value returned by `window-width', less one (to allow
+for the continuation glyph).
+
+OFFSETS is either nil or a cons cell (HSCROLL . TAB-OFFSET).
+HSCROLL is the number of columns not being displayed at the left
+margin; this is usually taken from a window's hscroll member.
+TAB-OFFSET is the number of columns of the first tab that aren't
+being displayed, perhaps because the line was continued within it.
+If OFFSETS is nil, HSCROLL and TAB-OFFSET are assumed to be zero.
 
-DEFUN ("compute-motion", Fcompute_motion, Scompute_motion, 7, 7, 0,
-  0)
-  (from, frompos, to, topos, width, offsets, window)
+WINDOW is the window to operate on.  It is used to choose the display table;
+if it is showing the current buffer, it is used also for
+deciding which overlay properties apply.
+Note that `compute-motion' always operates on the current buffer.
+
+The value is a list of five elements:
+  (POS HPOS VPOS PREVHPOS CONTIN)
+POS is the buffer position where the scan stopped.
+VPOS is the vertical position where the scan stopped.
+HPOS is the horizontal position where the scan stopped.
+
+PREVHPOS is the horizontal position one character back from POS.
+CONTIN is t if a line was continued after (or within) the previous character.
+
+For example, to find the buffer position of column COL of line LINE
+of a certain window, pass the window's starting location as FROM
+and the window's upper-left coordinates as FROMPOS.
+Pass the buffer's (point-max) as TO, to limit the scan to the end of the
+visible section of the buffer, and pass LINE and COL as TOPOS.  */)
+     (from, frompos, to, topos, width, offsets, window)
      Lisp_Object from, frompos, to, topos;
      Lisp_Object width, offsets, window;
 {
@@ -1953,27 +1947,27 @@
 }
 
 DEFUN ("vertical-motion", Fvertical_motion, Svertical_motion, 1, 2, 0,
-  "Move point to start of the screen line LINES lines down.\n\
-If LINES is negative, this means moving up.\n\
-\n\
-This function is an ordinary cursor motion function\n\
-which calculates the new position based on how text would be displayed.\n\
-The new position may be the start of a line,\n\
-or just the start of a continuation line.\n\
-The function returns number of screen lines moved over;\n\
-that usually equals LINES, but may be closer to zero\n\
-if beginning or end of buffer was reached.\n\
-\n\
-The optional second argument WINDOW specifies the window to use for\n\
-parameters such as width, horizontal scrolling, and so on.\n\
-The default is to use the selected window's parameters.\n\
-\n\
-`vertical-motion' always uses the current buffer,\n\
-regardless of which buffer is displayed in WINDOW.\n\
-This is consistent with other cursor motion functions\n\
-and makes it possible to use `vertical-motion' in any buffer,\n\
-whether or not it is currently displayed in some window.")
-  (lines, window)
+       doc: /* Move point to start of the screen line LINES lines down.
+If LINES is negative, this means moving up.
+
+This function is an ordinary cursor motion function
+which calculates the new position based on how text would be displayed.
+The new position may be the start of a line,
+or just the start of a continuation line.
+The function returns number of screen lines moved over;
+that usually equals LINES, but may be closer to zero
+if beginning or end of buffer was reached.
+
+The optional second argument WINDOW specifies the window to use for
+parameters such as width, horizontal scrolling, and so on.
+The default is to use the selected window's parameters.
+
+`vertical-motion' always uses the current buffer,
+regardless of which buffer is displayed in WINDOW.
+This is consistent with other cursor motion functions
+and makes it possible to use `vertical-motion' in any buffer,
+whether or not it is currently displayed in some window.  */)
+     (lines, window)
      Lisp_Object lines, window;
 {
   struct it it;
@@ -2017,8 +2011,8 @@
 syms_of_indent ()
 {
   DEFVAR_BOOL ("indent-tabs-mode", &indent_tabs_mode,
-    "*Indentation can insert tabs if this is non-nil.\n\
-Setting this variable automatically makes it local to the current buffer.");
+	       doc: /* *Indentation can insert tabs if this is non-nil.
+Setting this variable automatically makes it local to the current buffer.  */);
   indent_tabs_mode = 1;
 
   defsubr (&Scurrent_indentation);
--- a/src/print.c	Sun Oct 21 12:08:54 2001 +0000
+++ b/src/print.c	Sun Oct 21 12:13:46 2001 +0000
@@ -523,9 +523,9 @@
 }
 
 DEFUN ("write-char", Fwrite_char, Swrite_char, 1, 2, 0,
-  "Output character CHARACTER to stream PRINTCHARFUN.\n\
-PRINTCHARFUN defaults to the value of `standard-output' (which see).")
-  (character, printcharfun)
+       doc: /* Output character CHARACTER to stream PRINTCHARFUN.
+PRINTCHARFUN defaults to the value of `standard-output' (which see).  */)
+     (character, printcharfun)
      Lisp_Object character, printcharfun;
 {
   PRINTDECLARE;
@@ -634,23 +634,23 @@
 
 DEFUN ("with-output-to-temp-buffer", Fwith_output_to_temp_buffer, Swith_output_to_temp_buffer,
        1, UNEVALLED, 0,
-  "Bind `standard-output' to buffer BUFNAME, eval BODY, then show that buffer.\n\
-The buffer is cleared out initially, and marked as unmodified when done.\n\
-All output done by BODY is inserted in that buffer by default.\n\
-The buffer is displayed in another window, but not selected.\n\
-The value of the last form in BODY is returned.\n\
-If BODY does not finish normally, the buffer BUFNAME is not displayed.\n\
-\n\
-The hook `temp-buffer-setup-hook' is run before BODY,\n\
-with the buffer BUFNAME temporarily current.\n\
-The hook `temp-buffer-show-hook' is run after the buffer is displayed,\n\
-with the buffer temporarily current, and the window that was used\n\
-to display it temporarily selected.\n\
-\n\
-If variable `temp-buffer-show-function' is non-nil, call it at the end\n\
-to get the buffer displayed instead of just displaying the non-selected\n\
-buffer and calling the hook.  It gets one argument, the buffer to display.")
-  (args)
+       doc: /* Bind `standard-output' to buffer BUFNAME, eval BODY, then show that buffer.
+The buffer is cleared out initially, and marked as unmodified when done.
+All output done by BODY is inserted in that buffer by default.
+The buffer is displayed in another window, but not selected.
+The value of the last form in BODY is returned.
+If BODY does not finish normally, the buffer BUFNAME is not displayed.
+
+The hook `temp-buffer-setup-hook' is run before BODY,
+with the buffer BUFNAME temporarily current.
+The hook `temp-buffer-show-hook' is run after the buffer is displayed,
+with the buffer temporarily current, and the window that was used
+to display it temporarily selected.
+
+If variable `temp-buffer-show-function' is non-nil, call it at the end
+to get the buffer displayed instead of just displaying the non-selected
+buffer and calling the hook.  It gets one argument, the buffer to display.  */)
+     (args)
      Lisp_Object args;
 {
   struct gcpro gcpro1;
@@ -681,8 +681,8 @@
 static void print_object ();
 
 DEFUN ("terpri", Fterpri, Sterpri, 0, 1, 0,
-  "Output a newline to stream PRINTCHARFUN.\n\
-If PRINTCHARFUN is omitted or nil, the value of `standard-output' is used.")
+       doc: /* Output a newline to stream PRINTCHARFUN.
+If PRINTCHARFUN is omitted or nil, the value of `standard-output' is used.  */)
   (printcharfun)
      Lisp_Object printcharfun;
 {
@@ -697,28 +697,28 @@
 }
 
 DEFUN ("prin1", Fprin1, Sprin1, 1, 2, 0,
-  "Output the printed representation of OBJECT, any Lisp object.\n\
-Quoting characters are printed when needed to make output that `read'\n\
-can handle, whenever this is possible.\n\
-\n\
-OBJECT is any of the Lisp data types: a number, a string, a symbol,\n\
-a list, a buffer, a window, a frame, etc.\n\
-\n\
-A printed representation of an object is text which describes that object.\n\
-\n\
-Optional argument PRINTCHARFUN is the output stream, which can be one\n\
-of these:\n\
-\n\
-   - a buffer, in which case output is inserted into that buffer at point;\n\
-   - a marker, in which case output is inserted at marker's position;\n\
-   - a function, in which case that function is called once for each\n\
-     character of OBJECT's printed representation;\n\
-   - a symbol, in which case that symbol's function definition is called; or\n\
-   - t, in which case the output is displayed in the echo area.\n\
-\n\
-If PRINTCHARFUN is omitted, the value of `standard-output' (which see)\n\
-is used instead.")
-  (object, printcharfun)
+       doc: /* Output the printed representation of OBJECT, any Lisp object.
+Quoting characters are printed when needed to make output that `read'
+can handle, whenever this is possible.
+
+OBJECT is any of the Lisp data types: a number, a string, a symbol,
+a list, a buffer, a window, a frame, etc.
+
+A printed representation of an object is text which describes that object.
+
+Optional argument PRINTCHARFUN is the output stream, which can be one
+of these:
+
+   - a buffer, in which case output is inserted into that buffer at point;
+   - a marker, in which case output is inserted at marker's position;
+   - a function, in which case that function is called once for each
+     character of OBJECT's printed representation;
+   - a symbol, in which case that symbol's function definition is called; or
+   - t, in which case the output is displayed in the echo area.
+
+If PRINTCHARFUN is omitted, the value of `standard-output' (which see)
+is used instead.  */)
+     (object, printcharfun)
      Lisp_Object object, printcharfun;
 {
   PRINTDECLARE;
@@ -738,16 +738,16 @@
 Lisp_Object Vprin1_to_string_buffer;
 
 DEFUN ("prin1-to-string", Fprin1_to_string, Sprin1_to_string, 1, 2, 0,
-  "Return a string containing the printed representation of OBJECT,\n\
-any Lisp object.  Quoting characters are used when needed to make output\n\
-that `read' can handle, whenever this is possible, unless the optional\n\
-second argument NOESCAPE is non-nil.\n\
-\n\
-OBJECT is any of the Lisp data types: a number, a string, a symbol,\n\
-a list, a buffer, a window, a frame, etc.\n\
-\n\
-A printed representation of an object is text which describes that object.")
-  (object, noescape)
+       doc: /* Return a string containing the printed representation of OBJECT,
+any Lisp object.  Quoting characters are used when needed to make output
+that `read' can handle, whenever this is possible, unless the optional
+second argument NOESCAPE is non-nil.
+
+OBJECT is any of the Lisp data types: a number, a string, a symbol,
+a list, a buffer, a window, a frame, etc.
+
+A printed representation of an object is text which describes that object.  */)
+     (object, noescape)
      Lisp_Object object, noescape;
 {
   PRINTDECLARE;
@@ -779,28 +779,28 @@
 }
 
 DEFUN ("princ", Fprinc, Sprinc, 1, 2, 0,
-  "Output the printed representation of OBJECT, any Lisp object.\n\
-No quoting characters are used; no delimiters are printed around\n\
-the contents of strings.\n\
-\n\
-OBJECT is any of the Lisp data types: a number, a string, a symbol,\n\
-a list, a buffer, a window, a frame, etc.\n\
-\n\
-A printed representation of an object is text which describes that object.\n\
-\n\
-Optional argument PRINTCHARFUN is the output stream, which can be one\n\
-of these:\n\
-\n\
-   - a buffer, in which case output is inserted into that buffer at point;\n\
-   - a marker, in which case output is inserted at marker's position;\n\
-   - a function, in which case that function is called once for each\n\
-     character of OBJECT's printed representation;\n\
-   - a symbol, in which case that symbol's function definition is called; or\n\
-   - t, in which case the output is displayed in the echo area.\n\
-\n\
-If PRINTCHARFUN is omitted, the value of `standard-output' (which see)\n\
-is used instead.")
-  (object, printcharfun)
+       doc: /* Output the printed representation of OBJECT, any Lisp object.
+No quoting characters are used; no delimiters are printed around
+the contents of strings.
+
+OBJECT is any of the Lisp data types: a number, a string, a symbol,
+a list, a buffer, a window, a frame, etc.
+
+A printed representation of an object is text which describes that object.
+
+Optional argument PRINTCHARFUN is the output stream, which can be one
+of these:
+
+   - a buffer, in which case output is inserted into that buffer at point;
+   - a marker, in which case output is inserted at marker's position;
+   - a function, in which case that function is called once for each
+     character of OBJECT's printed representation;
+   - a symbol, in which case that symbol's function definition is called; or
+   - t, in which case the output is displayed in the echo area.
+
+If PRINTCHARFUN is omitted, the value of `standard-output' (which see)
+is used instead.  */)
+     (object, printcharfun)
      Lisp_Object object, printcharfun;
 {
   PRINTDECLARE;
@@ -814,28 +814,28 @@
 }
 
 DEFUN ("print", Fprint, Sprint, 1, 2, 0,
-  "Output the printed representation of OBJECT, with newlines around it.\n\
-Quoting characters are printed when needed to make output that `read'\n\
-can handle, whenever this is possible.\n\
-\n\
-OBJECT is any of the Lisp data types: a number, a string, a symbol,\n\
-a list, a buffer, a window, a frame, etc.\n\
-\n\
-A printed representation of an object is text which describes that object.\n\
-\n\
-Optional argument PRINTCHARFUN is the output stream, which can be one\n\
-of these:\n\
-\n\
-   - a buffer, in which case output is inserted into that buffer at point;\n\
-   - a marker, in which case output is inserted at marker's position;\n\
-   - a function, in which case that function is called once for each\n\
-     character of OBJECT's printed representation;\n\
-   - a symbol, in which case that symbol's function definition is called; or\n\
-   - t, in which case the output is displayed in the echo area.\n\
-\n\
-If PRINTCHARFUN is omitted, the value of `standard-output' (which see)\n\
-is used instead.")
-  (object, printcharfun)
+       doc: /* Output the printed representation of OBJECT, with newlines around it.
+Quoting characters are printed when needed to make output that `read'
+can handle, whenever this is possible.
+
+OBJECT is any of the Lisp data types: a number, a string, a symbol,
+a list, a buffer, a window, a frame, etc.
+
+A printed representation of an object is text which describes that object.
+
+Optional argument PRINTCHARFUN is the output stream, which can be one
+of these:
+
+   - a buffer, in which case output is inserted into that buffer at point;
+   - a marker, in which case output is inserted at marker's position;
+   - a function, in which case that function is called once for each
+     character of OBJECT's printed representation;
+   - a symbol, in which case that symbol's function definition is called; or
+   - t, in which case the output is displayed in the echo area.
+
+If PRINTCHARFUN is omitted, the value of `standard-output' (which see)
+is used instead.  */)
+     (object, printcharfun)
      Lisp_Object object, printcharfun;
 {
   PRINTDECLARE;
@@ -866,10 +866,10 @@
 Lisp_Object Qexternal_debugging_output;
 
 DEFUN ("external-debugging-output", Fexternal_debugging_output, Sexternal_debugging_output, 1, 1, 0,
-  "Write CHARACTER to stderr.\n\
-You can call print while debugging emacs, and pass it this function\n\
-to make it write to the debugging output.\n")
-  (character)
+       doc: /* Write CHARACTER to stderr.
+You can call print while debugging emacs, and pass it this function
+to make it write to the debugging output.  */)
+     (character)
      Lisp_Object character;
 {
   CHECK_NUMBER (character, 0);
@@ -898,8 +898,8 @@
 
 DEFUN ("error-message-string", Ferror_message_string, Serror_message_string,
        1, 1, 0,
-  "Convert an error value (ERROR-SYMBOL . DATA) to an error message.")
-  (obj)
+       doc: /* Convert an error value (ERROR-SYMBOL . DATA) to an error message.  */)
+     (obj)
      Lisp_Object obj;
 {
   struct buffer *old = current_buffer;
@@ -1978,102 +1978,103 @@
   staticpro (&Qtemp_buffer_setup_hook);
 
   DEFVAR_LISP ("standard-output", &Vstandard_output,
-    "Output stream `print' uses by default for outputting a character.\n\
-This may be any function of one argument.\n\
-It may also be a buffer (output is inserted before point)\n\
-or a marker (output is inserted and the marker is advanced)\n\
-or the symbol t (output appears in the echo area).");
+	       doc: /* Output stream `print' uses by default for outputting a character.
+This may be any function of one argument.
+It may also be a buffer (output is inserted before point)
+or a marker (output is inserted and the marker is advanced)
+or the symbol t (output appears in the echo area).  */);
   Vstandard_output = Qt;
   Qstandard_output = intern ("standard-output");
   staticpro (&Qstandard_output);
 
   DEFVAR_LISP ("float-output-format", &Vfloat_output_format,
-    "The format descriptor string used to print floats.\n\
-This is a %-spec like those accepted by `printf' in C,\n\
-but with some restrictions.  It must start with the two characters `%.'.\n\
-After that comes an integer precision specification,\n\
-and then a letter which controls the format.\n\
-The letters allowed are `e', `f' and `g'.\n\
-Use `e' for exponential notation \"DIG.DIGITSeEXPT\"\n\
-Use `f' for decimal point notation \"DIGITS.DIGITS\".\n\
-Use `g' to choose the shorter of those two formats for the number at hand.\n\
-The precision in any of these cases is the number of digits following\n\
-the decimal point.  With `f', a precision of 0 means to omit the\n\
-decimal point.  0 is not allowed with `e' or `g'.\n\n\
-A value of nil means to use the shortest notation\n\
-that represents the number without losing information.");
+	       doc: /* The format descriptor string used to print floats.
+This is a %-spec like those accepted by `printf' in C,
+but with some restrictions.  It must start with the two characters `%.'.
+After that comes an integer precision specification,
+and then a letter which controls the format.
+The letters allowed are `e', `f' and `g'.
+Use `e' for exponential notation \"DIG.DIGITSeEXPT\"
+Use `f' for decimal point notation \"DIGITS.DIGITS\".
+Use `g' to choose the shorter of those two formats for the number at hand.
+The precision in any of these cases is the number of digits following
+the decimal point.  With `f', a precision of 0 means to omit the
+decimal point.  0 is not allowed with `e' or `g'.
+
+A value of nil means to use the shortest notation
+that represents the number without losing information.  */);
   Vfloat_output_format = Qnil;
   Qfloat_output_format = intern ("float-output-format");
   staticpro (&Qfloat_output_format);
 
   DEFVAR_LISP ("print-length", &Vprint_length,
-    "Maximum length of list to print before abbreviating.\n\
-A value of nil means no limit.  See also `eval-expression-print-length'.");
+	       doc: /* Maximum length of list to print before abbreviating.
+A value of nil means no limit.  See also `eval-expression-print-length'.  */);
   Vprint_length = Qnil;
 
   DEFVAR_LISP ("print-level", &Vprint_level,
-    "Maximum depth of list nesting to print before abbreviating.\n\
-A value of nil means no limit.  See also `eval-expression-print-level'.");
+	       doc: /* Maximum depth of list nesting to print before abbreviating.
+A value of nil means no limit.  See also `eval-expression-print-level'.  */);
   Vprint_level = Qnil;
 
   DEFVAR_BOOL ("print-escape-newlines", &print_escape_newlines,
-    "Non-nil means print newlines in strings as `\\n'.\n\
-Also print formfeeds as `\\f'.");
+	       doc: /* Non-nil means print newlines in strings as `\\n'.
+Also print formfeeds as `\\f'.  */);
   print_escape_newlines = 0;
 
   DEFVAR_BOOL ("print-escape-nonascii", &print_escape_nonascii,
-    "Non-nil means print unibyte non-ASCII chars in strings as \\OOO.\n\
-\(OOO is the octal representation of the character code.)\n\
-Only single-byte characters are affected, and only in `prin1'.");
+	       doc: /* Non-nil means print unibyte non-ASCII chars in strings as \\OOO.
+\(OOO is the octal representation of the character code.)
+Only single-byte characters are affected, and only in `prin1'.  */);
   print_escape_nonascii = 0;
 
   DEFVAR_BOOL ("print-escape-multibyte", &print_escape_multibyte,
-    "Non-nil means print multibyte characters in strings as \\xXXXX.\n\
-\(XXXX is the hex representation of the character code.)\n\
-This affects only `prin1'.");
+	       doc: /* Non-nil means print multibyte characters in strings as \\xXXXX.
+\(XXXX is the hex representation of the character code.)
+This affects only `prin1'.  */);
   print_escape_multibyte = 0;
 
   DEFVAR_BOOL ("print-quoted", &print_quoted,
-    "Non-nil means print quoted forms with reader syntax.\n\
-I.e., (quote foo) prints as 'foo, (function foo) as #'foo, and backquoted\n\
-forms print as in the new syntax.");
+	       doc: /* Non-nil means print quoted forms with reader syntax.
+I.e., (quote foo) prints as 'foo, (function foo) as #'foo, and backquoted
+forms print as in the new syntax.  */);
   print_quoted = 0;
 
   DEFVAR_LISP ("print-gensym", &Vprint_gensym,
-    "Non-nil means print uninterned symbols so they will read as uninterned.\n\
-I.e., the value of (make-symbol \"foobar\") prints as #:foobar.\n\
-When the uninterned symbol appears within a recursive data structure,\n\
-and the symbol appears more than once, in addition use the #N# and #N=\n\
-constructs as needed, so that multiple references to the same symbol are\n\
-shared once again when the text is read back.");
+	       doc: /* Non-nil means print uninterned symbols so they will read as uninterned.
+I.e., the value of (make-symbol \"foobar\") prints as #:foobar.
+When the uninterned symbol appears within a recursive data structure,
+and the symbol appears more than once, in addition use the #N# and #N=
+constructs as needed, so that multiple references to the same symbol are
+shared once again when the text is read back.  */);
   Vprint_gensym = Qnil;
 
   DEFVAR_LISP ("print-circle", &Vprint_circle,
-    "*Non-nil means print recursive structures using #N= and #N# syntax.\n\
-If nil, printing proceeds recursively and may lead to\n\
-`max-lisp-eval-depth' being exceeded or an error may occur:\n\
-\"Apparently circular structure being printed.\"  Also see\n\
-`print-length' and `print-level'.\n\
-If non-nil, shared substructures anywhere in the structure are printed\n\
-with `#N=' before the first occurrence (in the order of the print\n\
-representation) and `#N#' in place of each subsequent occurrence,\n\
-where N is a positive decimal integer.");
+	       doc: /* *Non-nil means print recursive structures using #N= and #N# syntax.
+If nil, printing proceeds recursively and may lead to
+`max-lisp-eval-depth' being exceeded or an error may occur:
+\"Apparently circular structure being printed.\"  Also see
+`print-length' and `print-level'.
+If non-nil, shared substructures anywhere in the structure are printed
+with `#N=' before the first occurrence (in the order of the print
+representation) and `#N#' in place of each subsequent occurrence,
+where N is a positive decimal integer.  */);
   Vprint_circle = Qnil;
 
   DEFVAR_LISP ("print-continuous-numbering", &Vprint_continuous_numbering,
-  "*Non-nil means number continuously across print calls.\n\
-This affects the numbers printed for #N= labels and #M# references.\n\
-See also `print-circle', `print-gensym', and `print-number-table'.\n\
-This variable should not be set with `setq'; bind it with a `let' instead.");
+	       doc: /* *Non-nil means number continuously across print calls.
+This affects the numbers printed for #N= labels and #M# references.
+See also `print-circle', `print-gensym', and `print-number-table'.
+This variable should not be set with `setq'; bind it with a `let' instead.  */);
   Vprint_continuous_numbering = Qnil;
 
   DEFVAR_LISP ("print-number-table", &Vprint_number_table,
-  "A vector used internally to produce `#N=' labels and `#N#' references.\n\
-The Lisp printer uses this vector to detect Lisp objects referenced more\n\
-than once.  When `print-continuous-numbering' is bound to t, you should\n\
-probably also bind `print-number-table' to nil.  This ensures that the\n\
-value of `print-number-table' can be garbage-collected once the printing\n\
-is done.");
+	       doc: /* A vector used internally to produce `#N=' labels and `#N#' references.
+The Lisp printer uses this vector to detect Lisp objects referenced more
+than once.  When `print-continuous-numbering' is bound to t, you should
+probably also bind `print-number-table' to nil.  This ensures that the
+value of `print-number-table' can be garbage-collected once the printing
+is done.  */);
   Vprint_number_table = Qnil;
 
   /* prin1_to_string_buffer initialized in init_buffer_once in buffer.c */
--- a/src/search.c	Sun Oct 21 12:08:54 2001 +0000
+++ b/src/search.c	Sun Oct 21 12:13:46 2001 +0000
@@ -330,23 +330,23 @@
 }
 
 DEFUN ("looking-at", Flooking_at, Slooking_at, 1, 1, 0,
-  "Return t if text after point matches regular expression REGEXP.\n\
-This function modifies the match data that `match-beginning',\n\
-`match-end' and `match-data' access; save and restore the match\n\
-data if you want to preserve them.")
-  (regexp)
+       doc: /* Return t if text after point matches regular expression REGEXP.
+This function modifies the match data that `match-beginning',
+`match-end' and `match-data' access; save and restore the match
+data if you want to preserve them.  */)
+     (regexp)
      Lisp_Object regexp;
 {
   return looking_at_1 (regexp, 0);
 }
 
 DEFUN ("posix-looking-at", Fposix_looking_at, Sposix_looking_at, 1, 1, 0,
-  "Return t if text after point matches regular expression REGEXP.\n\
-Find the longest match, in accord with Posix regular expression rules.\n\
-This function modifies the match data that `match-beginning',\n\
-`match-end' and `match-data' access; save and restore the match\n\
-data if you want to preserve them.")
-  (regexp)
+       doc: /* Return t if text after point matches regular expression REGEXP.
+Find the longest match, in accord with Posix regular expression rules.
+This function modifies the match data that `match-beginning',
+`match-end' and `match-data' access; save and restore the match
+data if you want to preserve them.  */)
+     (regexp)
      Lisp_Object regexp;
 {
   return looking_at_1 (regexp, 1);
@@ -414,27 +414,27 @@
 }
 
 DEFUN ("string-match", Fstring_match, Sstring_match, 2, 3, 0,
-  "Return index of start of first match for REGEXP in STRING, or nil.\n\
-Case is ignored if `case-fold-search' is non-nil in the current buffer.\n\
-If third arg START is non-nil, start search at that index in STRING.\n\
-For index of first char beyond the match, do (match-end 0).\n\
-`match-end' and `match-beginning' also give indices of substrings\n\
-matched by parenthesis constructs in the pattern.")
-  (regexp, string, start)
+       doc: /* Return index of start of first match for REGEXP in STRING, or nil.
+Case is ignored if `case-fold-search' is non-nil in the current buffer.
+If third arg START is non-nil, start search at that index in STRING.
+For index of first char beyond the match, do (match-end 0).
+`match-end' and `match-beginning' also give indices of substrings
+matched by parenthesis constructs in the pattern.  */)
+     (regexp, string, start)
      Lisp_Object regexp, string, start;
 {
   return string_match_1 (regexp, string, start, 0);
 }
 
 DEFUN ("posix-string-match", Fposix_string_match, Sposix_string_match, 2, 3, 0,
-  "Return index of start of first match for REGEXP in STRING, or nil.\n\
-Find the longest match, in accord with Posix regular expression rules.\n\
-Case is ignored if `case-fold-search' is non-nil in the current buffer.\n\
-If third arg START is non-nil, start search at that index in STRING.\n\
-For index of first char beyond the match, do (match-end 0).\n\
-`match-end' and `match-beginning' also give indices of substrings\n\
-matched by parenthesis constructs in the pattern.")
-  (regexp, string, start)
+       doc: /* Return index of start of first match for REGEXP in STRING, or nil.
+Find the longest match, in accord with Posix regular expression rules.
+Case is ignored if `case-fold-search' is non-nil in the current buffer.
+If third arg START is non-nil, start search at that index in STRING.
+For index of first char beyond the match, do (match-end 0).
+`match-end' and `match-beginning' also give indices of substrings
+matched by parenthesis constructs in the pattern.  */)
+     (regexp, string, start)
      Lisp_Object regexp, string, start;
 {
   return string_match_1 (regexp, string, start, 1);
@@ -2018,182 +2018,183 @@
 }
 
 DEFUN ("search-backward", Fsearch_backward, Ssearch_backward, 1, 4,
-  "MSearch backward: ",
-  "Search backward from point for STRING.\n\
-Set point to the beginning of the occurrence found, and return point.\n\
-An optional second argument bounds the search; it is a buffer position.\n\
-The match found must not extend before that position.\n\
-Optional third argument, if t, means if fail just return nil (no error).\n\
- If not nil and not t, position at limit of search and return nil.\n\
-Optional fourth argument is repeat count--search for successive occurrences.\n\
-\n\
-Search case-sensitivity is determined by the value of the variable\n\
-`case-fold-search', which see.\n\
-\n\
-See also the functions `match-beginning', `match-end' and `replace-match'.")
-  (string, bound, noerror, count)
+       "MSearch backward: ",
+       doc: /* Search backward from point for STRING.
+Set point to the beginning of the occurrence found, and return point.
+An optional second argument bounds the search; it is a buffer position.
+The match found must not extend before that position.
+Optional third argument, if t, means if fail just return nil (no error).
+ If not nil and not t, position at limit of search and return nil.
+Optional fourth argument is repeat count--search for successive occurrences.
+
+Search case-sensitivity is determined by the value of the variable
+`case-fold-search', which see.
+
+See also the functions `match-beginning', `match-end' and `replace-match'.  */)
+     (string, bound, noerror, count)
      Lisp_Object string, bound, noerror, count;
 {
   return search_command (string, bound, noerror, count, -1, 0, 0);
 }
 
 DEFUN ("search-forward", Fsearch_forward, Ssearch_forward, 1, 4, "MSearch: ",
-  "Search forward from point for STRING.\n\
-Set point to the end of the occurrence found, and return point.\n\
-An optional second argument bounds the search; it is a buffer position.\n\
-The match found must not extend after that position.  nil is equivalent\n\
-  to (point-max).\n\
-Optional third argument, if t, means if fail just return nil (no error).\n\
-  If not nil and not t, move to limit of search and return nil.\n\
-Optional fourth argument is repeat count--search for successive occurrences.\n\
-\n\
-Search case-sensitivity is determined by the value of the variable\n\
-`case-fold-search', which see.\n\
-\n\
-See also the functions `match-beginning', `match-end' and `replace-match'.")
-  (string, bound, noerror, count)
+       doc: /* Search forward from point for STRING.
+Set point to the end of the occurrence found, and return point.
+An optional second argument bounds the search; it is a buffer position.
+The match found must not extend after that position.  nil is equivalent
+  to (point-max).
+Optional third argument, if t, means if fail just return nil (no error).
+  If not nil and not t, move to limit of search and return nil.
+Optional fourth argument is repeat count--search for successive occurrences.
+
+Search case-sensitivity is determined by the value of the variable
+`case-fold-search', which see.
+
+See also the functions `match-beginning', `match-end' and `replace-match'.  */)
+     (string, bound, noerror, count)
      Lisp_Object string, bound, noerror, count;
 {
   return search_command (string, bound, noerror, count, 1, 0, 0);
 }
 
 DEFUN ("word-search-backward", Fword_search_backward, Sword_search_backward, 1, 4,
-  "sWord search backward: ",
-  "Search backward from point for STRING, ignoring differences in punctuation.\n\
-Set point to the beginning of the occurrence found, and return point.\n\
-An optional second argument bounds the search; it is a buffer position.\n\
-The match found must not extend before that position.\n\
-Optional third argument, if t, means if fail just return nil (no error).\n\
-  If not nil and not t, move to limit of search and return nil.\n\
-Optional fourth argument is repeat count--search for successive occurrences.")
-  (string, bound, noerror, count)
+       "sWord search backward: ",
+       doc: /* Search backward from point for STRING, ignoring differences in punctuation.
+Set point to the beginning of the occurrence found, and return point.
+An optional second argument bounds the search; it is a buffer position.
+The match found must not extend before that position.
+Optional third argument, if t, means if fail just return nil (no error).
+  If not nil and not t, move to limit of search and return nil.
+Optional fourth argument is repeat count--search for successive occurrences.  */)
+     (string, bound, noerror, count)
      Lisp_Object string, bound, noerror, count;
 {
   return search_command (wordify (string), bound, noerror, count, -1, 1, 0);
 }
 
 DEFUN ("word-search-forward", Fword_search_forward, Sword_search_forward, 1, 4,
-  "sWord search: ",
-  "Search forward from point for STRING, ignoring differences in punctuation.\n\
-Set point to the end of the occurrence found, and return point.\n\
-An optional second argument bounds the search; it is a buffer position.\n\
-The match found must not extend after that position.\n\
-Optional third argument, if t, means if fail just return nil (no error).\n\
-  If not nil and not t, move to limit of search and return nil.\n\
-Optional fourth argument is repeat count--search for successive occurrences.")
-  (string, bound, noerror, count)
+       "sWord search: ",
+       doc: /* Search forward from point for STRING, ignoring differences in punctuation.
+Set point to the end of the occurrence found, and return point.
+An optional second argument bounds the search; it is a buffer position.
+The match found must not extend after that position.
+Optional third argument, if t, means if fail just return nil (no error).
+  If not nil and not t, move to limit of search and return nil.
+Optional fourth argument is repeat count--search for successive occurrences.  */)
+     (string, bound, noerror, count)
      Lisp_Object string, bound, noerror, count;
 {
   return search_command (wordify (string), bound, noerror, count, 1, 1, 0);
 }
 
 DEFUN ("re-search-backward", Fre_search_backward, Sre_search_backward, 1, 4,
-  "sRE search backward: ",
-  "Search backward from point for match for regular expression REGEXP.\n\
-Set point to the beginning of the match, and return point.\n\
-The match found is the one starting last in the buffer\n\
-and yet ending before the origin of the search.\n\
-An optional second argument bounds the search; it is a buffer position.\n\
-The match found must start at or after that position.\n\
-Optional third argument, if t, means if fail just return nil (no error).\n\
-  If not nil and not t, move to limit of search and return nil.\n\
-Optional fourth argument is repeat count--search for successive occurrences.\n\
-See also the functions `match-beginning', `match-end', `match-string',\n\
-and `replace-match'.")
-  (regexp, bound, noerror, count)
+       "sRE search backward: ",
+       doc: /* Search backward from point for match for regular expression REGEXP.
+Set point to the beginning of the match, and return point.
+The match found is the one starting last in the buffer
+and yet ending before the origin of the search.
+An optional second argument bounds the search; it is a buffer position.
+The match found must start at or after that position.
+Optional third argument, if t, means if fail just return nil (no error).
+  If not nil and not t, move to limit of search and return nil.
+Optional fourth argument is repeat count--search for successive occurrences.
+See also the functions `match-beginning', `match-end', `match-string',
+and `replace-match'.  */)
+     (regexp, bound, noerror, count)
      Lisp_Object regexp, bound, noerror, count;
 {
   return search_command (regexp, bound, noerror, count, -1, 1, 0);
 }
 
 DEFUN ("re-search-forward", Fre_search_forward, Sre_search_forward, 1, 4,
-  "sRE search: ",
-  "Search forward from point for regular expression REGEXP.\n\
-Set point to the end of the occurrence found, and return point.\n\
-An optional second argument bounds the search; it is a buffer position.\n\
-The match found must not extend after that position.\n\
-Optional third argument, if t, means if fail just return nil (no error).\n\
-  If not nil and not t, move to limit of search and return nil.\n\
-Optional fourth argument is repeat count--search for successive occurrences.\n\
-See also the functions `match-beginning', `match-end', `match-string',\n\
-and `replace-match'.")
-  (regexp, bound, noerror, count)
+       "sRE search: ",
+       doc: /* Search forward from point for regular expression REGEXP.
+Set point to the end of the occurrence found, and return point.
+An optional second argument bounds the search; it is a buffer position.
+The match found must not extend after that position.
+Optional third argument, if t, means if fail just return nil (no error).
+  If not nil and not t, move to limit of search and return nil.
+Optional fourth argument is repeat count--search for successive occurrences.
+See also the functions `match-beginning', `match-end', `match-string',
+and `replace-match'.  */)
+     (regexp, bound, noerror, count)
      Lisp_Object regexp, bound, noerror, count;
 {
   return search_command (regexp, bound, noerror, count, 1, 1, 0);
 }
 
 DEFUN ("posix-search-backward", Fposix_search_backward, Sposix_search_backward, 1, 4,
-  "sPosix search backward: ",
-  "Search backward from point for match for regular expression REGEXP.\n\
-Find the longest match in accord with Posix regular expression rules.\n\
-Set point to the beginning of the match, and return point.\n\
-The match found is the one starting last in the buffer\n\
-and yet ending before the origin of the search.\n\
-An optional second argument bounds the search; it is a buffer position.\n\
-The match found must start at or after that position.\n\
-Optional third argument, if t, means if fail just return nil (no error).\n\
-  If not nil and not t, move to limit of search and return nil.\n\
-Optional fourth argument is repeat count--search for successive occurrences.\n\
-See also the functions `match-beginning', `match-end', `match-string',\n\
-and `replace-match'.")
-  (regexp, bound, noerror, count)
+       "sPosix search backward: ",
+       doc: /* Search backward from point for match for regular expression REGEXP.
+Find the longest match in accord with Posix regular expression rules.
+Set point to the beginning of the match, and return point.
+The match found is the one starting last in the buffer
+and yet ending before the origin of the search.
+An optional second argument bounds the search; it is a buffer position.
+The match found must start at or after that position.
+Optional third argument, if t, means if fail just return nil (no error).
+  If not nil and not t, move to limit of search and return nil.
+Optional fourth argument is repeat count--search for successive occurrences.
+See also the functions `match-beginning', `match-end', `match-string',
+and `replace-match'.  */)
+     (regexp, bound, noerror, count)
      Lisp_Object regexp, bound, noerror, count;
 {
   return search_command (regexp, bound, noerror, count, -1, 1, 1);
 }
 
 DEFUN ("posix-search-forward", Fposix_search_forward, Sposix_search_forward, 1, 4,
-  "sPosix search: ",
-  "Search forward from point for regular expression REGEXP.\n\
-Find the longest match in accord with Posix regular expression rules.\n\
-Set point to the end of the occurrence found, and return point.\n\
-An optional second argument bounds the search; it is a buffer position.\n\
-The match found must not extend after that position.\n\
-Optional third argument, if t, means if fail just return nil (no error).\n\
-  If not nil and not t, move to limit of search and return nil.\n\
-Optional fourth argument is repeat count--search for successive occurrences.\n\
-See also the functions `match-beginning', `match-end', `match-string',\n\
-and `replace-match'.")
-  (regexp, bound, noerror, count)
+       "sPosix search: ",
+       doc: /* Search forward from point for regular expression REGEXP.
+Find the longest match in accord with Posix regular expression rules.
+Set point to the end of the occurrence found, and return point.
+An optional second argument bounds the search; it is a buffer position.
+The match found must not extend after that position.
+Optional third argument, if t, means if fail just return nil (no error).
+  If not nil and not t, move to limit of search and return nil.
+Optional fourth argument is repeat count--search for successive occurrences.
+See also the functions `match-beginning', `match-end', `match-string',
+and `replace-match'.  */)
+     (regexp, bound, noerror, count)
      Lisp_Object regexp, bound, noerror, count;
 {
   return search_command (regexp, bound, noerror, count, 1, 1, 1);
 }
 
 DEFUN ("replace-match", Freplace_match, Sreplace_match, 1, 5, 0,
-  "Replace text matched by last search with NEWTEXT.\n\
-If second arg FIXEDCASE is non-nil, do not alter case of replacement text.\n\
-Otherwise maybe capitalize the whole text, or maybe just word initials,\n\
-based on the replaced text.\n\
-If the replaced text has only capital letters\n\
-and has at least one multiletter word, convert NEWTEXT to all caps.\n\
-If the replaced text has at least one word starting with a capital letter,\n\
-then capitalize each word in NEWTEXT.\n\n\
-If third arg LITERAL is non-nil, insert NEWTEXT literally.\n\
-Otherwise treat `\\' as special:\n\
-  `\\&' in NEWTEXT means substitute original matched text.\n\
-  `\\N' means substitute what matched the Nth `\\(...\\)'.\n\
-       If Nth parens didn't match, substitute nothing.\n\
-  `\\\\' means insert one `\\'.\n\
-FIXEDCASE and LITERAL are optional arguments.\n\
-Leaves point at end of replacement text.\n\
-\n\
-The optional fourth argument STRING can be a string to modify.\n\
-This is meaningful when the previous match was done against STRING,\n\
-using `string-match'.  When used this way, `replace-match'\n\
-creates and returns a new string made by copying STRING and replacing\n\
-the part of STRING that was matched.\n\
-\n\
-The optional fifth argument SUBEXP specifies a subexpression;\n\
-it says to replace just that subexpression with NEWTEXT,\n\
-rather than replacing the entire matched text.\n\
-This is, in a vague sense, the inverse of using `\\N' in NEWTEXT;\n\
-`\\N' copies subexp N into NEWTEXT, but using N as SUBEXP puts\n\
-NEWTEXT in place of subexp N.\n\
-This is useful only after a regular expression search or match,\n\
-since only regular expressions have distinguished subexpressions.")
-  (newtext, fixedcase, literal, string, subexp)
+       doc: /* Replace text matched by last search with NEWTEXT.
+If second arg FIXEDCASE is non-nil, do not alter case of replacement text.
+Otherwise maybe capitalize the whole text, or maybe just word initials,
+based on the replaced text.
+If the replaced text has only capital letters
+and has at least one multiletter word, convert NEWTEXT to all caps.
+If the replaced text has at least one word starting with a capital letter,
+then capitalize each word in NEWTEXT.
+
+If third arg LITERAL is non-nil, insert NEWTEXT literally.
+Otherwise treat `\\' as special:
+  `\\&' in NEWTEXT means substitute original matched text.
+  `\\N' means substitute what matched the Nth `\\(...\\)'.
+       If Nth parens didn't match, substitute nothing.
+  `\\\\' means insert one `\\'.
+FIXEDCASE and LITERAL are optional arguments.
+Leaves point at end of replacement text.
+
+The optional fourth argument STRING can be a string to modify.
+This is meaningful when the previous match was done against STRING,
+using `string-match'.  When used this way, `replace-match'
+creates and returns a new string made by copying STRING and replacing
+the part of STRING that was matched.
+
+The optional fifth argument SUBEXP specifies a subexpression;
+it says to replace just that subexpression with NEWTEXT,
+rather than replacing the entire matched text.
+This is, in a vague sense, the inverse of using `\\N' in NEWTEXT;
+`\\N' copies subexp N into NEWTEXT, but using N as SUBEXP puts
+NEWTEXT in place of subexp N.
+This is useful only after a regular expression search or match,
+since only regular expressions have distinguished subexpressions.  */)
+     (newtext, fixedcase, literal, string, subexp)
      Lisp_Object newtext, fixedcase, literal, string, subexp;
 {
   enum { nochange, all_caps, cap_initial } case_action;
@@ -2597,43 +2598,43 @@
 }
 
 DEFUN ("match-beginning", Fmatch_beginning, Smatch_beginning, 1, 1, 0,
-  "Return position of start of text matched by last search.\n\
-SUBEXP, a number, specifies which parenthesized expression in the last\n\
-  regexp.\n\
-Value is nil if SUBEXPth pair didn't match, or there were less than\n\
-  SUBEXP pairs.\n\
-Zero means the entire text matched by the whole regexp or whole string.")
-  (subexp)
+       doc: /* Return position of start of text matched by last search.
+SUBEXP, a number, specifies which parenthesized expression in the last
+  regexp.
+Value is nil if SUBEXPth pair didn't match, or there were less than
+  SUBEXP pairs.
+Zero means the entire text matched by the whole regexp or whole string.  */)
+     (subexp)
      Lisp_Object subexp;
 {
   return match_limit (subexp, 1);
 }
 
 DEFUN ("match-end", Fmatch_end, Smatch_end, 1, 1, 0,
-  "Return position of end of text matched by last search.\n\
-SUBEXP, a number, specifies which parenthesized expression in the last\n\
-  regexp.\n\
-Value is nil if SUBEXPth pair didn't match, or there were less than\n\
-  SUBEXP pairs.\n\
-Zero means the entire text matched by the whole regexp or whole string.")
-  (subexp)
+       doc: /* Return position of end of text matched by last search.
+SUBEXP, a number, specifies which parenthesized expression in the last
+  regexp.
+Value is nil if SUBEXPth pair didn't match, or there were less than
+  SUBEXP pairs.
+Zero means the entire text matched by the whole regexp or whole string.  */)
+     (subexp)
      Lisp_Object subexp;
 {
   return match_limit (subexp, 0);
 } 
 
 DEFUN ("match-data", Fmatch_data, Smatch_data, 0, 2, 0,
-  "Return a list containing all info on what the last search matched.\n\
-Element 2N is `(match-beginning N)'; element 2N + 1 is `(match-end N)'.\n\
-All the elements are markers or nil (nil if the Nth pair didn't match)\n\
-if the last match was on a buffer; integers or nil if a string was matched.\n\
-Use `store-match-data' to reinstate the data in this list.\n\
-\n\
-If INTEGERS (the optional first argument) is non-nil, always use integers\n\
-\(rather than markers) to represent buffer positions.\n\
-If REUSE is a list, reuse it as part of the value.  If REUSE is long enough\n\
-to hold all the values, and if INTEGERS is non-nil, no consing is done.")
-  (integers, reuse)
+       doc: /* Return a list containing all info on what the last search matched.
+Element 2N is `(match-beginning N)'; element 2N + 1 is `(match-end N)'.
+All the elements are markers or nil (nil if the Nth pair didn't match)
+if the last match was on a buffer; integers or nil if a string was matched.
+Use `store-match-data' to reinstate the data in this list.
+
+If INTEGERS (the optional first argument) is non-nil, always use integers
+\(rather than markers) to represent buffer positions.
+If REUSE is a list, reuse it as part of the value.  If REUSE is long enough
+to hold all the values, and if INTEGERS is non-nil, no consing is done.  */)
+     (integers, reuse)
      Lisp_Object integers, reuse;
 {
   Lisp_Object tail, prev;
@@ -2707,9 +2708,9 @@
 
 
 DEFUN ("set-match-data", Fset_match_data, Sset_match_data, 1, 1, 0,
-  "Set internal data on last search match from elements of LIST.\n\
-LIST should have been created by calling `match-data' previously.")
-  (list)
+       doc: /* Set internal data on last search match from elements of LIST.
+LIST should have been created by calling `match-data' previously.  */)
+     (list)
      register Lisp_Object list;
 {
   register int i;
@@ -2838,8 +2839,8 @@
 /* Quote a string to inactivate reg-expr chars */
 
 DEFUN ("regexp-quote", Fregexp_quote, Sregexp_quote, 1, 1, 0,
-  "Return a regexp string which matches exactly STRING and nothing else.")
-  (string)
+       doc: /* Return a regexp string which matches exactly STRING and nothing else.  */)
+     (string)
      Lisp_Object string;
 {
   register unsigned char *in, *out, *end;
--- a/src/sound.c	Sun Oct 21 12:08:54 2001 +0000
+++ b/src/sound.c	Sun Oct 21 12:13:46 2001 +0000
@@ -370,24 +370,24 @@
 
 
 DEFUN ("play-sound", Fplay_sound, Splay_sound, 1, 1, 0,
-  "Play sound SOUND.\n\
-SOUND is a list of the form `(sound KEYWORD VALUE...)'.\n\
-The following keywords are recognized:\n\
-\n\
-  :file FILE.- read sound data from FILE.  If FILE isn't an\n\
-absolute file name, it is searched in `data-directory'.\n\
-\n\
-  :data DATA - read sound data from string DATA.\n\
-\n\
-Exactly one of :file or :data must be present.\n\
-\n\
-  :volume VOL - set volume to VOL.  VOL must an integer in the\n\
-range 0..100 or a float in the range 0..1.0.  If not specified,\n\
-don't change the volume setting of the sound device.\n\
-\n\
-  :device DEVICE - play sound on DEVICE.  If not specified,\n\
-a system-dependent default device name is used.")
-  (sound)
+       doc: /* Play sound SOUND.
+SOUND is a list of the form `(sound KEYWORD VALUE...)'.
+The following keywords are recognized:
+
+  :file FILE.- read sound data from FILE.  If FILE isn't an
+absolute file name, it is searched in `data-directory'.
+
+  :data DATA - read sound data from string DATA.
+
+Exactly one of :file or :data must be present.
+
+  :volume VOL - set volume to VOL.  VOL must an integer in the
+range 0..100 or a float in the range 0..1.0.  If not specified,
+don't change the volume setting of the sound device.
+
+  :device DEVICE - play sound on DEVICE.  If not specified,
+a system-dependent default device name is used.  */)
+     (sound)
      Lisp_Object sound;
 {
   Lisp_Object attrs[SOUND_ATTR_SENTINEL];
--- a/src/sunfns.c	Sun Oct 21 12:08:54 2001 +0000
+++ b/src/sunfns.c	Sun Oct 21 12:13:46 2001 +0000
@@ -108,12 +108,12 @@
  *	Initialize window
  */
 DEFUN ("sun-window-init", Fsun_window_init, Ssun_window_init, 0, 1, 0,
-       "One time setup for using Sun Windows with mouse.\n\
-Unless optional argument FORCE is non-nil, is a noop after its first call.\n\
-Returns a number representing the file descriptor of the open Sun Window,\n\
-or -1 if can not open it.")
-      (force)
-      Lisp_Object force;
+       doc: /* One time setup for using Sun Windows with mouse.
+Unless optional argument FORCE is non-nil, is a noop after its first call.
+Returns a number representing the file descriptor of the open Sun Window,
+or -1 if can not open it.  */)
+     (force)
+     Lisp_Object force;
 {
   char *cp;
   static int already_initialized = 0;
@@ -149,12 +149,12 @@
  *	and can be interrupted by the mouse)
  */
 DEFUN ("sit-for-millisecs", Fsit_for_millisecs, Ssit_for_millisecs, 1, 1, 0,
-   "Like sit-for, but ARG is milliseconds. \n\
-Perform redisplay, then wait for ARG milliseconds or until\n\
-input is available.  Returns t if wait completed with no input.\n\
-Redisplay does not happen if input is available before it starts.")
-	(n)
-	Lisp_Object n;
+       doc: /* Like sit-for, but ARG is milliseconds.
+Perform redisplay, then wait for ARG milliseconds or until
+input is available.  Returns t if wait completed with no input.
+Redisplay does not happen if input is available before it starts.  */)
+     (n)
+     Lisp_Object n;
 {
   struct timeval Timeout;
   int waitmask = 1;
@@ -179,11 +179,11 @@
  *   Sun sleep-for (allows a shorter interval than the regular sleep-for)
  */
 DEFUN ("sleep-for-millisecs", 
-	Fsleep_for_millisecs,
-	Ssleep_for_millisecs, 1, 1, 0,
-   "Pause, without updating display, for ARG milliseconds.")
-	(n)
-	Lisp_Object n;
+       Fsleep_for_millisecs,
+       Ssleep_for_millisecs, 1, 1, 0,
+       doc: /* Pause, without updating display, for ARG milliseconds.  */)
+     (n)
+     Lisp_Object n;
 {
   unsigned useconds;
 
@@ -194,7 +194,7 @@
 }
 
 DEFUN ("update-display", Fupdate_display, Supdate_display, 0, 0, 0,
-       "Perform redisplay.")
+       doc: /* Perform redisplay.  */)
      ()
 {
   redisplay_preserve_echo_area (17);
@@ -206,12 +206,12 @@
  *	Change the Sun mouse icon
  */
 DEFUN ("sun-change-cursor-icon",
-	Fsun_change_cursor_icon,
-	Ssun_change_cursor_icon, 1, 1, 0,
-  "Change the Sun mouse cursor icon.  ICON is a lisp vector whose 1st element\n\
-is the X offset of the cursor hot-point, whose 2nd element is the Y offset\n\
-of the cursor hot-point and whose 3rd element is the cursor pixel data\n\
-expressed as a string.  If ICON is nil then the original arrow cursor is used")
+       Fsun_change_cursor_icon,
+       Ssun_change_cursor_icon, 1, 1, 0,
+       doc: /* Change the Sun mouse cursor icon.  ICON is a lisp vector whose 1st element
+is the X offset of the cursor hot-point, whose 2nd element is the Y offset
+of the cursor hot-point and whose 3rd element is the cursor pixel data
+expressed as a string.  If ICON is nil then the original arrow cursor is used.  */)
      (Icon)
      Lisp_Object Icon;
 {
@@ -318,7 +318,7 @@
  */
 DEFUN ("sun-set-selection", Fsun_set_selection, Ssun_set_selection, 1, 1,
        "sSet selection to: ",
-  "Set the current sunwindow selection to STRING.")
+       doc: /* Set the current sunwindow selection to STRING.  */)
      (str)
      Lisp_Object str;
 {
@@ -339,7 +339,7 @@
  *	Stuff the current window system selection into the current buffer
  */
 DEFUN ("sun-get-selection", Fsun_get_selection, Ssun_get_selection, 0, 0, 0,
-       "Return the current sunwindows selection as a string.")
+       doc: /* Return the current sunwindows selection as a string.  */)
      ()
 {
   CHECK_GFX (Current_Selection);
@@ -422,22 +422,22 @@
 DEFUN ("sun-menu-internal",
        Fsun_menu_internal,
        Ssun_menu_internal, 5, 5, 0,
-       "Set up a SunView pop-up menu and return the user's choice.\n\
-Arguments WINDOW, X, Y, BUTTON, and MENU.\n\
-*** User code should generally use sun-menu-evaluate ***\n\
-\n\
-Arguments WINDOW, X, Y, BUTTON, and MENU.\n\
-Put MENU up in WINDOW at position X, Y.\n\
-The BUTTON argument specifies the button to be released that selects an item:\n\
-   1 = LEFT BUTTON\n\
-   2 = MIDDLE BUTTON\n\
-   4 = RIGHT BUTTON\n\
-The MENU argument is a vector containing (STRING . VALUE) pairs.\n\
-The VALUE of the selected item is returned.\n\
-If the VALUE of the first pair is nil, then the first STRING will be used\n\
-as a menu label.")
-      (window, X_Position, Y_Position, Button, MEnu)
-      Lisp_Object window, X_Position, Y_Position, Button, MEnu;
+       doc: /* Set up a SunView pop-up menu and return the user's choice.
+Arguments WINDOW, X, Y, BUTTON, and MENU.
+*** User code should generally use sun-menu-evaluate ***
+
+Arguments WINDOW, X, Y, BUTTON, and MENU.
+Put MENU up in WINDOW at position X, Y.
+The BUTTON argument specifies the button to be released that selects an item:
+   1 = LEFT BUTTON
+   2 = MIDDLE BUTTON
+   4 = RIGHT BUTTON
+The MENU argument is a vector containing (STRING . VALUE) pairs.
+The VALUE of the selected item is returned.
+If the VALUE of the first pair is nil, then the first STRING will be used
+as a menu label.  */)
+     (window, X_Position, Y_Position, Button, MEnu)
+     Lisp_Object window, X_Position, Y_Position, Button, MEnu;
 {
   Menu menu;
   int button, xpos, ypos;
--- a/src/textprop.c	Sun Oct 21 12:08:54 2001 +0000
+++ b/src/textprop.c	Sun Oct 21 12:13:46 2001 +0000
@@ -534,11 +534,11 @@
 
 DEFUN ("text-properties-at", Ftext_properties_at,
        Stext_properties_at, 1, 2, 0,
-  "Return the list of properties of the character at POSITION in OBJECT.\n\
-OBJECT is the string or buffer to look for the properties in;\n\
-nil means the current buffer.\n\
-If POSITION is at the end of OBJECT, the value is nil.")
-  (position, object)
+       doc: /* Return the list of properties of the character at POSITION in OBJECT.
+OBJECT is the string or buffer to look for the properties in;
+nil means the current buffer.
+If POSITION is at the end of OBJECT, the value is nil.  */)
+     (position, object)
      Lisp_Object position, object;
 {
   register INTERVAL i;
@@ -560,10 +560,10 @@
 }
 
 DEFUN ("get-text-property", Fget_text_property, Sget_text_property, 2, 3, 0,
-  "Return the value of POSITION's property PROP, in OBJECT.\n\
-OBJECT is optional and defaults to the current buffer.\n\
-If POSITION is at the end of OBJECT, the value is nil.")
-  (position, prop, object)
+       doc: /* Return the value of POSITION's property PROP, in OBJECT.
+OBJECT is optional and defaults to the current buffer.
+If POSITION is at the end of OBJECT, the value is nil.  */)
+     (position, prop, object)
      Lisp_Object position, object;
      Lisp_Object prop;
 {
@@ -654,14 +654,14 @@
 }
 
 DEFUN ("get-char-property", Fget_char_property, Sget_char_property, 2, 3, 0,
-  "Return the value of POSITION's property PROP, in OBJECT.\n\
-OBJECT is optional and defaults to the current buffer.\n\
-If POSITION is at the end of OBJECT, the value is nil.\n\
-If OBJECT is a buffer, then overlay properties are considered as well as\n\
-text properties.\n\
-If OBJECT is a window, then that window's buffer is used, but window-specific\n\
-overlays are considered only if they are associated with OBJECT.")
-  (position, prop, object)
+       doc: /* Return the value of POSITION's property PROP, in OBJECT.
+OBJECT is optional and defaults to the current buffer.
+If POSITION is at the end of OBJECT, the value is nil.
+If OBJECT is a buffer, then overlay properties are considered as well as
+text properties.
+If OBJECT is a window, then that window's buffer is used, but window-specific
+overlays are considered only if they are associated with OBJECT.  */)
+     (position, prop, object)
      Lisp_Object position, object;
      register Lisp_Object prop;
 {
@@ -670,15 +670,15 @@
 
 DEFUN ("next-char-property-change", Fnext_char_property_change,
        Snext_char_property_change, 1, 2, 0,
-  "Return the position of next text property or overlay change.\n\
-This scans characters forward from POSITION till it finds a change in\n\
-some text property, or the beginning or end of an overlay, and returns\n\
-the position of that.\n\
-If none is found, the function returns (point-max).\n\
-\n\
-If the optional third argument LIMIT is non-nil, don't search\n\
-past position LIMIT; return LIMIT if nothing is found before LIMIT.")
-  (position, limit)
+       doc: /* Return the position of next text property or overlay change.
+This scans characters forward from POSITION till it finds a change in
+some text property, or the beginning or end of an overlay, and returns
+the position of that.
+If none is found, the function returns (point-max).
+
+If the optional third argument LIMIT is non-nil, don't search
+past position LIMIT; return LIMIT if nothing is found before LIMIT.  */)
+     (position, limit)
      Lisp_Object position, limit;
 {
   Lisp_Object temp;
@@ -695,15 +695,15 @@
 
 DEFUN ("previous-char-property-change", Fprevious_char_property_change,
        Sprevious_char_property_change, 1, 2, 0,
-  "Return the position of previous text property or overlay change.\n\
-Scans characters backward from POSITION till it finds a change in some\n\
-text property, or the beginning or end of an overlay, and returns the\n\
-position of that.\n\
-If none is found, the function returns (point-max).\n\
-\n\
-If the optional third argument LIMIT is non-nil, don't search\n\
-past position LIMIT; return LIMIT if nothing is found before LIMIT.")
-  (position, limit)
+       doc: /* Return the position of previous text property or overlay change.
+Scans characters backward from POSITION till it finds a change in some
+text property, or the beginning or end of an overlay, and returns the
+position of that.
+If none is found, the function returns (point-max).
+
+If the optional third argument LIMIT is non-nil, don't search
+past position LIMIT; return LIMIT if nothing is found before LIMIT.  */)
+     (position, limit)
      Lisp_Object position, limit;
 {
   Lisp_Object temp;
@@ -721,16 +721,16 @@
 
 DEFUN ("next-single-char-property-change", Fnext_single_char_property_change,
        Snext_single_char_property_change, 2, 4, 0,
-  "Return the position of next text property or overlay change for a specific property.\n\
-Scans characters forward from POSITION till it finds\n\
-a change in the PROP property, then returns the position of the change.\n\
-The optional third argument OBJECT is the string or buffer to scan.\n\
-The property values are compared with `eq'.\n\
-If the property is constant all the way to the end of OBJECT, return the\n\
-last valid position in OBJECT.\n\
-If the optional fourth argument LIMIT is non-nil, don't search\n\
-past position LIMIT; return LIMIT if nothing is found before LIMIT.")
-  (position, prop, object, limit)
+       doc: /* Return the position of next text property or overlay change for a specific property.
+Scans characters forward from POSITION till it finds
+a change in the PROP property, then returns the position of the change.
+The optional third argument OBJECT is the string or buffer to scan.
+The property values are compared with `eq'.
+If the property is constant all the way to the end of OBJECT, return the
+last valid position in OBJECT.
+If the optional fourth argument LIMIT is non-nil, don't search
+past position LIMIT; return LIMIT if nothing is found before LIMIT.  */)
+     (position, prop, object, limit)
      Lisp_Object prop, position, object, limit;
 {
   if (STRINGP (object))
@@ -787,16 +787,16 @@
 DEFUN ("previous-single-char-property-change",
        Fprevious_single_char_property_change,
        Sprevious_single_char_property_change, 2, 4, 0,
-  "Return the position of previous text property or overlay change for a specific property.\n\
-Scans characters backward from POSITION till it finds\n\
-a change in the PROP property, then returns the position of the change.\n\
-The optional third argument OBJECT is the string or buffer to scan.\n\
-The property values are compared with `eq'.\n\
-If the property is constant all the way to the start of OBJECT, return the\n\
-first valid position in OBJECT.\n\
-If the optional fourth argument LIMIT is non-nil, don't search\n\
-back past position LIMIT; return LIMIT if nothing is found before LIMIT.")
-  (position, prop, object, limit)
+       doc: /* Return the position of previous text property or overlay change for a specific property.
+Scans characters backward from POSITION till it finds
+a change in the PROP property, then returns the position of the change.
+The optional third argument OBJECT is the string or buffer to scan.
+The property values are compared with `eq'.
+If the property is constant all the way to the start of OBJECT, return the
+first valid position in OBJECT.
+If the optional fourth argument LIMIT is non-nil, don't search
+back past position LIMIT; return LIMIT if nothing is found before LIMIT.  */)
+     (position, prop, object, limit)
      Lisp_Object prop, position, object, limit;
 {
   if (STRINGP (object))
@@ -865,15 +865,16 @@
 
 DEFUN ("next-property-change", Fnext_property_change,
        Snext_property_change, 1, 3, 0,
-  "Return the position of next property change.\n\
-Scans characters forward from POSITION in OBJECT till it finds\n\
-a change in some text property, then returns the position of the change.\n\
-The optional second argument OBJECT is the string or buffer to scan.\n\
-Return nil if the property is constant all the way to the end of OBJECT.\n\
-If the value is non-nil, it is a position greater than POSITION, never equal.\n\n\
-If the optional third argument LIMIT is non-nil, don't search\n\
-past position LIMIT; return LIMIT if nothing is found before LIMIT.")
-  (position, object, limit)
+       doc: /* Return the position of next property change.
+Scans characters forward from POSITION in OBJECT till it finds
+a change in some text property, then returns the position of the change.
+The optional second argument OBJECT is the string or buffer to scan.
+Return nil if the property is constant all the way to the end of OBJECT.
+If the value is non-nil, it is a position greater than POSITION, never equal.
+
+If the optional third argument LIMIT is non-nil, don't search
+past position LIMIT; return LIMIT if nothing is found before LIMIT.  */)
+     (position, object, limit)
      Lisp_Object position, object, limit;
 {
   register INTERVAL i, next;
@@ -956,16 +957,17 @@
 
 DEFUN ("next-single-property-change", Fnext_single_property_change,
        Snext_single_property_change, 2, 4, 0,
-  "Return the position of next property change for a specific property.\n\
-Scans characters forward from POSITION till it finds\n\
-a change in the PROP property, then returns the position of the change.\n\
-The optional third argument OBJECT is the string or buffer to scan.\n\
-The property values are compared with `eq'.\n\
-Return nil if the property is constant all the way to the end of OBJECT.\n\
-If the value is non-nil, it is a position greater than POSITION, never equal.\n\n\
-If the optional fourth argument LIMIT is non-nil, don't search\n\
-past position LIMIT; return LIMIT if nothing is found before LIMIT.")
-  (position, prop, object, limit)
+       doc: /* Return the position of next property change for a specific property.
+Scans characters forward from POSITION till it finds
+a change in the PROP property, then returns the position of the change.
+The optional third argument OBJECT is the string or buffer to scan.
+The property values are compared with `eq'.
+Return nil if the property is constant all the way to the end of OBJECT.
+If the value is non-nil, it is a position greater than POSITION, never equal.
+
+If the optional fourth argument LIMIT is non-nil, don't search
+past position LIMIT; return LIMIT if nothing is found before LIMIT.  */)
+     (position, prop, object, limit)
      Lisp_Object position, prop, object, limit;
 {
   register INTERVAL i, next;
@@ -998,15 +1000,16 @@
 
 DEFUN ("previous-property-change", Fprevious_property_change,
        Sprevious_property_change, 1, 3, 0,
-  "Return the position of previous property change.\n\
-Scans characters backwards from POSITION in OBJECT till it finds\n\
-a change in some text property, then returns the position of the change.\n\
-The optional second argument OBJECT is the string or buffer to scan.\n\
-Return nil if the property is constant all the way to the start of OBJECT.\n\
-If the value is non-nil, it is a position less than POSITION, never equal.\n\n\
-If the optional third argument LIMIT is non-nil, don't search\n\
-back past position LIMIT; return LIMIT if nothing is found until LIMIT.")
-  (position, object, limit)
+       doc: /* Return the position of previous property change.
+Scans characters backwards from POSITION in OBJECT till it finds
+a change in some text property, then returns the position of the change.
+The optional second argument OBJECT is the string or buffer to scan.
+Return nil if the property is constant all the way to the start of OBJECT.
+If the value is non-nil, it is a position less than POSITION, never equal.
+
+If the optional third argument LIMIT is non-nil, don't search
+back past position LIMIT; return LIMIT if nothing is found until LIMIT.  */)
+     (position, object, limit)
      Lisp_Object position, object, limit;
 {
   register INTERVAL i, previous;
@@ -1041,15 +1044,16 @@
 
 DEFUN ("previous-single-property-change", Fprevious_single_property_change,
        Sprevious_single_property_change, 2, 4, 0,
-  "Return the position of previous property change for a specific property.\n\
-Scans characters backward from POSITION till it finds\n\
-a change in the PROP property, then returns the position of the change.\n\
-The optional third argument OBJECT is the string or buffer to scan.\n\
-The property values are compared with `eq'.\n\
-Return nil if the property is constant all the way to the start of OBJECT.\n\
-If the value is non-nil, it is a position less than POSITION, never equal.\n\n\
-If the optional fourth argument LIMIT is non-nil, don't search\n\
-back past position LIMIT; return LIMIT if nothing is found until LIMIT.")
+       doc: /* Return the position of previous property change for a specific property.
+Scans characters backward from POSITION till it finds
+a change in the PROP property, then returns the position of the change.
+The optional third argument OBJECT is the string or buffer to scan.
+The property values are compared with `eq'.
+Return nil if the property is constant all the way to the start of OBJECT.
+If the value is non-nil, it is a position less than POSITION, never equal.
+
+If the optional fourth argument LIMIT is non-nil, don't search
+back past position LIMIT; return LIMIT if nothing is found until LIMIT.  */)
      (position, prop, object, limit)
      Lisp_Object position, prop, object, limit;
 {
@@ -1091,13 +1095,13 @@
 
 DEFUN ("add-text-properties", Fadd_text_properties,
        Sadd_text_properties, 3, 4, 0,
-  "Add properties to the text from START to END.\n\
-The third argument PROPERTIES is a property list\n\
-specifying the property values to add.\n\
-The optional fourth argument, OBJECT,\n\
-is the string or buffer containing the text.\n\
-Return t if any property value actually changed, nil otherwise.")
-  (start, end, properties, object)
+       doc: /* Add properties to the text from START to END.
+The third argument PROPERTIES is a property list
+specifying the property values to add.
+The optional fourth argument, OBJECT,
+is the string or buffer containing the text.
+Return t if any property value actually changed, nil otherwise.  */)
+     (start, end, properties, object)
      Lisp_Object start, end, properties, object;
 {
   register INTERVAL i, unchanged;
@@ -1199,12 +1203,12 @@
 
 DEFUN ("put-text-property", Fput_text_property,
        Sput_text_property, 4, 5, 0,
-  "Set one property of the text from START to END.\n\
-The third and fourth arguments PROPERTY and VALUE\n\
-specify the property to add.\n\
-The optional fifth argument, OBJECT,\n\
-is the string or buffer containing the text.")
-  (start, end, property, value, object)
+       doc: /* Set one property of the text from START to END.
+The third and fourth arguments PROPERTY and VALUE
+specify the property to add.
+The optional fifth argument, OBJECT,
+is the string or buffer containing the text.  */)
+     (start, end, property, value, object)
      Lisp_Object start, end, property, value, object;
 {
   Fadd_text_properties (start, end,
@@ -1215,14 +1219,14 @@
 
 DEFUN ("set-text-properties", Fset_text_properties,
        Sset_text_properties, 3, 4, 0,
-  "Completely replace properties of text from START to END.\n\
-The third argument PROPERTIES is the new property list.\n\
-The optional fourth argument, OBJECT,\n\
-is the string or buffer containing the text.\n\
-If OBJECT is omitted or nil, it defaults to the current buffer.\n\
-If PROPERTIES is nil, the effect is to remove all properties from\n\
-the designated part of OBJECT.")
-  (start, end, properties, object)
+       doc: /* Completely replace properties of text from START to END.
+The third argument PROPERTIES is the new property list.
+The optional fourth argument, OBJECT,
+is the string or buffer containing the text.
+If OBJECT is omitted or nil, it defaults to the current buffer.
+If PROPERTIES is nil, the effect is to remove all properties from
+the designated part of OBJECT.  */)
+     (start, end, properties, object)
      Lisp_Object start, end, properties, object;
 {
   return set_text_properties (start, end, properties, object, Qt);
@@ -1369,14 +1373,14 @@
 
 DEFUN ("remove-text-properties", Fremove_text_properties,
        Sremove_text_properties, 3, 4, 0,
-  "Remove some properties from text from START to END.\n\
-The third argument PROPERTIES is a property list\n\
-whose property names specify the properties to remove.\n\
-\(The values stored in PROPERTIES are ignored.)\n\
-The optional fourth argument, OBJECT,\n\
-is the string or buffer containing the text.\n\
-Return t if any property was actually removed, nil otherwise.")
-  (start, end, properties, object)
+       doc: /* Remove some properties from text from START to END.
+The third argument PROPERTIES is a property list
+whose property names specify the properties to remove.
+\(The values stored in PROPERTIES are ignored.)
+The optional fourth argument, OBJECT,
+is the string or buffer containing the text.
+Return t if any property was actually removed, nil otherwise.  */)
+     (start, end, properties, object)
      Lisp_Object start, end, properties, object;
 {
   register INTERVAL i, unchanged;
@@ -1456,13 +1460,13 @@
 
 DEFUN ("text-property-any", Ftext_property_any,
        Stext_property_any, 4, 5, 0,
-  "Check text from START to END for property PROPERTY equalling VALUE.\n\
-If so, return the position of the first character whose property PROPERTY\n\
-is `eq' to VALUE.  Otherwise return nil.\n\
-The optional fifth argument, OBJECT, is the string or buffer\n\
-containing the text.")
-  (start, end, property, value, object)
-       Lisp_Object start, end, property, value, object;
+       doc: /* Check text from START to END for property PROPERTY equalling VALUE.
+If so, return the position of the first character whose property PROPERTY
+is `eq' to VALUE.  Otherwise return nil.
+The optional fifth argument, OBJECT, is the string or buffer
+containing the text.  */)
+     (start, end, property, value, object)
+     Lisp_Object start, end, property, value, object;
 {
   register INTERVAL i;
   register int e, pos;
@@ -1492,13 +1496,13 @@
 
 DEFUN ("text-property-not-all", Ftext_property_not_all,
        Stext_property_not_all, 4, 5, 0,
-  "Check text from START to END for property PROPERTY not equalling VALUE.\n\
-If so, return the position of the first character whose property PROPERTY\n\
-is not `eq' to VALUE.  Otherwise, return nil.\n\
-The optional fifth argument, OBJECT, is the string or buffer\n\
-containing the text.")
-  (start, end, property, value, object)
-       Lisp_Object start, end, property, value, object;
+       doc: /* Check text from START to END for property PROPERTY not equalling VALUE.
+If so, return the position of the first character whose property PROPERTY
+is not `eq' to VALUE.  Otherwise, return nil.
+The optional fifth argument, OBJECT, is the string or buffer
+containing the text.  */)
+     (start, end, property, value, object)
+     Lisp_Object start, end, property, value, object;
 {
   register INTERVAL i;
   register int s, e;
@@ -1964,25 +1968,25 @@
 syms_of_textprop ()
 {
   DEFVAR_LISP ("default-text-properties", &Vdefault_text_properties,
-   "Property-list used as default values.\n\
-The value of a property in this list is seen as the value for every\n\
-character that does not have its own value for that property.");
+	       doc: /* Property-list used as default values.
+The value of a property in this list is seen as the value for every
+character that does not have its own value for that property.  */);
   Vdefault_text_properties = Qnil;
 
   DEFVAR_LISP ("inhibit-point-motion-hooks", &Vinhibit_point_motion_hooks,
-   "If non-nil, don't run `point-left' and `point-entered' text properties.\n\
-This also inhibits the use of the `intangible' text property.");
+	       doc: /* If non-nil, don't run `point-left' and `point-entered' text properties.
+This also inhibits the use of the `intangible' text property.  */);
   Vinhibit_point_motion_hooks = Qnil;
 
   DEFVAR_LISP ("text-property-default-nonsticky",
 	       &Vtext_property_default_nonsticky,
-    "Alist of properties vs the corresponding non-stickinesses.\n\
-Each element has the form (PROPERTY . NONSTICKINESS).\n\
-\n\
-If a character in a buffer has PROPERTY, new text inserted adjacent to\n\
-the character doesn't inherit PROPERTY if NONSTICKINESS is non-nil,\n\
-inherits it if NONSTICKINESS is nil.  The front-sticky and\n\
-rear-nonsticky properties of the character overrides NONSTICKINESS.");
+	       doc: /* Alist of properties vs the corresponding non-stickinesses.
+Each element has the form (PROPERTY . NONSTICKINESS).
+
+If a character in a buffer has PROPERTY, new text inserted adjacent to
+the character doesn't inherit PROPERTY if NONSTICKINESS is non-nil,
+inherits it if NONSTICKINESS is nil.  The front-sticky and
+rear-nonsticky properties of the character overrides NONSTICKINESS.  */);
   Vtext_property_default_nonsticky = Qnil;
 
   staticpro (&interval_insert_behind_hooks);
--- a/src/undo.c	Sun Oct 21 12:08:54 2001 +0000
+++ b/src/undo.c	Sun Oct 21 12:13:46 2001 +0000
@@ -257,10 +257,10 @@
 }
 
 DEFUN ("undo-boundary", Fundo_boundary, Sundo_boundary, 0, 0, 0,
-  "Mark a boundary between units of undo.\n\
-An undo command will stop at this point,\n\
-but another undo command will undo to the previous boundary.")
-  ()
+       doc: /* Mark a boundary between units of undo.
+An undo command will stop at this point,
+but another undo command will undo to the previous boundary.  */)
+     ()
 {
   Lisp_Object tem;
   if (EQ (current_buffer->undo_list, Qt))
@@ -386,9 +386,9 @@
 }
 
 DEFUN ("primitive-undo", Fprimitive_undo, Sprimitive_undo, 2, 2, 0,
-  "Undo N records from the front of the list LIST.\n\
-Return what remains of the list.")
-  (n, list)
+       doc: /* Undo N records from the front of the list LIST.
+Return what remains of the list.  */)
+     (n, list)
      Lisp_Object n, list;
 {
   struct gcpro gcpro1, gcpro2;
--- a/src/xselect.c	Sun Oct 21 12:08:54 2001 +0000
+++ b/src/xselect.c	Sun Oct 21 12:13:46 2001 +0000
@@ -1948,13 +1948,13 @@
 
 
 DEFUN ("x-own-selection-internal", Fx_own_selection_internal,
-  Sx_own_selection_internal, 2, 2, 0,
-  "Assert an X selection of the given TYPE with the given VALUE.\n\
-TYPE is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.\n\
-\(Those are literal upper-case symbol names, since that's what X expects.)\n\
-VALUE is typically a string, or a cons of two markers, but may be\n\
-anything that the functions on `selection-converter-alist' know about.")
-  (selection_name, selection_value)
+       Sx_own_selection_internal, 2, 2, 0,
+       doc: /* Assert an X selection of the given TYPE with the given VALUE.
+TYPE is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
+\(Those are literal upper-case symbol names, since that's what X expects.)
+VALUE is typically a string, or a cons of two markers, but may be
+anything that the functions on `selection-converter-alist' know about.  */)
+     (selection_name, selection_value)
      Lisp_Object selection_name, selection_value;
 {
   check_x ();
@@ -1970,12 +1970,12 @@
    will block until all of the data has arrived.  */
 
 DEFUN ("x-get-selection-internal", Fx_get_selection_internal,
-  Sx_get_selection_internal, 2, 2, 0,
-  "Return text selected from some X window.\n\
-SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.\n\
-\(Those are literal upper-case symbol names, since that's what X expects.)\n\
-TYPE is the type of data desired, typically `STRING'.")
-  (selection_symbol, target_type)
+       Sx_get_selection_internal, 2, 2, 0,
+       doc: /* Return text selected from some X window.
+SELECTION is a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD'.
+\(Those are literal upper-case symbol names, since that's what X expects.)
+TYPE is the type of data desired, typically `STRING'.  */)
+     (selection_symbol, target_type)
      Lisp_Object selection_symbol, target_type;
 {
   Lisp_Object val = Qnil;
@@ -2018,10 +2018,10 @@
 }
 
 DEFUN ("x-disown-selection-internal", Fx_disown_selection_internal,
-  Sx_disown_selection_internal, 1, 2, 0,
-  "If we own the selection SELECTION, disown it.\n\
-Disowning it means there is no such selection.")
-  (selection, time)
+       Sx_disown_selection_internal, 1, 2, 0,
+       doc: /* If we own the selection SELECTION, disown it.
+Disowning it means there is no such selection.  */)
+     (selection, time)
      Lisp_Object selection;
      Lisp_Object time;
 {
@@ -2085,14 +2085,14 @@
 }
 
 DEFUN ("x-selection-owner-p", Fx_selection_owner_p, Sx_selection_owner_p,
-  0, 1, 0,
-  "Whether the current Emacs process owns the given X Selection.\n\
-The arg should be the name of the selection in question, typically one of\n\
-the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'.\n\
-\(Those are literal upper-case symbol names, since that's what X expects.)\n\
-For convenience, the symbol nil is the same as `PRIMARY',\n\
-and t is the same as `SECONDARY'.)")
-  (selection)
+       0, 1, 0,
+       doc: /* Whether the current Emacs process owns the given X Selection.
+The arg should be the name of the selection in question, typically one of
+the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'.
+\(Those are literal upper-case symbol names, since that's what X expects.)
+For convenience, the symbol nil is the same as `PRIMARY',
+and t is the same as `SECONDARY'.  */)
+     (selection)
      Lisp_Object selection;
 {
   check_x ();
@@ -2106,14 +2106,14 @@
 }
 
 DEFUN ("x-selection-exists-p", Fx_selection_exists_p, Sx_selection_exists_p,
-  0, 1, 0,
-  "Whether there is an owner for the given X Selection.\n\
-The arg should be the name of the selection in question, typically one of\n\
-the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'.\n\
-\(Those are literal upper-case symbol names, since that's what X expects.)\n\
-For convenience, the symbol nil is the same as `PRIMARY',\n\
-and t is the same as `SECONDARY'.)")
-  (selection)
+       0, 1, 0,
+       doc: /* Whether there is an owner for the given X Selection.
+The arg should be the name of the selection in question, typically one of
+the symbols `PRIMARY', `SECONDARY', or `CLIPBOARD'.
+\(Those are literal upper-case symbol names, since that's what X expects.)
+For convenience, the symbol nil is the same as `PRIMARY',
+and t is the same as `SECONDARY'.  */)
+     (selection)
      Lisp_Object selection;
 {
   Window owner;
@@ -2178,9 +2178,9 @@
   }
 
 DEFUN ("x-get-cut-buffer-internal", Fx_get_cut_buffer_internal,
-  Sx_get_cut_buffer_internal, 1, 1, 0,
-  "Returns the value of the named cut buffer (typically CUT_BUFFER0).")
-  (buffer)
+       Sx_get_cut_buffer_internal, 1, 1, 0,
+       doc: /* Returns the value of the named cut buffer (typically CUT_BUFFER0).  */)
+     (buffer)
      Lisp_Object buffer;
 {
   Window window;
@@ -2222,9 +2222,9 @@
 
 
 DEFUN ("x-store-cut-buffer-internal", Fx_store_cut_buffer_internal,
-  Sx_store_cut_buffer_internal, 2, 2, 0,
-  "Sets the value of the named cut buffer (typically CUT_BUFFER0).")
-  (buffer, string)
+       Sx_store_cut_buffer_internal, 2, 2, 0,
+       doc: /* Sets the value of the named cut buffer (typically CUT_BUFFER0).  */)
+     (buffer, string)
      Lisp_Object buffer, string;
 {
   Window window;
@@ -2283,10 +2283,10 @@
 
 
 DEFUN ("x-rotate-cut-buffers-internal", Fx_rotate_cut_buffers_internal,
-  Sx_rotate_cut_buffers_internal, 1, 1, 0,
-  "Rotate the values of the cut buffers by the given number of step.\n\
-Positive means shift the values forward, negative means backward.")
-  (n)
+       Sx_rotate_cut_buffers_internal, 1, 1, 0,
+       doc: /* Rotate the values of the cut buffers by the given number of step.
+Positive means shift the values forward, negative means backward.  */)
+     (n)
      Lisp_Object n;
 {
   Window window;
@@ -2351,62 +2351,62 @@
   staticpro (&Vselection_alist);
 
   DEFVAR_LISP ("selection-converter-alist", &Vselection_converter_alist,
-    "An alist associating X Windows selection-types with functions.\n\
-These functions are called to convert the selection, with three args:\n\
-the name of the selection (typically `PRIMARY', `SECONDARY', or `CLIPBOARD');\n\
-a desired type to which the selection should be converted;\n\
-and the local selection value (whatever was given to `x-own-selection').\n\
-\n\
-The function should return the value to send to the X server\n\
-\(typically a string).  A return value of nil\n\
-means that the conversion could not be done.\n\
-A return value which is the symbol `NULL'\n\
-means that a side-effect was executed,\n\
-and there is no meaningful selection value.");
+	       doc: /* An alist associating X Windows selection-types with functions.
+These functions are called to convert the selection, with three args:
+the name of the selection (typically `PRIMARY', `SECONDARY', or `CLIPBOARD');
+a desired type to which the selection should be converted;
+and the local selection value (whatever was given to `x-own-selection').
+
+The function should return the value to send to the X server
+\(typically a string).  A return value of nil
+means that the conversion could not be done.
+A return value which is the symbol `NULL'
+means that a side-effect was executed,
+and there is no meaningful selection value.  */);
   Vselection_converter_alist = Qnil;
 
   DEFVAR_LISP ("x-lost-selection-hooks", &Vx_lost_selection_hooks,
-    "A list of functions to be called when Emacs loses an X selection.\n\
-\(This happens when some other X client makes its own selection\n\
-or when a Lisp program explicitly clears the selection.)\n\
-The functions are called with one argument, the selection type\n\
-\(a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD').");
+	       doc: /* A list of functions to be called when Emacs loses an X selection.
+\(This happens when some other X client makes its own selection
+or when a Lisp program explicitly clears the selection.)
+The functions are called with one argument, the selection type
+\(a symbol, typically `PRIMARY', `SECONDARY', or `CLIPBOARD').  */);
   Vx_lost_selection_hooks = Qnil;
 
   DEFVAR_LISP ("x-sent-selection-hooks", &Vx_sent_selection_hooks,
-    "A list of functions to be called when Emacs answers a selection request.\n\
-The functions are called with four arguments:\n\
-  - the selection name (typically `PRIMARY', `SECONDARY', or `CLIPBOARD');\n\
-  - the selection-type which Emacs was asked to convert the\n\
-    selection into before sending (for example, `STRING' or `LENGTH');\n\
-  - a flag indicating success or failure for responding to the request.\n\
-We might have failed (and declined the request) for any number of reasons,\n\
-including being asked for a selection that we no longer own, or being asked\n\
-to convert into a type that we don't know about or that is inappropriate.\n\
-This hook doesn't let you change the behavior of Emacs's selection replies,\n\
-it merely informs you that they have happened.");
+	       doc: /* A list of functions to be called when Emacs answers a selection request.
+The functions are called with four arguments:
+  - the selection name (typically `PRIMARY', `SECONDARY', or `CLIPBOARD');
+  - the selection-type which Emacs was asked to convert the
+    selection into before sending (for example, `STRING' or `LENGTH');
+  - a flag indicating success or failure for responding to the request.
+We might have failed (and declined the request) for any number of reasons,
+including being asked for a selection that we no longer own, or being asked
+to convert into a type that we don't know about or that is inappropriate.
+This hook doesn't let you change the behavior of Emacs's selection replies,
+it merely informs you that they have happened.  */);
   Vx_sent_selection_hooks = Qnil;
 
   DEFVAR_LISP ("selection-coding-system", &Vselection_coding_system,
-    "Coding system for communicating with other X clients.\n\
-When sending or receiving text via cut_buffer, selection, and clipboard,\n\
-the text is encoded or decoded by this coding system.\n\
-The default value is `compound-text'.");
+	       doc: /* Coding system for communicating with other X clients.
+When sending or receiving text via cut_buffer, selection, and clipboard,
+the text is encoded or decoded by this coding system.
+The default value is `compound-text'.  */);
   Vselection_coding_system = intern ("compound-text");
 
   DEFVAR_LISP ("next-selection-coding-system", &Vnext_selection_coding_system,
-    "Coding system for the next communication with other X clients.\n\
-Usually, `selection-coding-system' is used for communicating with\n\
-other X clients.   But, if this variable is set, it is used for the\n\
-next communication only.   After the communication, this variable is\n\
-set to nil.");
+	       doc: /* Coding system for the next communication with other X clients.
+Usually, `selection-coding-system' is used for communicating with
+other X clients.   But, if this variable is set, it is used for the
+next communication only.   After the communication, this variable is
+set to nil.  */);
   Vnext_selection_coding_system = Qnil;
 
   DEFVAR_INT ("x-selection-timeout", &x_selection_timeout,
-    "Number of milliseconds to wait for a selection reply.\n\
-If the selection owner doesn't reply in this time, we give up.\n\
-A value of 0 means wait as long as necessary.  This is initialized from the\n\
-\"*selectionTimeout\" resource.");
+	      doc: /* Number of milliseconds to wait for a selection reply.
+If the selection owner doesn't reply in this time, we give up.
+A value of 0 means wait as long as necessary.  This is initialized from the
+\"*selectionTimeout\" resource.  */);
   x_selection_timeout = 0;
 
   QPRIMARY   = intern ("PRIMARY");	staticpro (&QPRIMARY);