-/* This comment supplies the doc string for read-from-minibuffer,
- for make-docfile to see. We cannot put this in the real DEFUN
- due to limits in the Unix cpp.
-
-DEFUN ("read-from-minibuffer", Fread_from_minibuffer, Sread_from_minibuffer, 1, 7, 0,
- "Read a string from the minibuffer, prompting with string PROMPT.\n\
-If optional second arg INITIAL-CONTENTS is non-nil, it is a string\n\
- to be inserted into the minibuffer before reading input.\n\
- If INITIAL-CONTENTS is (STRING . POSITION), the initial input\n\
- is STRING, but point is placed at position POSITION in the minibuffer.\n\
-Third arg KEYMAP is a keymap to use whilst reading;\n\
- if omitted or nil, the default is `minibuffer-local-map'.\n\
-If fourth arg READ is non-nil, then interpret the result as a lisp object\n\
- and return that object:\n\
- in other words, do `(car (read-from-string INPUT-STRING))'\n\
-Fifth arg 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-CONTENTS corresponds to).\n\
- Positions are counted starting from 1 at the beginning of the list.\n\
-Sixth arg DEFAULT-VALUE is the default value. If non-nil, it is available\n\
- for history commands; but `read-from-minibuffer' does NOT return DEFAULT-VALUE\n\
- if the user enters empty input! It returns the empty string.\n\
-Seventh arg INHERIT-INPUT-METHOD, if non-nil, means the minibuffer inherits\n\
- the current input method and the setting of enable-multibyte-characters.\n\
-If the variable `minibuffer-allow-text-properties' is non-nil,\n\
- then the string which is returned includes whatever text properties\n\
- were present in the minibuffer. Otherwise the value has no text properties.")
- (prompt, initial_contents, keymap, read, hist, default_value, inherit_input_method)
- */
-
-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)
+DEFUN ("read-from-minibuffer", Fread_from_minibuffer, Sread_from_minibuffer, 1, 8, 0,
+ doc: /* Read a string from the minibuffer, prompting with string PROMPT.
+The optional second arg INITIAL-CONTENTS is an obsolete alternative to
+ DEFAULT-VALUE. It normally should be nil in new code, except when
+ HIST is a cons. It is discussed in more detail below.
+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 for use by the minibuffer
+ history commands. For consistency, you should also specify that
+ element of the history as the value of INITIAL-CONTENTS. 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, unless READ is non-nil, `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'.
+Eight arg KEEP-ALL, if non-nil, says to put all inputs in the history list,
+ even empty or duplicate inputs.
+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.
+
+The remainder of this documentation string describes the
+INITIAL-CONTENTS argument in more detail. It is only relevant when
+studying existing code, or when HIST is a cons. If non-nil,
+INITIAL-CONTENTS is a string to be inserted into the minibuffer before
+reading input. Normally, point is put at the end of that string.
+However, if INITIAL-CONTENTS is \(STRING . POSITION), the initial
+input is STRING, but point is placed at _one-indexed_ position
+POSITION in the minibuffer. Any integer value less than or equal to
+one puts point at the beginning of the string. *Note* that this
+behavior differs from the way such arguments are used in `completing-read'
+and some related functions, which use zero-indexing for POSITION. */)
+ (prompt, initial_contents, keymap, read, hist, default_value, inherit_input_method, keep_all)