# HG changeset patch # User Pavel Jank # Date 1003158262 0 # Node ID 1c2d486200f30df3dbd3cc6c26c859bc85f3294c # Parent 46d26a4374ca96d7e2c046b7dcbb33c9eae9fa36 Put doc strings in comments. diff -r 46d26a4374ca -r 1c2d486200f3 src/editfns.c --- a/src/editfns.c Mon Oct 15 14:55:28 2001 +0000 +++ b/src/editfns.c Mon Oct 15 15:04:22 2001 +0000 @@ -34,6 +34,7 @@ #include #endif +#define DOC_STRINGS_IN_COMMENTS #include "lisp.h" #include "intervals.h" #include "buffer.h" @@ -164,8 +165,8 @@ } DEFUN ("char-to-string", Fchar_to_string, Schar_to_string, 1, 1, 0, - "Convert arg CHARACTER to a string containing that character.") - (character) + /* Convert arg CHARACTER to a string containing that character. */ + (character)) Lisp_Object character; { int len; @@ -180,9 +181,9 @@ } DEFUN ("string-to-char", Fstring_to_char, Sstring_to_char, 1, 1, 0, - "Convert arg STRING to a character, the first character of that string.\n\ -A multibyte character is handled correctly.") - (string) + /* Convert arg STRING to a character, the first character of that string. +A multibyte character is handled correctly. */ + (string)) register Lisp_Object string; { register Lisp_Object val; @@ -212,9 +213,9 @@ } DEFUN ("point", Fpoint, Spoint, 0, 0, 0, - "Return value of point, as an integer.\n\ -Beginning of buffer is position (point-min)") - () + /* Return value of point, as an integer. +Beginning of buffer is position (point-min). */ + ()) { Lisp_Object temp; XSETFASTINT (temp, PT); @@ -222,8 +223,8 @@ } DEFUN ("point-marker", Fpoint_marker, Spoint_marker, 0, 0, 0, - "Return value of point, as a marker object.") - () + /* Return value of point, as a marker object. */ + ()) { return buildmark (PT, PT_BYTE); } @@ -241,12 +242,12 @@ } DEFUN ("goto-char", Fgoto_char, Sgoto_char, 1, 1, "NGoto char: ", - "Set point to POSITION, a number or marker.\n\ -Beginning of buffer is position (point-min), end is (point-max).\n\ -If the position is in the middle of a multibyte form,\n\ -the actual point is set at the head of the multibyte form\n\ -except in the case that `enable-multibyte-characters' is nil.") - (position) + /* Set point to POSITION, a number or marker. +Beginning of buffer is position (point-min), end is (point-max). +If the position is in the middle of a multibyte form, +the actual point is set at the head of the multibyte form +except in the case that `enable-multibyte-characters' is nil. */ + (position)) register Lisp_Object position; { int pos; @@ -299,24 +300,24 @@ } DEFUN ("region-beginning", Fregion_beginning, Sregion_beginning, 0, 0, 0, - "Return position of beginning of region, as an integer.") - () + /* Return position of beginning of region, as an integer. */ + ()) { return region_limit (1); } DEFUN ("region-end", Fregion_end, Sregion_end, 0, 0, 0, - "Return position of end of region, as an integer.") - () + /* Return position of end of region, as an integer. */ + ()) { return region_limit (0); } DEFUN ("mark-marker", Fmark_marker, Smark_marker, 0, 0, 0, - "Return this buffer's mark, as a marker object.\n\ -Watch out! Moving this marker changes the mark position.\n\ -If you set the marker not to point anywhere, the buffer will have no mark.") - () + /* Return this buffer's mark, as a marker object. +Watch out! Moving this marker changes the mark position. +If you set the marker not to point anywhere, the buffer will have no mark. */ + ()) { return current_buffer->mark; } @@ -556,10 +557,10 @@ DEFUN ("delete-field", Fdelete_field, Sdelete_field, 0, 1, 0, - "Delete the field surrounding POS.\n\ -A field is a region of text with the same `field' property.\n\ -If POS is nil, the value of point is used for POS.") - (pos) + /* Delete the field surrounding POS. +A field is a region of text with the same `field' property. +If POS is nil, the value of point is used for POS. */ + (pos)) Lisp_Object pos; { int beg, end; @@ -570,10 +571,10 @@ } DEFUN ("field-string", Ffield_string, Sfield_string, 0, 1, 0, - "Return the contents of the field surrounding POS as a string.\n\ -A field is a region of text with the same `field' property.\n\ -If POS is nil, the value of point is used for POS.") - (pos) + /* Return the contents of the field surrounding POS as a string. +A field is a region of text with the same `field' property. +If POS is nil, the value of point is used for POS. */ + (pos)) Lisp_Object pos; { int beg, end; @@ -582,10 +583,10 @@ } DEFUN ("field-string-no-properties", Ffield_string_no_properties, Sfield_string_no_properties, 0, 1, 0, - "Return the contents of the field around POS, without text-properties.\n\ -A field is a region of text with the same `field' property.\n\ -If POS is nil, the value of point is used for POS.") - (pos) + /* Return the contents of the field around POS, without text-properties. +A field is a region of text with the same `field' property. +If POS is nil, the value of point is used for POS. */ + (pos)) Lisp_Object pos; { int beg, end; @@ -594,12 +595,12 @@ } DEFUN ("field-beginning", Ffield_beginning, Sfield_beginning, 0, 2, 0, - "Return the beginning of the field surrounding POS.\n\ -A field is a region of text with the same `field' property.\n\ -If POS is nil, the value of point is used for POS.\n\ -If ESCAPE-FROM-EDGE is non-nil and POS is at the beginning of its\n\ -field, then the beginning of the *previous* field is returned.") - (pos, escape_from_edge) + /* Return the beginning of the field surrounding POS. +A field is a region of text with the same `field' property. +If POS is nil, the value of point is used for POS. +If ESCAPE-FROM-EDGE is non-nil and POS is at the beginning of its +field, then the beginning of the *previous* field is returned. */ + (pos, escape_from_edge)) Lisp_Object pos, escape_from_edge; { int beg; @@ -608,12 +609,12 @@ } DEFUN ("field-end", Ffield_end, Sfield_end, 0, 2, 0, - "Return the end of the field surrounding POS.\n\ -A field is a region of text with the same `field' property.\n\ -If POS is nil, the value of point is used for POS.\n\ -If ESCAPE-FROM-EDGE is non-nil and POS is at the end of its field,\n\ -then the end of the *following* field is returned.") - (pos, escape_from_edge) + /* Return the end of the field surrounding POS. +A field is a region of text with the same `field' property. +If POS is nil, the value of point is used for POS. +If ESCAPE-FROM-EDGE is non-nil and POS is at the end of its field, +then the end of the *following* field is returned. */ + (pos, escape_from_edge)) Lisp_Object pos, escape_from_edge; { int end; @@ -622,33 +623,33 @@ } DEFUN ("constrain-to-field", Fconstrain_to_field, Sconstrain_to_field, 2, 5, 0, - "Return the position closest to NEW-POS that is in the same field as OLD-POS.\n\ -\n\ -A field is a region of text with the same `field' property.\n\ -If NEW-POS is nil, then the current point is used instead, and set to the\n\ -constrained position if that is different.\n\ -\n\ -If OLD-POS is at the boundary of two fields, then the allowable\n\ -positions for NEW-POS depends on the value of the optional argument\n\ -ESCAPE-FROM-EDGE: If ESCAPE-FROM-EDGE is nil, then NEW-POS is\n\ -constrained to the field that has the same `field' char-property\n\ -as any new characters inserted at OLD-POS, whereas if ESCAPE-FROM-EDGE\n\ -is non-nil, NEW-POS is constrained to the union of the two adjacent\n\ -fields. Additionally, if two fields are separated by another field with\n\ -the special value `boundary', then any point within this special field is\n\ -also considered to be `on the boundary'.\n\ -\n\ -If the optional argument ONLY-IN-LINE is non-nil and constraining\n\ -NEW-POS would move it to a different line, NEW-POS is returned\n\ -unconstrained. This useful for commands that move by line, like\n\ -\\[next-line] or \\[beginning-of-line], which should generally respect field boundaries\n\ -only in the case where they can still move to the right line.\n\ -\n\ -If the optional argument INHIBIT-CAPTURE-PROPERTY is non-nil, and OLD-POS has\n\ -a non-nil property of that name, then any field boundaries are ignored.\n\ -\n\ -Field boundaries are not noticed if `inhibit-field-text-motion' is non-nil.") - (new_pos, old_pos, escape_from_edge, only_in_line, inhibit_capture_property) + /* Return the position closest to NEW-POS that is in the same field as OLD-POS. + +A field is a region of text with the same `field' property. +If NEW-POS is nil, then the current point is used instead, and set to the +constrained position if that is different. + +If OLD-POS is at the boundary of two fields, then the allowable +positions for NEW-POS depends on the value of the optional argument +ESCAPE-FROM-EDGE: If ESCAPE-FROM-EDGE is nil, then NEW-POS is +constrained to the field that has the same `field' char-property +as any new characters inserted at OLD-POS, whereas if ESCAPE-FROM-EDGE +is non-nil, NEW-POS is constrained to the union of the two adjacent +fields. Additionally, if two fields are separated by another field with +the special value `boundary', then any point within this special field is +also considered to be `on the boundary'. + +If the optional argument ONLY-IN-LINE is non-nil and constraining +NEW-POS would move it to a different line, NEW-POS is returned +unconstrained. This useful for commands that move by line, like +\\[next-line] or \\[beginning-of-line], which should generally respect field boundaries +only in the case where they can still move to the right line. + +If the optional argument INHIBIT-CAPTURE-PROPERTY is non-nil, and OLD-POS has +a non-nil property of that name, then any field boundaries are ignored. + +Field boundaries are not noticed if `inhibit-field-text-motion' is non-nil. */ + (new_pos, old_pos, escape_from_edge, only_in_line, inhibit_capture_property)) Lisp_Object new_pos, old_pos; Lisp_Object escape_from_edge, only_in_line, inhibit_capture_property; { @@ -715,16 +716,16 @@ DEFUN ("line-beginning-position", Fline_beginning_position, Sline_beginning_position, 0, 1, 0, - "Return the character position of the first character on the current line.\n\ -With argument N not nil or 1, move forward N - 1 lines first.\n\ -If scan reaches end of buffer, return that position.\n\ -The scan does not cross a field boundary unless it would move\n\ -beyond there to a different line. Field boundaries are not noticed if\n\ -`inhibit-field-text-motion' is non-nil. .And if N is nil or 1,\n\ -and scan starts at a field boundary, the scan stops as soon as it starts.\n\ -\n\ -This function does not move point.") - (n) + /* Return the character position of the first character on the current line. +With argument N not nil or 1, move forward N - 1 lines first. +If scan reaches end of buffer, return that position. +The scan does not cross a field boundary unless it would move +beyond there to a different line. Field boundaries are not noticed if +`inhibit-field-text-motion' is non-nil. And if N is nil or 1, +and scan starts at a field boundary, the scan stops as soon as it starts. + +This function does not move point. */ + (n)) Lisp_Object n; { int orig, orig_byte, end; @@ -749,11 +750,11 @@ DEFUN ("line-end-position", Fline_end_position, Sline_end_position, 0, 1, 0, - "Return the character position of the last character on the current line.\n\ -With argument N not nil or 1, move forward N - 1 lines first.\n\ -If scan reaches end of buffer, return that position.\n\ -This function does not move point.") - (n) + /* Return the character position of the last character on the current line. +With argument N not nil or 1, move forward N - 1 lines first. +If scan reaches end of buffer, return that position. +This function does not move point. */ + (n)) Lisp_Object n; { int end_pos; @@ -870,17 +871,17 @@ } DEFUN ("save-excursion", Fsave_excursion, Ssave_excursion, 0, UNEVALLED, 0, - "Save point, mark, and current buffer; execute BODY; restore those things.\n\ -Executes BODY just like `progn'.\n\ -The values of point, mark and the current buffer are restored\n\ -even in case of abnormal exit (throw or error).\n\ -The state of activation of the mark is also restored.\n\ -\n\ -This construct does not save `deactivate-mark', and therefore\n\ -functions that change the buffer will still cause deactivation\n\ -of the mark at the end of the command. To prevent that, bind\n\ -`deactivate-mark' with `let'.") - (args) + /* Save point, mark, and current buffer; execute BODY; restore those things. +Executes BODY just like `progn'. +The values of point, mark and the current buffer are restored +even in case of abnormal exit (throw or error). +The state of activation of the mark is also restored. + +This construct does not save `deactivate-mark', and therefore +functions that change the buffer will still cause deactivation +of the mark at the end of the command. To prevent that, bind +`deactivate-mark' with `let'. */ + (args)) Lisp_Object args; { register Lisp_Object val; @@ -893,9 +894,9 @@ } DEFUN ("save-current-buffer", Fsave_current_buffer, Ssave_current_buffer, 0, UNEVALLED, 0, - "Save the current buffer; execute BODY; restore the current buffer.\n\ -Executes BODY just like `progn'.") - (args) + /* Save the current buffer; execute BODY; restore the current buffer. +Executes BODY just like `progn'. */ + (args)) Lisp_Object args; { Lisp_Object val; @@ -908,9 +909,9 @@ } DEFUN ("buffer-size", Fbufsize, Sbufsize, 0, 1, 0, - "Return the number of characters in the current buffer.\n\ -If BUFFER, return the number of characters in that buffer instead.") - (buffer) + /* Return the number of characters in the current buffer. +If BUFFER, return the number of characters in that buffer instead. */ + (buffer)) Lisp_Object buffer; { if (NILP (buffer)) @@ -924,9 +925,9 @@ } DEFUN ("point-min", Fpoint_min, Spoint_min, 0, 0, 0, - "Return the minimum permissible value of point in the current buffer.\n\ -This is 1, unless narrowing (a buffer restriction) is in effect.") - () + /* Return the minimum permissible value of point in the current buffer. +This is 1, unless narrowing (a buffer restriction) is in effect. */ + ()) { Lisp_Object temp; XSETFASTINT (temp, BEGV); @@ -934,18 +935,18 @@ } DEFUN ("point-min-marker", Fpoint_min_marker, Spoint_min_marker, 0, 0, 0, - "Return a marker to the minimum permissible value of point in this buffer.\n\ -This is the beginning, unless narrowing (a buffer restriction) is in effect.") - () + /* Return a marker to the minimum permissible value of point in this buffer. +This is the beginning, unless narrowing (a buffer restriction) is in effect. */ + ()) { return buildmark (BEGV, BEGV_BYTE); } DEFUN ("point-max", Fpoint_max, Spoint_max, 0, 0, 0, - "Return the maximum permissible value of point in the current buffer.\n\ -This is (1+ (buffer-size)), unless narrowing (a buffer restriction)\n\ -is in effect, in which case it is less.") - () + /* Return the maximum permissible value of point in the current buffer. +This is (1+ (buffer-size)), unless narrowing (a buffer restriction) +is in effect, in which case it is less. */ + ()) { Lisp_Object temp; XSETFASTINT (temp, ZV); @@ -953,18 +954,18 @@ } DEFUN ("point-max-marker", Fpoint_max_marker, Spoint_max_marker, 0, 0, 0, - "Return a marker to the maximum permissible value of point in this buffer.\n\ -This is (1+ (buffer-size)), unless narrowing (a buffer restriction)\n\ -is in effect, in which case it is less.") - () + /* Return a marker to the maximum permissible value of point in this buffer. +This is (1+ (buffer-size)), unless narrowing (a buffer restriction) +is in effect, in which case it is less. */ + ()) { return buildmark (ZV, ZV_BYTE); } DEFUN ("gap-position", Fgap_position, Sgap_position, 0, 0, 0, - "Return the position of the gap, in the current buffer.\n\ -See also `gap-size'.") - () + /* Return the position of the gap, in the current buffer. +See also `gap-size'. */ + ()) { Lisp_Object temp; XSETFASTINT (temp, GPT); @@ -972,9 +973,9 @@ } DEFUN ("gap-size", Fgap_size, Sgap_size, 0, 0, 0, - "Return the size of the current buffer's gap.\n\ -See also `gap-position'.") - () + /* Return the size of the current buffer's gap. +See also `gap-position'. */ + ()) { Lisp_Object temp; XSETFASTINT (temp, GAP_SIZE); @@ -982,9 +983,9 @@ } DEFUN ("position-bytes", Fposition_bytes, Sposition_bytes, 1, 1, 0, - "Return the byte position for character position POSITION.\n\ -If POSITION is out of range, the value is nil.") - (position) + /* Return the byte position for character position POSITION. +If POSITION is out of range, the value is nil. */ + (position)) Lisp_Object position; { CHECK_NUMBER_COERCE_MARKER (position, 1); @@ -994,9 +995,9 @@ } DEFUN ("byte-to-position", Fbyte_to_position, Sbyte_to_position, 1, 1, 0, - "Return the character position for byte position BYTEPOS.\n\ -If BYTEPOS is out of range, the value is nil.") - (bytepos) + /* Return the character position for byte position BYTEPOS. +If BYTEPOS is out of range, the value is nil. */ + (bytepos)) Lisp_Object bytepos; { CHECK_NUMBER (bytepos, 1); @@ -1006,9 +1007,9 @@ } DEFUN ("following-char", Ffollowing_char, Sfollowing_char, 0, 0, 0, - "Return the character following point, as a number.\n\ -At the end of the buffer or accessible region, return 0.") - () + /* Return the character following point, as a number. +At the end of the buffer or accessible region, return 0. */ + ()) { Lisp_Object temp; if (PT >= ZV) @@ -1019,9 +1020,9 @@ } DEFUN ("preceding-char", Fprevious_char, Sprevious_char, 0, 0, 0, - "Return the character preceding point, as a number.\n\ -At the beginning of the buffer or accessible region, return 0.") - () + /* Return the character preceding point, as a number. +At the beginning of the buffer or accessible region, return 0. */ + ()) { Lisp_Object temp; if (PT <= BEGV) @@ -1038,9 +1039,9 @@ } DEFUN ("bobp", Fbobp, Sbobp, 0, 0, 0, - "Return t if point is at the beginning of the buffer.\n\ -If the buffer is narrowed, this means the beginning of the narrowed part.") - () + /* Return t if point is at the beginning of the buffer. +If the buffer is narrowed, this means the beginning of the narrowed part. */ + ()) { if (PT == BEGV) return Qt; @@ -1048,9 +1049,9 @@ } DEFUN ("eobp", Feobp, Seobp, 0, 0, 0, - "Return t if point is at the end of the buffer.\n\ -If the buffer is narrowed, this means the end of the narrowed part.") - () + /* Return t if point is at the end of the buffer. +If the buffer is narrowed, this means the end of the narrowed part. */ + ()) { if (PT == ZV) return Qt; @@ -1058,8 +1059,8 @@ } DEFUN ("bolp", Fbolp, Sbolp, 0, 0, 0, - "Return t if point is at the beginning of a line.") - () + /* Return t if point is at the beginning of a line. */ + ()) { if (PT == BEGV || FETCH_BYTE (PT_BYTE - 1) == '\n') return Qt; @@ -1067,9 +1068,9 @@ } DEFUN ("eolp", Feolp, Seolp, 0, 0, 0, - "Return t if point is at the end of a line.\n\ -`End of a line' includes point being at the end of the buffer.") - () + /* Return t if point is at the end of a line. +`End of a line' includes point being at the end of the buffer. */ + ()) { if (PT == ZV || FETCH_BYTE (PT_BYTE) == '\n') return Qt; @@ -1077,10 +1078,10 @@ } DEFUN ("char-after", Fchar_after, Schar_after, 0, 1, 0, - "Return character in current buffer at position POS.\n\ -POS is an integer or a marker.\n\ -If POS is out of range, the value is nil.") - (pos) + /* Return character in current buffer at position POS. +POS is an integer or a marker. +If POS is out of range, the value is nil. */ + (pos)) Lisp_Object pos; { register int pos_byte; @@ -1110,10 +1111,10 @@ } DEFUN ("char-before", Fchar_before, Schar_before, 0, 1, 0, - "Return character in current buffer preceding position POS.\n\ -POS is an integer or a marker.\n\ -If POS is out of range, the value is nil.") - (pos) + /* Return character in current buffer preceding position POS. +POS is an integer or a marker. +If POS is out of range, the value is nil. */ + (pos)) Lisp_Object pos; { register Lisp_Object val; @@ -1156,13 +1157,14 @@ } DEFUN ("user-login-name", Fuser_login_name, Suser_login_name, 0, 1, 0, - "Return the name under which the user logged in, as a string.\n\ -This is based on the effective uid, not the real uid.\n\ -Also, if the environment variable LOGNAME or USER is set,\n\ -that determines the value of this function.\n\n\ -If optional argument UID is an integer, return the login name of the user\n\ -with that uid, or nil if there is no such user.") - (uid) + /* Return the name under which the user logged in, as a string. +This is based on the effective uid, not the real uid. +Also, if the environment variable LOGNAME or USER is set, +that determines the value of this function. + +If optional argument UID is an integer, return the login name of the user +with that uid, or nil if there is no such user. */ + (uid)) Lisp_Object uid; { struct passwd *pw; @@ -1183,10 +1185,10 @@ DEFUN ("user-real-login-name", Fuser_real_login_name, Suser_real_login_name, 0, 0, 0, - "Return the name of the user's real uid, as a string.\n\ -This ignores the environment variables LOGNAME and USER, so it differs from\n\ -`user-login-name' when running under `su'.") - () + /* Return the name of the user's real uid, as a string. +This ignores the environment variables LOGNAME and USER, so it differs from +`user-login-name' when running under `su'. */ + ()) { /* Set up the user name info if we didn't do it before. (That can happen if Emacs is dumpable @@ -1197,31 +1199,31 @@ } DEFUN ("user-uid", Fuser_uid, Suser_uid, 0, 0, 0, - "Return the effective uid of Emacs.\n\ -Value is an integer or float, depending on the value.") - () + /* Return the effective uid of Emacs. +Value is an integer or float, depending on the value. */ + ()) { return make_fixnum_or_float (geteuid ()); } DEFUN ("user-real-uid", Fuser_real_uid, Suser_real_uid, 0, 0, 0, - "Return the real uid of Emacs.\n\ -Value is an integer or float, depending on the value.") - () + /* Return the real uid of Emacs. +Value is an integer or float, depending on the value. */ + ()) { return make_fixnum_or_float (getuid ()); } DEFUN ("user-full-name", Fuser_full_name, Suser_full_name, 0, 1, 0, - "Return the full name of the user logged in, as a string.\n\ -If the full name corresponding to Emacs's userid is not known,\n\ -return \"unknown\".\n\ -\n\ -If optional argument UID is an integer or float, return the full name\n\ -of the user with that uid, or nil if there is no such user.\n\ -If UID is a string, return the full name of the user with that login\n\ -name, or nil if there is no such user.") - (uid) + /* Return the full name of the user logged in, as a string. +If the full name corresponding to Emacs's userid is not known, +return "unknown". + +If optional argument UID is an integer or float, return the full name +of the user with that uid, or nil if there is no such user. +If UID is a string, return the full name of the user with that login +name, or nil if there is no such user. */ + (uid)) Lisp_Object uid; { struct passwd *pw; @@ -1269,8 +1271,8 @@ } DEFUN ("system-name", Fsystem_name, Ssystem_name, 0, 0, 0, - "Return the name of the machine you are running on, as a string.") - () + /* Return the name of the machine you are running on, as a string. */ + ()) { return Vsystem_name; } @@ -1287,22 +1289,22 @@ } DEFUN ("emacs-pid", Femacs_pid, Semacs_pid, 0, 0, 0, - "Return the process ID of Emacs, as an integer.") - () + /* Return the process ID of Emacs, as an integer. */ + ()) { return make_number (getpid ()); } DEFUN ("current-time", Fcurrent_time, Scurrent_time, 0, 0, 0, - "Return the current time, as the number of seconds since 1970-01-01 00:00:00.\n\ -The time is returned as a list of three integers. The first has the\n\ -most significant 16 bits of the seconds, while the second has the\n\ -least significant 16 bits. The third integer gives the microsecond\n\ -count.\n\ -\n\ -The microsecond count is zero on systems that do not provide\n\ -resolution finer than a second.") - () + /* Return the current time, as the number of seconds since 1970-01-01 00:00:00. +The time is returned as a list of three integers. The first has the +most significant 16 bits of the seconds, while the second has the +least significant 16 bits. The third integer gives the microsecond +count. + +The microsecond count is zero on systems that do not provide +resolution finer than a second. */ + ()) { EMACS_TIME t; Lisp_Object result[3]; @@ -1368,16 +1370,16 @@ } DEFUN ("float-time", Ffloat_time, Sfloat_time, 0, 1, 0, - "Return the current time, as a float number of seconds since the epoch.\n\ -If an argument is given, it specifies a time to convert to float\n\ -instead of the current time. The argument should have the forms:\n\ - (HIGH . LOW) or (HIGH LOW USEC) or (HIGH LOW . USEC).\n\ -Thus, you can use times obtained from `current-time'\n\ -and from `file-attributes'.\n\ -\n\ -WARNING: Since the result is floating point, it may not be exact.\n\ -Do not use this function if precise time stamps are required.") - (specified_time) + /* Return the current time, as a float number of seconds since the epoch. +If an argument is given, it specifies a time to convert to float +instead of the current time. The argument should have the forms: + (HIGH . LOW) or (HIGH LOW USEC) or (HIGH LOW . USEC). +Thus, you can use times obtained from `current-time' +and from `file-attributes'. + +WARNING: Since the result is floating point, it may not be exact. +Do not use this function if precise time stamps are required. */ + (specified_time)) Lisp_Object specified_time; { time_t sec; @@ -1443,63 +1445,57 @@ } } -/* DEFUN ("format-time-string", Fformat_time_string, Sformat_time_string, 1, 3, 0, - "Use FORMAT-STRING to format the time TIME, or now if omitted.\n\ -TIME is specified as (HIGH LOW . IGNORED) or (HIGH . LOW), as returned by\n\ -`current-time' or `file-attributes'.\n\ -The third, optional, argument UNIVERSAL, if non-nil, means describe TIME\n\ -as Universal Time; nil means describe TIME in the local time zone.\n\ -The value is a copy of FORMAT-STRING, but with certain constructs replaced\n\ -by text that describes the specified date and time in TIME:\n\ -\n\ -%Y is the year, %y within the century, %C the century.\n\ -%G is the year corresponding to the ISO week, %g within the century.\n\ -%m is the numeric month.\n\ -%b and %h are the locale's abbreviated month name, %B the full name.\n\ -%d is the day of the month, zero-padded, %e is blank-padded.\n\ -%u is the numeric day of week from 1 (Monday) to 7, %w from 0 (Sunday) to 6.\n\ -%a is the locale's abbreviated name of the day of week, %A the full name.\n\ -%U is the week number starting on Sunday, %W starting on Monday,\n\ - %V according to ISO 8601.\n\ -%j is the day of the year.\n\ -\n\ -%H is the hour on a 24-hour clock, %I is on a 12-hour clock, %k is like %H\n\ - only blank-padded, %l is like %I blank-padded.\n\ -%p is the locale's equivalent of either AM or PM.\n\ -%M is the minute.\n\ -%S is the second.\n\ -%Z is the time zone name, %z is the numeric form.\n\ -%s is the number of seconds since 1970-01-01 00:00:00 +0000.\n\ -\n\ -%c is the locale's date and time format.\n\ -%x is the locale's \"preferred\" date format.\n\ -%D is like \"%m/%d/%y\".\n\ -\n\ -%R is like \"%H:%M\", %T is like \"%H:%M:%S\", %r is like \"%I:%M:%S %p\".\n\ -%X is the locale's \"preferred\" time format.\n\ -\n\ -Finally, %n is a newline, %t is a tab, %% is a literal %.\n\ -\n\ -Certain flags and modifiers are available with some format controls.\n\ -The flags are `_', `-', `^' and `#'. For certain characters X,\n\ -%_X is like %X, but padded with blanks; %-X is like %X,\n\ -ut without padding. %^X is like %X but with all textual\n\ -characters up-cased; %#X is like %X but with letter-case of\n\ -all textual characters reversed.\n\ -%NX (where N stands for an integer) is like %X,\n\ -but takes up at least N (a number) positions.\n\ -The modifiers are `E' and `O'. For certain characters X,\n\ -%EX is a locale's alternative version of %X;\n\ -%OX is like %X, but uses the locale's number symbols.\n\ -\n\ -For example, to produce full ISO 8601 format, use \"%Y-%m-%dT%T%z\".") - (format_string, time, universal) -*/ - -DEFUN ("format-time-string", Fformat_time_string, Sformat_time_string, 1, 3, 0, - 0 /* See immediately above */) - (format_string, time, universal) + /* Use FORMAT-STRING to format the time TIME, or now if omitted. +TIME is specified as (HIGH LOW . IGNORED) or (HIGH . LOW), as returned by +`current-time' or `file-attributes'. +The third, optional, argument UNIVERSAL, if non-nil, means describe TIME +as Universal Time; nil means describe TIME in the local time zone. +The value is a copy of FORMAT-STRING, but with certain constructs replaced +by text that describes the specified date and time in TIME: + +%Y is the year, %y within the century, %C the century. +%G is the year corresponding to the ISO week, %g within the century. +%m is the numeric month. +%b and %h are the locale's abbreviated month name, %B the full name. +%d is the day of the month, zero-padded, %e is blank-padded. +%u is the numeric day of week from 1 (Monday) to 7, %w from 0 (Sunday) to 6. +%a is the locale's abbreviated name of the day of week, %A the full name. +%U is the week number starting on Sunday, %W starting on Monday, + %V according to ISO 8601. +%j is the day of the year. + +%H is the hour on a 24-hour clock, %I is on a 12-hour clock, %k is like %H + only blank-padded, %l is like %I blank-padded. +%p is the locale's equivalent of either AM or PM. +%M is the minute. +%S is the second. +%Z is the time zone name, %z is the numeric form. +%s is the number of seconds since 1970-01-01 00:00:00 +0000. + +%c is the locale's date and time format. +%x is the locale's "preferred" date format. +%D is like "%m/%d/%y". + +%R is like "%H:%M", %T is like "%H:%M:%S", %r is like "%I:%M:%S %p". +%X is the locale's "preferred" time format. + +Finally, %n is a newline, %t is a tab, %% is a literal %. + +Certain flags and modifiers are available with some format controls. +The flags are `_', `-', `^' and `#'. For certain characters X, +%_X is like %X, but padded with blanks; %-X is like %X, +ut without padding. %^X is like %X but with all textual +characters up-cased; %#X is like %X but with letter-case of +all textual characters reversed. +%NX (where N stands for an integer) is like %X, +but takes up at least N (a number) positions. +The modifiers are `E' and `O'. For certain characters X, +%EX is a locale's alternative version of %X; +%OX is like %X, but uses the locale's number symbols. + +For example, to produce full ISO 8601 format, use "%Y-%m-%dT%T%z". */ + (format_string, time, universal)) Lisp_Object format_string, time, universal; { time_t value; @@ -1547,19 +1543,19 @@ } DEFUN ("decode-time", Fdecode_time, Sdecode_time, 0, 1, 0, - "Decode a time value as (SEC MINUTE HOUR DAY MONTH YEAR DOW DST ZONE).\n\ -The optional SPECIFIED-TIME should be a list of (HIGH LOW . IGNORED)\n\ -or (HIGH . LOW), as from `current-time' and `file-attributes', or `nil'\n\ -to use the current time. The list has the following nine members:\n\ -SEC is an integer between 0 and 60; SEC is 60 for a leap second, which\n\ -only some operating systems support. MINUTE is an integer between 0 and 59.\n\ -HOUR is an integer between 0 and 23. DAY is an integer between 1 and 31.\n\ -MONTH is an integer between 1 and 12. YEAR is an integer indicating the\n\ -four-digit year. DOW is the day of week, an integer between 0 and 6, where\n\ -0 is Sunday. DST is t if daylight savings time is effect, otherwise nil.\n\ -ZONE is an integer indicating the number of seconds east of Greenwich.\n\ -\(Note that Common Lisp has different meanings for DOW and ZONE.)") - (specified_time) + /* Decode a time value as (SEC MINUTE HOUR DAY MONTH YEAR DOW DST ZONE). +The optional SPECIFIED-TIME should be a list of (HIGH LOW . IGNORED) +or (HIGH . LOW), as from `current-time' and `file-attributes', or `nil' +to use the current time. The list has the following nine members: +SEC is an integer between 0 and 60; SEC is 60 for a leap second, which +only some operating systems support. MINUTE is an integer between 0 and 59. +HOUR is an integer between 0 and 23. DAY is an integer between 1 and 31. +MONTH is an integer between 1 and 12. YEAR is an integer indicating the +four-digit year. DOW is the day of week, an integer between 0 and 6, where +0 is Sunday. DST is t if daylight savings time is effect, otherwise nil. +ZONE is an integer indicating the number of seconds east of Greenwich. +(Note that Common Lisp has different meanings for DOW and ZONE.) */ + (specified_time)) Lisp_Object specified_time; { time_t time_spec; @@ -1593,23 +1589,23 @@ } DEFUN ("encode-time", Fencode_time, Sencode_time, 6, MANY, 0, - "Convert SECOND, MINUTE, HOUR, DAY, MONTH, YEAR and ZONE to internal time.\n\ -This is the reverse operation of `decode-time', which see.\n\ -ZONE defaults to the current time zone rule. This can\n\ -be a string or t (as from `set-time-zone-rule'), or it can be a list\n\ -\(as from `current-time-zone') or an integer (as from `decode-time')\n\ -applied without consideration for daylight savings time.\n\ -\n\ -You can pass more than 7 arguments; then the first six arguments\n\ -are used as SECOND through YEAR, and the *last* argument is used as ZONE.\n\ -The intervening arguments are ignored.\n\ -This feature lets (apply 'encode-time (decode-time ...)) work.\n\ -\n\ -Out-of-range values for SEC, MINUTE, HOUR, DAY, or MONTH are allowed;\n\ -for example, a DAY of 0 means the day preceding the given month.\n\ -Year numbers less than 100 are treated just like other year numbers.\n\ -If you want them to stand for years in this century, you must do that yourself.") - (nargs, args) + /* Convert SECOND, MINUTE, HOUR, DAY, MONTH, YEAR and ZONE to internal time. +This is the reverse operation of `decode-time', which see. +ZONE defaults to the current time zone rule. This can +be a string or t (as from `set-time-zone-rule'), or it can be a list +(as from `current-time-zone') or an integer (as from `decode-time') +applied without consideration for daylight savings time. + +You can pass more than 7 arguments; then the first six arguments +are used as SECOND through YEAR, and the *last* argument is used as ZONE. +The intervening arguments are ignored. +This feature lets (apply 'encode-time (decode-time ...)) work. + +Out-of-range values for SEC, MINUTE, HOUR, DAY, or MONTH are allowed; +for example, a DAY of 0 means the day preceding the given month. +Year numbers less than 100 are treated just like other year numbers. +If you want them to stand for years in this century, you must do that yourself. */ + (nargs, args)) int nargs; register Lisp_Object *args; { @@ -1678,21 +1674,21 @@ } DEFUN ("current-time-string", Fcurrent_time_string, Scurrent_time_string, 0, 1, 0, - "Return the current time, as a human-readable string.\n\ -Programs can use this function to decode a time,\n\ -since the number of columns in each field is fixed.\n\ -The format is `Sun Sep 16 01:03:52 1973'.\n\ -However, see also the functions `decode-time' and `format-time-string'\n\ -which provide a much more powerful and general facility.\n\ -\n\ -If an argument is given, it specifies a time to format\n\ -instead of the current time. The argument should have the form:\n\ - (HIGH . LOW)\n\ -or the form:\n\ - (HIGH LOW . IGNORED).\n\ -Thus, you can use times obtained from `current-time'\n\ -and from `file-attributes'.") - (specified_time) + /* Return the current time, as a human-readable string. +Programs can use this function to decode a time, +since the number of columns in each field is fixed. +The format is `Sun Sep 16 01:03:52 1973'. +However, see also the functions `decode-time' and `format-time-string' +which provide a much more powerful and general facility. + +If an argument is given, it specifies a time to format +instead of the current time. The argument should have the form: + (HIGH . LOW) +or the form: + (HIGH LOW . IGNORED). +Thus, you can use times obtained from `current-time' +and from `file-attributes'. */ + (specified_time)) Lisp_Object specified_time; { time_t value; @@ -1736,23 +1732,23 @@ } DEFUN ("current-time-zone", Fcurrent_time_zone, Scurrent_time_zone, 0, 1, 0, - "Return the offset and name for the local time zone.\n\ -This returns a list of the form (OFFSET NAME).\n\ -OFFSET is an integer number of seconds ahead of UTC (east of Greenwich).\n\ - A negative value means west of Greenwich.\n\ -NAME is a string giving the name of the time zone.\n\ -If an argument is given, it specifies when the time zone offset is determined\n\ -instead of using the current time. The argument should have the form:\n\ - (HIGH . LOW)\n\ -or the form:\n\ - (HIGH LOW . IGNORED).\n\ -Thus, you can use times obtained from `current-time'\n\ -and from `file-attributes'.\n\ -\n\ -Some operating systems cannot provide all this information to Emacs;\n\ -in this case, `current-time-zone' returns a list containing nil for\n\ -the data it can't find.") - (specified_time) + /* Return the offset and name for the local time zone. +This returns a list of the form (OFFSET NAME). +OFFSET is an integer number of seconds ahead of UTC (east of Greenwich). + A negative value means west of Greenwich. +NAME is a string giving the name of the time zone. +If an argument is given, it specifies when the time zone offset is determined +instead of using the current time. The argument should have the form: + (HIGH . LOW) +or the form: + (HIGH LOW . IGNORED). +Thus, you can use times obtained from `current-time' +and from `file-attributes'. + +Some operating systems cannot provide all this information to Emacs; +in this case, `current-time-zone' returns a list containing nil for +the data it can't find. */ + (specified_time)) Lisp_Object specified_time; { time_t value; @@ -1808,10 +1804,10 @@ static char **environbuf; DEFUN ("set-time-zone-rule", Fset_time_zone_rule, Sset_time_zone_rule, 1, 1, 0, - "Set the local time zone using TZ, a string specifying a time zone rule.\n\ -If TZ is nil, use implementation-defined default time zone information.\n\ -If TZ is t, use Universal Time.") - (tz) + /* Set the local time zone using TZ, a string specifying a time zone rule. +If TZ is nil, use implementation-defined default time zone information. +If TZ is t, use Universal Time. */ + (tz)) Lisp_Object tz; { char *tzstring; @@ -1995,16 +1991,16 @@ we don't care if it gets trashed. */ DEFUN ("insert", Finsert, Sinsert, 0, MANY, 0, - "Insert the arguments, either strings or characters, at point.\n\ -Point and before-insertion markers move forward to end up\n\ - after the inserted text.\n\ -Any other markers at the point of insertion remain before the text.\n\ -\n\ -If the current buffer is multibyte, unibyte strings are converted\n\ -to multibyte for insertion (see `unibyte-char-to-multibyte').\n\ -If the current buffer is unibyte, multibyte strings are converted\n\ -to unibyte for insertion.") - (nargs, args) + /* Insert the arguments, either strings or characters, at point. +Point and before-insertion markers move forward to end up + after the inserted text. +Any other markers at the point of insertion remain before the text. + +If the current buffer is multibyte, unibyte strings are converted +to multibyte for insertion (see `unibyte-char-to-multibyte'). +If the current buffer is unibyte, multibyte strings are converted +to unibyte for insertion. */ + (nargs, args)) int nargs; register Lisp_Object *args; { @@ -2014,16 +2010,16 @@ DEFUN ("insert-and-inherit", Finsert_and_inherit, Sinsert_and_inherit, 0, MANY, 0, - "Insert the arguments at point, inheriting properties from adjoining text.\n\ -Point and before-insertion markers move forward to end up\n\ - after the inserted text.\n\ -Any other markers at the point of insertion remain before the text.\n\ -\n\ -If the current buffer is multibyte, unibyte strings are converted\n\ -to multibyte for insertion (see `unibyte-char-to-multibyte').\n\ -If the current buffer is unibyte, multibyte strings are converted\n\ -to unibyte for insertion.") - (nargs, args) + /* Insert the arguments at point, inheriting properties from adjoining text. +Point and before-insertion markers move forward to end up + after the inserted text. +Any other markers at the point of insertion remain before the text. + +If the current buffer is multibyte, unibyte strings are converted +to multibyte for insertion (see `unibyte-char-to-multibyte'). +If the current buffer is unibyte, multibyte strings are converted +to unibyte for insertion. */ + (nargs, args)) int nargs; register Lisp_Object *args; { @@ -2033,14 +2029,14 @@ } DEFUN ("insert-before-markers", Finsert_before_markers, Sinsert_before_markers, 0, MANY, 0, - "Insert strings or characters at point, relocating markers after the text.\n\ -Point and markers move forward to end up after the inserted text.\n\ -\n\ -If the current buffer is multibyte, unibyte strings are converted\n\ -to multibyte for insertion (see `unibyte-char-to-multibyte').\n\ -If the current buffer is unibyte, multibyte strings are converted\n\ -to unibyte for insertion.") - (nargs, args) + /* Insert strings or characters at point, relocating markers after the text. +Point and markers move forward to end up after the inserted text. + +If the current buffer is multibyte, unibyte strings are converted +to multibyte for insertion (see `unibyte-char-to-multibyte'). +If the current buffer is unibyte, multibyte strings are converted +to unibyte for insertion. */ + (nargs, args)) int nargs; register Lisp_Object *args; { @@ -2052,14 +2048,14 @@ DEFUN ("insert-before-markers-and-inherit", Finsert_and_inherit_before_markers, Sinsert_and_inherit_before_markers, 0, MANY, 0, - "Insert text at point, relocating markers and inheriting properties.\n\ -Point and markers move forward to end up after the inserted text.\n\ -\n\ -If the current buffer is multibyte, unibyte strings are converted\n\ -to multibyte for insertion (see `unibyte-char-to-multibyte').\n\ -If the current buffer is unibyte, multibyte strings are converted\n\ -to unibyte for insertion.") - (nargs, args) + /* Insert text at point, relocating markers and inheriting properties. +Point and markers move forward to end up after the inserted text. + +If the current buffer is multibyte, unibyte strings are converted +to multibyte for insertion (see `unibyte-char-to-multibyte'). +If the current buffer is unibyte, multibyte strings are converted +to unibyte for insertion. */ + (nargs, args)) int nargs; register Lisp_Object *args; { @@ -2070,12 +2066,12 @@ } DEFUN ("insert-char", Finsert_char, Sinsert_char, 2, 3, 0, - "Insert COUNT (second arg) copies of CHARACTER (first arg).\n\ -Both arguments are required.\n\ -Point, and before-insertion markers, are relocated as in the function `insert'.\n\ -The optional third arg INHERIT, if non-nil, says to inherit text properties\n\ -from adjoining text, if those properties are sticky.") - (character, count, inherit) + /* Insert COUNT (second arg) copies of CHARACTER (first arg). +Both arguments are required. +Point, and before-insertion markers, are relocated as in the function `insert'. +The optional third arg INHERIT, if non-nil, says to inherit text properties +from adjoining text, if those properties are sticky. */ + (character, count, inherit)) Lisp_Object character, count, inherit; { register unsigned char *string; @@ -2226,15 +2222,15 @@ } DEFUN ("buffer-substring", Fbuffer_substring, Sbuffer_substring, 2, 2, 0, - "Return the contents of part of the current buffer as a string.\n\ -The two arguments START and END are character positions;\n\ -they can be in either order.\n\ -The string returned is multibyte if the buffer is multibyte.\n\ -\n\ -This function copies the text properties of that part of the buffer\n\ -into the result string; if you don't want the text properties,\n\ -use `buffer-substring-no-properties' instead.") - (start, end) + /* Return the contents of part of the current buffer as a string. +The two arguments START and END are character positions; +they can be in either order. +The string returned is multibyte if the buffer is multibyte. + +This function copies the text properties of that part of the buffer +into the result string; if you don't want the text properties, +use `buffer-substring-no-properties' instead. */ + (start, end)) Lisp_Object start, end; { register int b, e; @@ -2248,10 +2244,10 @@ DEFUN ("buffer-substring-no-properties", Fbuffer_substring_no_properties, Sbuffer_substring_no_properties, 2, 2, 0, - "Return the characters of part of the buffer, without the text properties.\n\ -The two arguments START and END are character positions;\n\ -they can be in either order.") - (start, end) + /* Return the characters of part of the buffer, without the text properties. +The two arguments START and END are character positions; +they can be in either order. */ + (start, end)) Lisp_Object start, end; { register int b, e; @@ -2264,21 +2260,21 @@ } DEFUN ("buffer-string", Fbuffer_string, Sbuffer_string, 0, 0, 0, - "Return the contents of the current buffer as a string.\n\ -If narrowing is in effect, this function returns only the visible part\n\ -of the buffer.") - () + /* Return the contents of the current buffer as a string. +If narrowing is in effect, this function returns only the visible part +of the buffer. */ + ()) { return make_buffer_string (BEGV, ZV, 1); } DEFUN ("insert-buffer-substring", Finsert_buffer_substring, Sinsert_buffer_substring, 1, 3, 0, - "Insert before point a substring of the contents of buffer BUFFER.\n\ -BUFFER may be a buffer or a buffer name.\n\ -Arguments START and END are character numbers specifying the substring.\n\ -They default to the beginning and the end of BUFFER.") - (buf, start, end) + /* Insert before point a substring of the contents of buffer BUFFER. +BUFFER may be a buffer or a buffer name. +Arguments START and END are character numbers specifying the substring. +They default to the beginning and the end of BUFFER. */ + (buf, start, end)) Lisp_Object buf, start, end; { register int b, e, temp; @@ -2324,14 +2320,15 @@ DEFUN ("compare-buffer-substrings", Fcompare_buffer_substrings, Scompare_buffer_substrings, 6, 6, 0, - "Compare two substrings of two buffers; return result as number.\n\ -the value is -N if first string is less after N-1 chars,\n\ -+N if first string is greater after N-1 chars, or 0 if strings match.\n\ -Each substring is represented as three arguments: BUFFER, START and END.\n\ -That makes six args in all, three for each substring.\n\n\ -The value of `case-fold-search' in the current buffer\n\ -determines whether case is significant or ignored.") - (buffer1, start1, end1, buffer2, start2, end2) + /* Compare two substrings of two buffers; return result as number. +the value is -N if first string is less after N-1 chars, ++N if first string is greater after N-1 chars, or 0 if strings match. +Each substring is represented as three arguments: BUFFER, START and END. +That makes six args in all, three for each substring. + +The value of `case-fold-search' in the current buffer +determines whether case is significant or ignored. */ + (buffer1, start1, end1, buffer2, start2, end2)) Lisp_Object buffer1, start1, end1, buffer2, start2, end2; { register int begp1, endp1, begp2, endp2, temp; @@ -2495,11 +2492,11 @@ DEFUN ("subst-char-in-region", Fsubst_char_in_region, Ssubst_char_in_region, 4, 5, 0, - "From START to END, replace FROMCHAR with TOCHAR each time it occurs.\n\ -If optional arg NOUNDO is non-nil, don't record this change for undo\n\ -and don't mark the buffer as really changed.\n\ -Both characters must have the same length of multi-byte form.") - (start, end, fromchar, tochar, noundo) + /* From START to END, replace FROMCHAR with TOCHAR each time it occurs. +If optional arg NOUNDO is non-nil, don't record this change for undo +and don't mark the buffer as really changed. +Both characters must have the same length of multi-byte form. */ + (start, end, fromchar, tochar, noundo)) Lisp_Object start, end, fromchar, tochar, noundo; { register int pos, pos_byte, stop, i, len, end_byte; @@ -2662,12 +2659,12 @@ } DEFUN ("translate-region", Ftranslate_region, Stranslate_region, 3, 3, 0, - "From START to END, translate characters according to TABLE.\n\ -TABLE is a string; the Nth character in it is the mapping\n\ -for the character with code N.\n\ -This function does not alter multibyte characters.\n\ -It returns the number of characters changed.") - (start, end, table) + /* From START to END, translate characters according to TABLE. +TABLE is a string; the Nth character in it is the mapping +for the character with code N. +This function does not alter multibyte characters. +It returns the number of characters changed. */ + (start, end, table)) Lisp_Object start; Lisp_Object end; register Lisp_Object table; @@ -2751,10 +2748,10 @@ } DEFUN ("delete-region", Fdelete_region, Sdelete_region, 2, 2, "r", - "Delete the text between point and mark.\n\ -When called from a program, expects two arguments,\n\ -positions (integers or markers) specifying the stretch to be deleted.") - (start, end) + /* Delete the text between point and mark. +When called from a program, expects two arguments, +positions (integers or markers) specifying the stretch to be deleted. */ + (start, end)) Lisp_Object start, end; { validate_region (&start, &end); @@ -2764,8 +2761,8 @@ DEFUN ("delete-and-extract-region", Fdelete_and_extract_region, Sdelete_and_extract_region, 2, 2, 0, - "Delete the text between START and END and return it.") - (start, end) + /* Delete the text between START and END and return it. */ + (start, end)) Lisp_Object start, end; { validate_region (&start, &end); @@ -2773,9 +2770,9 @@ } DEFUN ("widen", Fwiden, Swiden, 0, 0, "", - "Remove restrictions (narrowing) from current buffer.\n\ -This allows the buffer's full text to be seen and edited.") - () + /* Remove restrictions (narrowing) from current buffer. +This allows the buffer's full text to be seen and edited. */ + ()) { if (BEG != BEGV || Z != ZV) current_buffer->clip_changed = 1; @@ -2788,15 +2785,15 @@ } DEFUN ("narrow-to-region", Fnarrow_to_region, Snarrow_to_region, 2, 2, "r", - "Restrict editing in this buffer to the current region.\n\ -The rest of the text becomes temporarily invisible and untouchable\n\ -but is not deleted; if you save the buffer in a file, the invisible\n\ -text is included in the file. \\[widen] makes all visible again.\n\ -See also `save-restriction'.\n\ -\n\ -When calling from a program, pass two arguments; positions (integers\n\ -or markers) bounding the text that should remain visible.") - (start, end) + /* Restrict editing in this buffer to the current region. +The rest of the text becomes temporarily invisible and untouchable +but is not deleted; if you save the buffer in a file, the invisible +text is included in the file. \\[widen] makes all visible again. +See also `save-restriction'. + +When calling from a program, pass two arguments; positions (integers +or markers) bounding the text that should remain visible. */ + (start, end)) register Lisp_Object start, end; { CHECK_NUMBER_COERCE_MARKER (start, 0); @@ -2898,21 +2895,21 @@ } DEFUN ("save-restriction", Fsave_restriction, Ssave_restriction, 0, UNEVALLED, 0, - "Execute BODY, saving and restoring current buffer's restrictions.\n\ -The buffer's restrictions make parts of the beginning and end invisible.\n\ -\(They are set up with `narrow-to-region' and eliminated with `widen'.)\n\ -This special form, `save-restriction', saves the current buffer's restrictions\n\ -when it is entered, and restores them when it is exited.\n\ -So any `narrow-to-region' within BODY lasts only until the end of the form.\n\ -The old restrictions settings are restored\n\ -even in case of abnormal exit (throw or error).\n\ -\n\ -The value returned is the value of the last form in BODY.\n\ -\n\ -Note: if you are using both `save-excursion' and `save-restriction',\n\ -use `save-excursion' outermost:\n\ - (save-excursion (save-restriction ...))") - (body) + /* Execute BODY, saving and restoring current buffer's restrictions. +The buffer's restrictions make parts of the beginning and end invisible. +(They are set up with `narrow-to-region' and eliminated with `widen'.) +This special form, `save-restriction', saves the current buffer's restrictions +when it is entered, and restores them when it is exited. +So any `narrow-to-region' within BODY lasts only until the end of the form. +The old restrictions settings are restored +even in case of abnormal exit (throw or error). + +The value returned is the value of the last form in BODY. + +Note: if you are using both `save-excursion' and `save-restriction', +use `save-excursion' outermost: + (save-excursion (save-restriction ...)) */ + (body)) Lisp_Object body; { register Lisp_Object val; @@ -2930,13 +2927,13 @@ static int message_length; DEFUN ("message", Fmessage, Smessage, 1, MANY, 0, - "Print a one-line message at the bottom of the screen.\n\ -The first argument is a format control string, and the rest are data\n\ -to be formatted under control of the string. See `format' for details.\n\ -\n\ -If the first argument is nil, clear any existing message; let the\n\ -minibuffer contents show.") - (nargs, args) + /* Print a one-line message at the bottom of the screen. +The first argument is a format control string, and the rest are data +to be formatted under control of the string. See `format' for details. + +If the first argument is nil, clear any existing message; let the +minibuffer contents show. */ + (nargs, args)) int nargs; Lisp_Object *args; { @@ -2955,14 +2952,14 @@ } DEFUN ("message-box", Fmessage_box, Smessage_box, 1, MANY, 0, - "Display a message, in a dialog box if possible.\n\ -If a dialog box is not available, use the echo area.\n\ -The first argument is a format control string, and the rest are data\n\ -to be formatted under control of the string. See `format' for details.\n\ -\n\ -If the first argument is nil, clear any existing message; let the\n\ -minibuffer contents show.") - (nargs, args) + /* Display a message, in a dialog box if possible. +If a dialog box is not available, use the echo area. +The first argument is a format control string, and the rest are data +to be formatted under control of the string. See `format' for details. + +If the first argument is nil, clear any existing message; let the +minibuffer contents show. */ + (nargs, args)) int nargs; Lisp_Object *args; { @@ -3013,16 +3010,16 @@ #endif DEFUN ("message-or-box", Fmessage_or_box, Smessage_or_box, 1, MANY, 0, - "Display a message in a dialog box or in the echo area.\n\ -If this command was invoked with the mouse, use a dialog box if\n\ -`use-dialog-box' is non-nil.\n\ -Otherwise, use the echo area.\n\ -The first argument is a format control string, and the rest are data\n\ -to be formatted under control of the string. See `format' for details.\n\ -\n\ -If the first argument is nil, clear any existing message; let the\n\ -minibuffer contents show.") - (nargs, args) + /* Display a message in a dialog box or in the echo area. +If this command was invoked with the mouse, use a dialog box if +`use-dialog-box' is non-nil. +Otherwise, use the echo area. +The first argument is a format control string, and the rest are data +to be formatted under control of the string. See `format' for details. + +If the first argument is nil, clear any existing message; let the +minibuffer contents show. */ + (nargs, args)) int nargs; Lisp_Object *args; { @@ -3035,19 +3032,19 @@ } DEFUN ("current-message", Fcurrent_message, Scurrent_message, 0, 0, 0, - "Return the string currently displayed in the echo area, or nil if none.") - () + /* Return the string currently displayed in the echo area, or nil if none. */ + ()) { return current_message (); } DEFUN ("propertize", Fpropertize, Spropertize, 3, MANY, 0, - "Return a copy of STRING with text properties added.\n\ -First argument is the string to copy.\n\ -Remaining arguments form a sequence of PROPERTY VALUE pairs for text\n\ -properties to add to the result ") - (nargs, args) + /* Return a copy of STRING with text properties added. +First argument is the string to copy. +Remaining arguments form a sequence of PROPERTY VALUE pairs for text +properties to add to the result. */ + (nargs, args)) int nargs; Lisp_Object *args; { @@ -3089,22 +3086,22 @@ : STRING_BYTES (XSTRING (STRING))) DEFUN ("format", Fformat, Sformat, 1, MANY, 0, - "Format a string out of a control-string and arguments.\n\ -The first argument is a control string.\n\ -The other arguments are substituted into it to make the result, a string.\n\ -It may contain %-sequences meaning to substitute the next argument.\n\ -%s means print a string argument. Actually, prints any object, with `princ'.\n\ -%d means print as number in decimal (%o octal, %x hex).\n\ -%X is like %x, but uses upper case.\n\ -%e means print a number in exponential notation.\n\ -%f means print a number in decimal-point notation.\n\ -%g means print a number in exponential notation\n\ - or decimal-point notation, whichever uses fewer characters.\n\ -%c means print a number as a single character.\n\ -%S means print any object as an s-expression (using `prin1').\n\ - The argument used for %d, %o, %x, %e, %f, %g or %c must be a number.\n\ -Use %% to put a single % into the output.") - (nargs, args) + /* Format a string out of a control-string and arguments. +The first argument is a control string. +The other arguments are substituted into it to make the result, a string. +It may contain %-sequences meaning to substitute the next argument. +%s means print a string argument. Actually, prints any object, with `princ'. +%d means print as number in decimal (%o octal, %x hex). +%X is like %x, but uses upper case. +%e means print a number in exponential notation. +%f means print a number in decimal-point notation. +%g means print a number in exponential notation + or decimal-point notation, whichever uses fewer characters. +%c means print a number as a single character. +%S means print any object as an s-expression (using `prin1'). + The argument used for %d, %o, %x, %e, %f, %g or %c must be a number. +Use %% to put a single % into the output. */ + (nargs, args)) int nargs; register Lisp_Object *args; { @@ -3528,10 +3525,10 @@ } DEFUN ("char-equal", Fchar_equal, Schar_equal, 2, 2, 0, - "Return t if two characters match, optionally ignoring case.\n\ -Both arguments must be characters (i.e. integers).\n\ -Case is ignored if `case-fold-search' is non-nil in the current buffer.") - (c1, c2) + /* Return t if two characters match, optionally ignoring case. +Both arguments must be characters (i.e. integers). +Case is ignored if `case-fold-search' is non-nil in the current buffer. */ + (c1, c2)) register Lisp_Object c1, c2; { int i1, i2; @@ -3637,15 +3634,15 @@ } DEFUN ("transpose-regions", Ftranspose_regions, Stranspose_regions, 4, 5, 0, - "Transpose region START1 to END1 with START2 to END2.\n\ -The regions may not be overlapping, because the size of the buffer is\n\ -never changed in a transposition.\n\ -\n\ -Optional fifth arg LEAVE_MARKERS, if non-nil, means don't update\n\ -any markers that happen to be located in the regions.\n\ -\n\ -Transposing beyond buffer boundaries is an error.") - (startr1, endr1, startr2, endr2, leave_markers) + /* Transpose region START1 to END1 with START2 to END2. +The regions may not be overlapping, because the size of the buffer is +never changed in a transposition. + +Optional fifth arg LEAVE_MARKERS, if non-nil, means don't update +any markers that happen to be located in the regions. + +Transposing beyond buffer boundaries is an error. */ + (startr1, endr1, startr2, endr2, leave_markers)) Lisp_Object startr1, endr1, startr2, endr2, leave_markers; { register int start1, end1, start2, end2; @@ -3935,15 +3932,15 @@ = intern ("buffer-access-fontify-functions"); staticpro (&Qbuffer_access_fontify_functions); - DEFVAR_LISP ("inhibit-field-text-motion", &Vinhibit_field_text_motion, - "Non-nil means.text motion commands don't notice fields."); + DEFVAR_LISP ("inhibit-field-text-motion", &Vinhibit_field_text_motion + /* Non-nil means.text motion commands don't notice fields. */); Vinhibit_field_text_motion = Qnil; DEFVAR_LISP ("buffer-access-fontify-functions", - &Vbuffer_access_fontify_functions, - "List of functions called by `buffer-substring' to fontify if necessary.\n\ -Each function is called with two arguments which specify the range\n\ -of the buffer being accessed."); + &Vbuffer_access_fontify_functions + /* List of functions called by `buffer-substring' to fontify if necessary. +Each function is called with two arguments which specify the range +of the buffer being accessed. */); Vbuffer_access_fontify_functions = Qnil; { @@ -3959,23 +3956,23 @@ } DEFVAR_LISP ("buffer-access-fontified-property", - &Vbuffer_access_fontified_property, - "Property which (if non-nil) indicates text has been fontified.\n\ -`buffer-substring' need not call the `buffer-access-fontify-functions'\n\ -functions if all the text being accessed has this property."); + &Vbuffer_access_fontified_property + /* Property which (if non-nil) indicates text has been fontified. +`buffer-substring' need not call the `buffer-access-fontify-functions' +functions if all the text being accessed has this property. */); Vbuffer_access_fontified_property = Qnil; - DEFVAR_LISP ("system-name", &Vsystem_name, - "The name of the machine Emacs is running on."); - - DEFVAR_LISP ("user-full-name", &Vuser_full_name, - "The full name of the user logged in."); - - DEFVAR_LISP ("user-login-name", &Vuser_login_name, - "The user's name, taken from environment variables if possible."); - - DEFVAR_LISP ("user-real-login-name", &Vuser_real_login_name, - "The user's name, based upon the real uid only."); + DEFVAR_LISP ("system-name", &Vsystem_name + /* The name of the machine Emacs is running on. */); + + DEFVAR_LISP ("user-full-name", &Vuser_full_name + /* The full name of the user logged in. */); + + DEFVAR_LISP ("user-login-name", &Vuser_login_name + /* The user's name, taken from environment variables if possible. */); + + DEFVAR_LISP ("user-real-login-name", &Vuser_real_login_name + /* The user's name, based upon the real uid only. */); defsubr (&Spropertize); defsubr (&Schar_equal); diff -r 46d26a4374ca -r 1c2d486200f3 src/minibuf.c --- a/src/minibuf.c Mon Oct 15 14:55:28 2001 +0000 +++ b/src/minibuf.c Mon Oct 15 15:04:22 2001 +0000 @@ -22,6 +22,7 @@ #include #include +#define DOC_STRINGS_IN_COMMENTS #include "lisp.h" #include "commands.h" #include "buffer.h" @@ -192,10 +193,10 @@ DEFUN ("set-minibuffer-window", Fset_minibuffer_window, Sset_minibuffer_window, 1, 1, 0, - "Specify which minibuffer window to use for the minibuffer.\n\ -This effects where the minibuffer is displayed if you put text in it\n\ -without invoking the usual minibuffer commands.") - (window) + /* Specify which minibuffer window to use for the minibuffer. +This effects where the minibuffer is displayed if you put text in it +without invoking the usual minibuffer commands. */ + (window)) Lisp_Object window; { CHECK_WINDOW (window, 1); @@ -325,9 +326,9 @@ DEFUN ("minibuffer-prompt-end", Fminibuffer_prompt_end, Sminibuffer_prompt_end, 0, 0, 0, - "Return the buffer position of the end of the minibuffer prompt.\n\ -Return (point-min) if current buffer is not a mini-buffer.") - () + /* Return the buffer position of the end of the minibuffer prompt. +Return (point-min) if current buffer is not a mini-buffer. */ + ()) { /* This function is written to be most efficient when there's a prompt. */ Lisp_Object beg = make_number (BEGV); @@ -341,9 +342,9 @@ DEFUN ("minibuffer-contents", Fminibuffer_contents, Sminibuffer_contents, 0, 0, 0, - "Return the user input in a minbuffer as a string.\n\ -The current buffer must be a minibuffer.") - () + /* Return the user input in a minbuffer as a string. +The current buffer must be a minibuffer. */ + ()) { int prompt_end = XINT (Fminibuffer_prompt_end ()); return make_buffer_string (prompt_end, ZV, 1); @@ -351,9 +352,9 @@ DEFUN ("minibuffer-contents-no-properties", Fminibuffer_contents_no_properties, Sminibuffer_contents_no_properties, 0, 0, 0, - "Return the user input in a minbuffer as a string, without text-properties.\n\ -The current buffer must be a minibuffer.") - () + /* Return the user input in a minbuffer as a string, without text-properties. +The current buffer must be a minibuffer. */ + ()) { int prompt_end = XINT (Fminibuffer_prompt_end ()); return make_buffer_string (prompt_end, ZV, 0); @@ -361,9 +362,9 @@ DEFUN ("delete-minibuffer-contents", Fdelete_minibuffer_contents, Sdelete_minibuffer_contents, 0, 0, 0, - "Delete all user input in a minibuffer.\n\ -The current buffer must be a minibuffer.") - () + /* Delete all user input in a minibuffer. +The current buffer must be a minibuffer. */ + ()) { int prompt_end = XINT (Fminibuffer_prompt_end ()); if (prompt_end < ZV) @@ -845,8 +846,33 @@ */ DEFUN ("read-from-minibuffer", Fread_from_minibuffer, Sread_from_minibuffer, 1, 7, 0, - 0 /* See immediately above */) - (prompt, initial_contents, keymap, read, hist, default_value, inherit_input_method) + /* Read a string from the minibuffer, prompting with string PROMPT. +If optional second arg INITIAL-CONTENTS is non-nil, it is a string + to be inserted into the minibuffer before reading input. + If INITIAL-CONTENTS is (STRING . POSITION), the initial input + is STRING, but point is placed at position POSITION in the minibuffer. +Third arg KEYMAP is a keymap to use whilst reading; + if omitted or nil, the default is `minibuffer-local-map'. +If fourth arg READ is non-nil, then interpret the result as a lisp object + and return that object: + in other words, do `(car (read-from-string INPUT-STRING))' +Fifth arg HIST, if non-nil, specifies a history list + and optionally the initial position in the list. + It can be a symbol, which is the history list variable to use, + or it can be a cons cell (HISTVAR . HISTPOS). + In that case, HISTVAR is the history list variable to use, + and HISTPOS is the initial position (the position in the list + which INITIAL-CONTENTS corresponds to). + Positions are counted starting from 1 at the beginning of the list. +Sixth arg DEFAULT-VALUE is the default value. If non-nil, it is available + for history commands; but `read-from-minibuffer' does NOT return DEFAULT-VALUE + if the user enters empty input! It returns the empty string. +Seventh arg INHERIT-INPUT-METHOD, if non-nil, means the minibuffer inherits + the current input method and the setting of enable-multibyte-characters. +If the variable `minibuffer-allow-text-properties' is non-nil, + then the string which is returned includes whatever text properties + were present in the minibuffer. Otherwise the value has no text properties. */ + (prompt, initial_contents, keymap, read, hist, default_value, inherit_input_method)) Lisp_Object prompt, initial_contents, keymap, read, hist, default_value; Lisp_Object inherit_input_method; { @@ -908,10 +934,10 @@ } DEFUN ("read-minibuffer", Fread_minibuffer, Sread_minibuffer, 1, 2, 0, - "Return a Lisp object read using the minibuffer.\n\ -Prompt with PROMPT. If non-nil, optional second arg INITIAL-CONTENTS\n\ -is a string to insert in the minibuffer before reading.") - (prompt, initial_contents) + /* Return a Lisp object read using the minibuffer. +Prompt with PROMPT. If non-nil, optional second arg INITIAL-CONTENTS +is a string to insert in the minibuffer before reading. */ + (prompt, initial_contents)) Lisp_Object prompt, initial_contents; { CHECK_STRING (prompt, 0); @@ -923,10 +949,10 @@ } DEFUN ("eval-minibuffer", Feval_minibuffer, Seval_minibuffer, 1, 2, 0, - "Return value of Lisp expression read using the minibuffer.\n\ -Prompt with PROMPT. If non-nil, optional second arg INITIAL-CONTENTS\n\ -is a string to insert in the minibuffer before reading.") - (prompt, initial_contents) + /* Return value of Lisp expression read using the minibuffer. +Prompt with PROMPT. If non-nil, optional second arg INITIAL-CONTENTS +is a string to insert in the minibuffer before reading. */ + (prompt, initial_contents)) Lisp_Object prompt, initial_contents; { return Feval (Fread_minibuffer (prompt, initial_contents)); @@ -935,17 +961,17 @@ /* Functions that use the minibuffer to read various things. */ DEFUN ("read-string", Fread_string, Sread_string, 1, 5, 0, - "Read a string from the minibuffer, prompting with string PROMPT.\n\ -If non-nil, second arg INITIAL-INPUT is a string to insert before reading.\n\ -The third arg HISTORY, if non-nil, specifies a history list\n\ - and optionally the initial position in the list.\n\ -See `read-from-minibuffer' for details of HISTORY argument.\n\ -Fourth arg DEFAULT-VALUE is the default value. If non-nil, it is used\n\ - for history commands, and as the value to return if the user enters\n\ - the empty string.\n\ -Fifth arg INHERIT-INPUT-METHOD, if non-nil, means the minibuffer inherits\n\ - the current input method and the setting of enable-multibyte-characters.") - (prompt, initial_input, history, default_value, inherit_input_method) + /* Read a string from the minibuffer, prompting with string PROMPT. +If non-nil, second arg INITIAL-INPUT is a string to insert before reading. +The third arg HISTORY, if non-nil, specifies a history list + and optionally the initial position in the list. +See `read-from-minibuffer' for details of HISTORY argument. +Fourth arg DEFAULT-VALUE is the default value. If non-nil, it is used + for history commands, and as the value to return if the user enters + the empty string. +Fifth arg INHERIT-INPUT-METHOD, if non-nil, means the minibuffer inherits + the current input method and the setting of enable-multibyte-characters. */ + (prompt, initial_input, history, default_value, inherit_input_method)) Lisp_Object prompt, initial_input, history, default_value; Lisp_Object inherit_input_method; { @@ -959,11 +985,11 @@ } DEFUN ("read-no-blanks-input", Fread_no_blanks_input, Sread_no_blanks_input, 1, 3, 0, - "Read a string from the terminal, not allowing blanks.\n\ -Prompt with PROMPT, and provide INITIAL as an initial value of the input string.\n\ -Third arg INHERIT-INPUT-METHOD, if non-nil, means the minibuffer inherits\n\ -the current input method and the setting of enable-multibyte-characters.") - (prompt, initial, inherit_input_method) + /* Read a string from the terminal, not allowing blanks. +Prompt with PROMPT, and provide INITIAL as an initial value of the input string. +Third arg INHERIT-INPUT-METHOD, if non-nil, means the minibuffer inherits +the current input method and the setting of enable-multibyte-characters. */ + (prompt, initial, inherit_input_method)) Lisp_Object prompt, initial, inherit_input_method; { CHECK_STRING (prompt, 0); @@ -976,9 +1002,9 @@ } DEFUN ("read-command", Fread_command, Sread_command, 1, 2, 0, - "Read the name of a command and return as a symbol.\n\ -Prompts with PROMPT. By default, return DEFAULT-VALUE.") - (prompt, default_value) + /* Read the name of a command and return as a symbol. +Prompts with PROMPT. By default, return DEFAULT-VALUE. */ + (prompt, default_value)) Lisp_Object prompt, default_value; { Lisp_Object name, default_string; @@ -999,9 +1025,9 @@ #ifdef NOTDEF DEFUN ("read-function", Fread_function, Sread_function, 1, 1, 0, - "One arg PROMPT, a string. Read the name of a function and return as a symbol.\n\ -Prompts with PROMPT.") - (prompt) + /* One arg PROMPT, a string. Read the name of a function and return as a symbol. +Prompts with PROMPT. */ + (prompt)) Lisp_Object prompt; { return Fintern (Fcompleting_read (prompt, Vobarray, Qfboundp, Qt, Qnil, Qnil, Qnil, Qnil), @@ -1010,10 +1036,10 @@ #endif /* NOTDEF */ DEFUN ("read-variable", Fread_variable, Sread_variable, 1, 2, 0, - "Read the name of a user variable and return it as a symbol.\n\ -Prompts with PROMPT. By default, return DEFAULT-VALUE.\n\ -A user variable is one whose documentation starts with a `*' character.") - (prompt, default_value) + /* Read the name of a user variable and return it as a symbol. +Prompts with PROMPT. By default, return DEFAULT-VALUE. +A user variable is one whose documentation starts with a `*' character. */ + (prompt, default_value)) Lisp_Object prompt, default_value; { Lisp_Object name, default_string; @@ -1034,11 +1060,11 @@ } DEFUN ("read-buffer", Fread_buffer, Sread_buffer, 1, 3, 0, - "One arg PROMPT, a string. Read the name of a buffer and return as a string.\n\ -Prompts with PROMPT.\n\ -Optional second arg DEF is value to return if user enters an empty line.\n\ -If optional third arg REQUIRE-MATCH is non-nil, only existing buffer names are allowed.") - (prompt, def, require_match) + /* One arg PROMPT, a string. Read the name of a buffer and return as a string. +Prompts with PROMPT. +Optional second arg DEF is value to return if user enters an empty line. +If optional third arg REQUIRE-MATCH is non-nil, only existing buffer names are allowed. */ + (prompt, def, require_match)) Lisp_Object prompt, def, require_match; { Lisp_Object args[4]; @@ -1084,28 +1110,28 @@ } DEFUN ("try-completion", Ftry_completion, Stry_completion, 2, 3, 0, - "Return common substring of all completions of STRING in ALIST.\n\ -Each car of each element of ALIST is tested to see if it begins with STRING.\n\ -All that match are compared together; the longest initial sequence\n\ -common to all matches is returned as a string.\n\ -If there is no match at all, nil is returned.\n\ -For a unique match which is exact, t is returned.\n\ -\n\ -ALIST can be an obarray instead of an alist.\n\ -Then the print names of all symbols in the obarray are the possible matches.\n\ -\n\ -ALIST can also be a function to do the completion itself.\n\ -It receives three arguments: the values STRING, PREDICATE and nil.\n\ -Whatever it returns becomes the value of `try-completion'.\n\ -\n\ -If optional third argument PREDICATE is non-nil,\n\ -it is used to test each possible match.\n\ -The match is a candidate only if PREDICATE returns non-nil.\n\ -The argument given to PREDICATE is the alist element\n\ -or the symbol from the obarray.\n\ -Additionally to this predicate, `completion-regexp-list'\n\ -is used to further constrain the set of candidates.") - (string, alist, predicate) + /* Return common substring of all completions of STRING in ALIST. +Each car of each element of ALIST is tested to see if it begins with STRING. +All that match are compared together; the longest initial sequence +common to all matches is returned as a string. +If there is no match at all, nil is returned. +For a unique match which is exact, t is returned. + +ALIST can be an obarray instead of an alist. +Then the print names of all symbols in the obarray are the possible matches. + +ALIST can also be a function to do the completion itself. +It receives three arguments: the values STRING, PREDICATE and nil. +Whatever it returns becomes the value of `try-completion'. + +If optional third argument PREDICATE is non-nil, +it is used to test each possible match. +The match is a candidate only if PREDICATE returns non-nil. +The argument given to PREDICATE is the alist element +or the symbol from the obarray. +Additionally to this predicate, `completion-regexp-list' +is used to further constrain the set of candidates. */ + (string, alist, predicate)) Lisp_Object string, alist, predicate; { Lisp_Object bestmatch, tail, elt, eltstring; @@ -1335,29 +1361,29 @@ } DEFUN ("all-completions", Fall_completions, Sall_completions, 2, 4, 0, - "Search for partial matches to STRING in ALIST.\n\ -Each car of each element of ALIST is tested to see if it begins with STRING.\n\ -The value is a list of all the strings from ALIST that match.\n\ -\n\ -ALIST can be an obarray instead of an alist.\n\ -Then the print names of all symbols in the obarray are the possible matches.\n\ -\n\ -ALIST can also be a function to do the completion itself.\n\ -It receives three arguments: the values STRING, PREDICATE and t.\n\ -Whatever it returns becomes the value of `all-completions'.\n\ -\n\ -If optional third argument PREDICATE is non-nil,\n\ -it is used to test each possible match.\n\ -The match is a candidate only if PREDICATE returns non-nil.\n\ -The argument given to PREDICATE is the alist element\n\ -or the symbol from the obarray.\n\ -Additionally to this predicate, `completion-regexp-list'\n\ -is used to further constrain the set of candidates.\n\ -\n\ -If the optional fourth argument HIDE-SPACES is non-nil,\n\ -strings in ALIST that start with a space\n\ -are ignored unless STRING itself starts with a space.") - (string, alist, predicate, hide_spaces) + /* Search for partial matches to STRING in ALIST. +Each car of each element of ALIST is tested to see if it begins with STRING. +The value is a list of all the strings from ALIST that match. + +ALIST can be an obarray instead of an alist. +Then the print names of all symbols in the obarray are the possible matches. + +ALIST can also be a function to do the completion itself. +It receives three arguments: the values STRING, PREDICATE and t. +Whatever it returns becomes the value of `all-completions'. + +If optional third argument PREDICATE is non-nil, +it is used to test each possible match. +The match is a candidate only if PREDICATE returns non-nil. +The argument given to PREDICATE is the alist element +or the symbol from the obarray. +Additionally to this predicate, `completion-regexp-list' +is used to further constrain the set of candidates. + +If the optional fourth argument HIDE-SPACES is non-nil, +strings in ALIST that start with a space +are ignored unless STRING itself starts with a space. */ + (string, alist, predicate, hide_spaces)) Lisp_Object string, alist, predicate, hide_spaces; { Lisp_Object tail, elt, eltstring; @@ -1479,48 +1505,41 @@ Lisp_Object Vminibuffer_completion_confirm, Qminibuffer_completion_confirm; Lisp_Object Vminibuffer_completing_file_name; -/* This comment supplies the doc string for completing-read, - for make-docfile to see. We cannot put this in the real DEFUN - due to limits in the Unix cpp. +DEFUN ("completing-read", Fcompleting_read, Scompleting_read, 2, 8, 0, + /* Read a string in the minibuffer, with completion. +PROMPT is a string to prompt with; normally it ends in a colon and a space. +TABLE is an alist whose elements' cars are strings, or an obarray. +TABLE can also be a function to do the completion itself. +PREDICATE limits completion to a subset of TABLE. +See `try-completion' and `all-completions' for more details + on completion, TABLE, and PREDICATE. + +If REQUIRE-MATCH is non-nil, the user is not allowed to exit unless + the input is (or completes to) an element of TABLE or is null. + If it is also not t, Return does not exit if it does non-null completion. +If the input is null, `completing-read' returns an empty string, + regardless of the value of REQUIRE-MATCH. -DEFUN ("completing-read", Fcompleting_read, Scompleting_read, 2, 8, 0, - "Read a string in the minibuffer, with completion.\n\ -PROMPT is a string to prompt with; normally it ends in a colon and a space.\n\ -TABLE is an alist whose elements' cars are strings, or an obarray.\n\ -TABLE can also be a function to do the completion itself.\n\ -PREDICATE limits completion to a subset of TABLE.\n\ -See `try-completion' and `all-completions' for more details\n\ - on completion, TABLE, and PREDICATE.\n\ -\n\ -If REQUIRE-MATCH is non-nil, the user is not allowed to exit unless\n\ - the input is (or completes to) an element of TABLE or is null.\n\ - If it is also not t, Return does not exit if it does non-null completion.\n\ -If the input is null, `completing-read' returns an empty string,\n\ - regardless of the value of REQUIRE-MATCH.\n\ -\n\ -If INITIAL-INPUT is non-nil, insert it in the minibuffer initially.\n\ - If it is (STRING . POSITION), the initial input\n\ - is STRING, but point is placed POSITION characters into the string.\n\ - This feature is deprecated--it is best to pass nil for INITIAL.\n\ -HIST, if non-nil, specifies a history list\n\ - and optionally the initial position in the list.\n\ - It can be a symbol, which is the history list variable to use,\n\ - or it can be a cons cell (HISTVAR . HISTPOS).\n\ - In that case, HISTVAR is the history list variable to use,\n\ - and HISTPOS is the initial position (the position in the list\n\ - which INITIAL-INPUT corresponds to).\n\ - Positions are counted starting from 1 at the beginning of the list.\n\ -DEF, if non-nil, is the default value.\n\ -\n\ -If INHERIT-INPUT-METHOD is non-nil, the minibuffer inherits\n\ - the current input method and the setting of enable-multibyte-characters.\n\ -\n\ -Completion ignores case if the ambient value of\n\ - `completion-ignore-case' is non-nil." -*/ -DEFUN ("completing-read", Fcompleting_read, Scompleting_read, 2, 8, 0, - 0 /* See immediately above */) - (prompt, table, predicate, require_match, initial_input, hist, def, inherit_input_method) +If INITIAL-INPUT is non-nil, insert it in the minibuffer initially. + If it is (STRING . POSITION), the initial input + is STRING, but point is placed POSITION characters into the string. + This feature is deprecated--it is best to pass nil for INITIAL. +HIST, if non-nil, specifies a history list + and optionally the initial position in the list. + It can be a symbol, which is the history list variable to use, + or it can be a cons cell (HISTVAR . HISTPOS). + In that case, HISTVAR is the history list variable to use, + and HISTPOS is the initial position (the position in the list + which INITIAL-INPUT corresponds to). + Positions are counted starting from 1 at the beginning of the list. +DEF, if non-nil, is the default value. + +If INHERIT-INPUT-METHOD is non-nil, the minibuffer inherits + the current input method and the setting of enable-multibyte-characters. + +Completion ignores case if the ambient value of + `completion-ignore-case' is non-nil. */ + (prompt, table, predicate, require_match, initial_input, hist, def, inherit_input_method)) Lisp_Object prompt, table, predicate, require_match, initial_input; Lisp_Object hist, def, inherit_input_method; { @@ -1755,12 +1774,12 @@ } DEFUN ("minibuffer-complete", Fminibuffer_complete, Sminibuffer_complete, 0, 0, "", - "Complete the minibuffer contents as far as possible.\n\ -Return nil if there is no valid completion, else t.\n\ -If no characters can be completed, display a list of possible completions.\n\ -If you repeat this command after it displayed such a list,\n\ -scroll the window of possible completions.") - () + /* Complete the minibuffer contents as far as possible. +Return nil if there is no valid completion, else t. +If no characters can be completed, display a list of possible completions. +If you repeat this command after it displayed such a list, +scroll the window of possible completions. */ + ()) { register int i; Lisp_Object window, tem; @@ -1835,10 +1854,10 @@ DEFUN ("minibuffer-complete-and-exit", Fminibuffer_complete_and_exit, Sminibuffer_complete_and_exit, 0, 0, "", - "If the minibuffer contents is a valid completion then exit.\n\ -Otherwise try to complete it. If completion leads to a valid completion,\n\ -a repetition of this command will exit.") - () + /* If the minibuffer contents is a valid completion then exit. +Otherwise try to complete it. If completion leads to a valid completion, +a repetition of this command will exit. */ + ()) { register int i; Lisp_Object val; @@ -1880,11 +1899,11 @@ DEFUN ("minibuffer-complete-word", Fminibuffer_complete_word, Sminibuffer_complete_word, 0, 0, "", - "Complete the minibuffer contents at most a single word.\n\ -After one word is completed as much as possible, a space or hyphen\n\ -is added, provided that matches some possible completion.\n\ -Return nil if there is no valid completion, else t.") - () + /* Complete the minibuffer contents at most a single word. +After one word is completed as much as possible, a space or hyphen +is added, provided that matches some possible completion. +Return nil if there is no valid completion, else t. */ + ()) { Lisp_Object completion, tem, tem1; register int i, i_byte; @@ -2053,15 +2072,15 @@ DEFUN ("display-completion-list", Fdisplay_completion_list, Sdisplay_completion_list, 1, 1, 0, - "Display the list of completions, COMPLETIONS, using `standard-output'.\n\ -Each element may be just a symbol or string\n\ -or may be a list of two strings to be printed as if concatenated.\n\ -`standard-output' must be a buffer.\n\ -The actual completion alternatives, as inserted, are given `mouse-face'\n\ -properties of `highlight'.\n\ -At the end, this runs the normal hook `completion-setup-hook'.\n\ -It can find the completion buffer in `standard-output'.") - (completions) + /* Display the list of completions, COMPLETIONS, using `standard-output'. +Each element may be just a symbol or string +or may be a list of two strings to be printed as if concatenated. +`standard-output' must be a buffer. +The actual completion alternatives, as inserted, are given `mouse-face' +properties of `highlight'. +At the end, this runs the normal hook `completion-setup-hook'. +It can find the completion buffer in `standard-output'. */ + (completions)) Lisp_Object completions; { Lisp_Object tail, elt; @@ -2236,8 +2255,8 @@ DEFUN ("minibuffer-completion-help", Fminibuffer_completion_help, Sminibuffer_completion_help, 0, 0, "", - "Display a list of possible completions of the current minibuffer contents.") - () + /* Display a list of possible completions of the current minibuffer contents. */ + ()) { Lisp_Object completions; @@ -2261,8 +2280,8 @@ } DEFUN ("self-insert-and-exit", Fself_insert_and_exit, Sself_insert_and_exit, 0, 0, "", - "Terminate minibuffer input.") - () + /* Terminate minibuffer input. */ + ()) { if (INTEGERP (last_command_char)) internal_self_insert (XINT (last_command_char), 0); @@ -2273,23 +2292,23 @@ } DEFUN ("exit-minibuffer", Fexit_minibuffer, Sexit_minibuffer, 0, 0, "", - "Terminate this minibuffer argument.") - () + /* Terminate this minibuffer argument. */ + ()) { return Fthrow (Qexit, Qnil); } DEFUN ("minibuffer-depth", Fminibuffer_depth, Sminibuffer_depth, 0, 0, 0, - "Return current depth of activations of minibuffer, a nonnegative integer.") - () + /* Return current depth of activations of minibuffer, a nonnegative integer. */ + ()) { return make_number (minibuf_level); } DEFUN ("minibuffer-prompt", Fminibuffer_prompt, Sminibuffer_prompt, 0, 0, 0, - "Return the prompt string of the currently-active minibuffer.\n\ -If no minibuffer is active, return nil.") - () + /* Return the prompt string of the currently-active minibuffer. +If no minibuffer is active, return nil. */ + ()) { return Fcopy_sequence (minibuf_prompt); } @@ -2332,10 +2351,10 @@ DEFUN ("minibuffer-message", Fminibuffer_message, Sminibuffer_message, 1, 1, 0, - "Temporarily display STRING at the end of the minibuffer.\n\ -The text is displayed for two seconds,\n\ -or until the next input event arrives, whichever comes first.") - (string) + /* Temporarily display STRING at the end of the minibuffer. +The text is displayed for two seconds, +or until the next input event arrives, whichever comes first. */ + (string)) Lisp_Object string; { temp_echo_area_glyphs (XSTRING (string)->data); @@ -2406,102 +2425,102 @@ Qactivate_input_method = intern ("activate-input-method"); staticpro (&Qactivate_input_method); - DEFVAR_LISP ("read-buffer-function", &Vread_buffer_function, - "If this is non-nil, `read-buffer' does its work by calling this function."); + DEFVAR_LISP ("read-buffer-function", &Vread_buffer_function + /* If this is non-nil, `read-buffer' does its work by calling this function. */); Vread_buffer_function = Qnil; - DEFVAR_LISP ("minibuffer-setup-hook", &Vminibuffer_setup_hook, - "Normal hook run just after entry to minibuffer."); + DEFVAR_LISP ("minibuffer-setup-hook", &Vminibuffer_setup_hook + /* Normal hook run just after entry to minibuffer. */); Vminibuffer_setup_hook = Qnil; - DEFVAR_LISP ("minibuffer-exit-hook", &Vminibuffer_exit_hook, - "Normal hook run just after exit from minibuffer."); + DEFVAR_LISP ("minibuffer-exit-hook", &Vminibuffer_exit_hook + /* Normal hook run just after exit from minibuffer. */); Vminibuffer_exit_hook = Qnil; - DEFVAR_LISP ("history-length", &Vhistory_length, - "*Maximum length for history lists before truncation takes place.\n\ -A number means that length; t means infinite. Truncation takes place\n\ -just after a new element is inserted. Setting the history-length\n\ -property of a history variable overrides this default."); + DEFVAR_LISP ("history-length", &Vhistory_length + /* *Maximum length for history lists before truncation takes place. +A number means that length; t means infinite. Truncation takes place +just after a new element is inserted. Setting the history-length +property of a history variable overrides this default. */); XSETFASTINT (Vhistory_length, 30); - DEFVAR_LISP ("completion-auto-help", &Vcompletion_auto_help, - "*Non-nil means automatically provide help for invalid completion input."); + DEFVAR_LISP ("completion-auto-help", &Vcompletion_auto_help + /* *Non-nil means automatically provide help for invalid completion input. */); Vcompletion_auto_help = Qt; - DEFVAR_BOOL ("completion-ignore-case", &completion_ignore_case, - "Non-nil means don't consider case significant in completion."); + DEFVAR_BOOL ("completion-ignore-case", &completion_ignore_case + /* Non-nil means don't consider case significant in completion. */); completion_ignore_case = 0; - DEFVAR_BOOL ("enable-recursive-minibuffers", &enable_recursive_minibuffers, - "*Non-nil means to allow minibuffer commands while in the minibuffer.\n\ -This variable makes a difference whenever the minibuffer window is active."); + DEFVAR_BOOL ("enable-recursive-minibuffers", &enable_recursive_minibuffers + /* *Non-nil means to allow minibuffer commands while in the minibuffer. +This variable makes a difference whenever the minibuffer window is active. */); enable_recursive_minibuffers = 0; - DEFVAR_LISP ("minibuffer-completion-table", &Vminibuffer_completion_table, - "Alist or obarray used for completion in the minibuffer.\n\ -This becomes the ALIST argument to `try-completion' and `all-completion'.\n\ -\n\ -The value may alternatively be a function, which is given three arguments:\n\ - STRING, the current buffer contents;\n\ - PREDICATE, the predicate for filtering possible matches;\n\ - CODE, which says what kind of things to do.\n\ -CODE can be nil, t or `lambda'.\n\ -nil means to return the best completion of STRING, or nil if there is none.\n\ -t means to return a list of all possible completions of STRING.\n\ -`lambda' means to return t if STRING is a valid completion as it stands."); + DEFVAR_LISP ("minibuffer-completion-table", &Vminibuffer_completion_table + /* Alist or obarray used for completion in the minibuffer. +This becomes the ALIST argument to `try-completion' and `all-completion'. + +The value may alternatively be a function, which is given three arguments: + STRING, the current buffer contents; + PREDICATE, the predicate for filtering possible matches; + CODE, which says what kind of things to do. +CODE can be nil, t or `lambda'. +nil means to return the best completion of STRING, or nil if there is none. +t means to return a list of all possible completions of STRING. +`lambda' means to return t if STRING is a valid completion as it stands. */); Vminibuffer_completion_table = Qnil; - DEFVAR_LISP ("minibuffer-completion-predicate", &Vminibuffer_completion_predicate, - "Within call to `completing-read', this holds the PREDICATE argument."); + DEFVAR_LISP ("minibuffer-completion-predicate", &Vminibuffer_completion_predicate + /* Within call to `completing-read', this holds the PREDICATE argument. */); Vminibuffer_completion_predicate = Qnil; - DEFVAR_LISP ("minibuffer-completion-confirm", &Vminibuffer_completion_confirm, - "Non-nil => demand confirmation of completion before exiting minibuffer."); + DEFVAR_LISP ("minibuffer-completion-confirm", &Vminibuffer_completion_confirm + /* Non-nil => demand confirmation of completion before exiting minibuffer. */); Vminibuffer_completion_confirm = Qnil; DEFVAR_LISP ("minibuffer-completing-file-name", - &Vminibuffer_completing_file_name, - "Non-nil means completing file names."); + &Vminibuffer_completing_file_name + /* Non-nil means completing file names. */); Vminibuffer_completing_file_name = Qnil; - DEFVAR_LISP ("minibuffer-help-form", &Vminibuffer_help_form, - "Value that `help-form' takes on inside the minibuffer."); + DEFVAR_LISP ("minibuffer-help-form", &Vminibuffer_help_form + /* Value that `help-form' takes on inside the minibuffer. */); Vminibuffer_help_form = Qnil; - DEFVAR_LISP ("minibuffer-history-variable", &Vminibuffer_history_variable, - "History list symbol to add minibuffer values to.\n\ -Each string of minibuffer input, as it appears on exit from the minibuffer,\n\ -is added with\n\ - (set minibuffer-history-variable\n\ - (cons STRING (symbol-value minibuffer-history-variable)))"); + DEFVAR_LISP ("minibuffer-history-variable", &Vminibuffer_history_variable + /* History list symbol to add minibuffer values to. +Each string of minibuffer input, as it appears on exit from the minibuffer, +is added with + (set minibuffer-history-variable + (cons STRING (symbol-value minibuffer-history-variable))) */); XSETFASTINT (Vminibuffer_history_variable, 0); - DEFVAR_LISP ("minibuffer-history-position", &Vminibuffer_history_position, - "Current position of redoing in the history list."); + DEFVAR_LISP ("minibuffer-history-position", &Vminibuffer_history_position + /* Current position of redoing in the history list. */); Vminibuffer_history_position = Qnil; - DEFVAR_BOOL ("minibuffer-auto-raise", &minibuffer_auto_raise, - "*Non-nil means entering the minibuffer raises the minibuffer's frame.\n\ -Some uses of the echo area also raise that frame (since they use it too)."); + DEFVAR_BOOL ("minibuffer-auto-raise", &minibuffer_auto_raise + /* *Non-nil means entering the minibuffer raises the minibuffer's frame. +Some uses of the echo area also raise that frame (since they use it too). */); minibuffer_auto_raise = 0; - DEFVAR_LISP ("completion-regexp-list", &Vcompletion_regexp_list, - "List of regexps that should restrict possible completions."); + DEFVAR_LISP ("completion-regexp-list", &Vcompletion_regexp_list + /* List of regexps that should restrict possible completions. */); Vcompletion_regexp_list = Qnil; DEFVAR_BOOL ("minibuffer-allow-text-properties", - &minibuffer_allow_text_properties, - "Non-nil means `read-from-minibuffer' should not discard text properties.\n\ -This also affects `read-string', but it does not affect `read-minibuffer',\n\ -`read-no-blanks-input', or any of the functions that do minibuffer input\n\ -with completion; they always discard text properties."); + &minibuffer_allow_text_properties + /* Non-nil means `read-from-minibuffer' should not discard text properties. +This also affects `read-string', but it does not affect `read-minibuffer', +`read-no-blanks-input', or any of the functions that do minibuffer input +with completion; they always discard text properties. */); minibuffer_allow_text_properties = 0; - DEFVAR_LISP ("minibuffer-prompt-properties", &Vminibuffer_prompt_properties, - "Text properties that are added to minibuffer prompts.\n\ -These are in addition to the basic `field' property, and stickiness\n\ -properties."); + DEFVAR_LISP ("minibuffer-prompt-properties", &Vminibuffer_prompt_properties + /* Text properties that are added to minibuffer prompts. +These are in addition to the basic `field' property, and stickiness +properties. */); /* We use `intern' here instead of Qread_only to avoid initialization-order problems. */ Vminibuffer_prompt_properties