given to `read-buffer' should end with a colon and a space.
Update usage examples.
+2005-09-30 Romain Francoise <romain@orebokech.com>
+
+ * minibuf.texi (High-Level Completion): Explain that the prompt
+ given to `read-buffer' should end with a colon and a space.
+ Update usage examples.
+
2005-09-29 Juri Linkov <juri@jurta.org>
* display.texi (Displaying Messages): Rename argument name
it should be a string or a buffer. It is mentioned in the prompt, but
is not inserted in the minibuffer as initial input.
+The argument @var{prompt} should be a string ending with a colon and a
+space. If @var{default} is non-@code{nil}, the function inserts it in
+@var{prompt} before the colon to follow the convention for reading from
+the minibuffer with a default value (@pxref{Programming Tips}).
+
If @var{existing} is non-@code{nil}, then the name specified must be
that of an existing buffer. The usual commands to exit the minibuffer
do not exit if the text is not valid, and @key{RET} does completion to
@samp{minibuffer.texi}, so that name is the value.
@example
-(read-buffer "Buffer name? " "foo" t)
+(read-buffer "Buffer name: " "foo" t)
@group
;; @r{After evaluation of the preceding expression,}
;; @r{the following prompt appears,}
@group
---------- Buffer: Minibuffer ----------
-Buffer name? (default foo) @point{}
+Buffer name (default foo): @point{}
---------- Buffer: Minibuffer ----------
@end group
+2005-09-30 Romain Francoise <romain@orebokech.com>
+
+ * minibuf.c (Fread_buffer): Follow convention for reading from the
+ minibuffer with a default value. Doc fix.
+
2005-09-29 Juri Linkov <juri@jurta.org>
* editfns.c (Fmessage, Fmessage_box, Fmessage_or_box):
Prompt 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. */)
+ only existing buffer names are allowed.
+The argument PROMPT should be a string ending with a colon and a space. */)
(prompt, def, require_match)
Lisp_Object prompt, def, require_match;
{
Lisp_Object args[4];
+ unsigned char *s;
+ int len;
if (BUFFERP (def))
def = XBUFFER (def)->name;
{
if (!NILP (def))
{
- args[0] = build_string ("%s(default %s) ");
+ /* A default value was provided: we must change PROMPT,
+ editing the default value in before the colon. To achieve
+ this, we replace PROMPT with a substring that doesn't
+ contain the terminal space and colon (if present). They
+ are then added back using Fformat. */
+
+ if (STRINGP (prompt))
+ {
+ s = SDATA (prompt);
+ len = strlen (s);
+ if (len >= 2 && s[len - 2] == ':' && s[len - 1] == ' ')
+ len = len - 2;
+ else if (len >= 1 && (s[len - 1] == ':' || s[len - 1] == ' '))
+ len--;
+
+ prompt = make_specified_string (s, -1, len,
+ STRING_MULTIBYTE (prompt));
+ }
+
+ args[0] = build_string ("%s (default %s): ");
args[1] = prompt;
args[2] = def;
prompt = Fformat (3, args);