(High-Level Completion): Explain that the prompt

given to `read-buffer' should end with a colon and a space.
Update usage examples.
This commit is contained in:
Romain Francoise 2005-09-30 18:30:10 +00:00
parent 42b5e85ecd
commit 97c3e4cc37
4 changed files with 42 additions and 4 deletions

View file

@ -1,3 +1,9 @@
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

View file

@ -1044,6 +1044,11 @@ return if the user exits with an empty minibuffer. If non-@code{nil},
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
@ -1058,7 +1063,7 @@ only buffer name starting with the given input is
@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,}
@ -1067,7 +1072,7 @@ only buffer name starting with the given input is
@group
---------- Buffer: Minibuffer ----------
Buffer name? (default foo) @point{}
Buffer name (default foo): @point{}
---------- Buffer: Minibuffer ----------
@end group

View file

@ -1,3 +1,8 @@
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):

View file

@ -1132,11 +1132,14 @@ DEFUN ("read-buffer", Fread_buffer, Sread_buffer, 1, 3, 0,
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;
@ -1145,7 +1148,26 @@ If optional third arg REQUIRE-MATCH is non-nil,
{
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);