mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-29 00:31:01 -08:00
Allow minibuffer default to be a list of default values.
With empty input use the first element of this list as returned default. (string_to_object): (read_minibuf_noninteractive): If defalt is cons, set val to its car. (read_minibuf): If defalt is cons, set histstring to its car. (Fread_string): If default_value is cons, set val to its car. (Fread_buffer): If def is cons, use its car. (Fcompleting_read): If defalt is cons, set val to its car.
This commit is contained in:
parent
b38fc7f11a
commit
fb30dfd235
2 changed files with 24 additions and 7 deletions
|
|
@ -1,3 +1,14 @@
|
|||
2007-10-22 Juri Linkov <juri@jurta.org>
|
||||
|
||||
* minibuf.c: Allow minibuffer default to be a list of default values.
|
||||
With empty input use the first element of this list as returned default.
|
||||
(string_to_object):
|
||||
(read_minibuf_noninteractive): If defalt is cons, set val to its car.
|
||||
(read_minibuf): If defalt is cons, set histstring to its car.
|
||||
(Fread_string): If default_value is cons, set val to its car.
|
||||
(Fread_buffer): If def is cons, use its car.
|
||||
(Fcompleting_read): If defalt is cons, set val to its car.
|
||||
|
||||
2007-10-21 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* fileio.c (Fcopy_file): Call file name handler with preserve_uid_gid.
|
||||
|
|
|
|||
|
|
@ -257,9 +257,13 @@ string_to_object (val, defalt)
|
|||
|
||||
GCPRO2 (val, defalt);
|
||||
|
||||
if (STRINGP (val) && SCHARS (val) == 0
|
||||
&& STRINGP (defalt))
|
||||
val = defalt;
|
||||
if (STRINGP (val) && SCHARS (val) == 0)
|
||||
{
|
||||
if (STRINGP (defalt))
|
||||
val = defalt;
|
||||
else if (CONSP (defalt) && STRINGP (XCAR (defalt)))
|
||||
val = XCAR (defalt);
|
||||
}
|
||||
|
||||
expr_and_pos = Fread_from_string (val, Qnil, Qnil);
|
||||
pos = XINT (Fcdr (expr_and_pos));
|
||||
|
|
@ -337,7 +341,7 @@ read_minibuf_noninteractive (map, initial, prompt, backup_n, expflag,
|
|||
|
||||
/* If Lisp form desired instead of string, parse it. */
|
||||
if (expflag)
|
||||
val = string_to_object (val, defalt);
|
||||
val = string_to_object (val, CONSP (defalt) ? XCAR (defalt) : defalt);
|
||||
|
||||
return val;
|
||||
}
|
||||
|
|
@ -785,6 +789,8 @@ read_minibuf (map, initial, prompt, backup_n, expflag,
|
|||
histstring = val;
|
||||
else if (STRINGP (defalt))
|
||||
histstring = defalt;
|
||||
else if (CONSP (defalt) && STRINGP (XCAR (defalt)))
|
||||
histstring = XCAR (defalt);
|
||||
else
|
||||
histstring = Qnil;
|
||||
|
||||
|
|
@ -1102,7 +1108,7 @@ Fifth arg INHERIT-INPUT-METHOD, if non-nil, means the minibuffer inherits
|
|||
Qnil, history, default_value,
|
||||
inherit_input_method);
|
||||
if (STRINGP (val) && SCHARS (val) == 0 && ! NILP (default_value))
|
||||
val = default_value;
|
||||
val = CONSP (default_value) ? XCAR (default_value) : default_value;
|
||||
return val;
|
||||
}
|
||||
|
||||
|
|
@ -1225,7 +1231,7 @@ The argument PROMPT should be a string ending with a colon and a space. */)
|
|||
|
||||
args[0] = build_string ("%s (default %s): ");
|
||||
args[1] = prompt;
|
||||
args[2] = def;
|
||||
args[2] = CONSP (def) ? XCAR (def) : def;
|
||||
prompt = Fformat (3, args);
|
||||
}
|
||||
|
||||
|
|
@ -1835,7 +1841,7 @@ Completion ignores case if the ambient value of
|
|||
!NILP (inherit_input_method));
|
||||
|
||||
if (STRINGP (val) && SCHARS (val) == 0 && ! NILP (def))
|
||||
val = def;
|
||||
val = CONSP (def) ? XCAR (def) : def;
|
||||
|
||||
RETURN_UNGCPRO (unbind_to (count, val));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue