Commit 6206d6c2 authored by Juri Linkov's avatar Juri Linkov
Browse files

(Fcall_interactively): For interactive code letters

'b' and 'B' put the buffer list into the list of default "future"
values of the minibuffer.
parent f564644b
2008-03-16 Juri Linkov <juri@jurta.org>
* callint.c (Fcall_interactively): For interactive code letters
'b' and 'B' put the buffer list into the list of default "future"
values of the minibuffer.
2008-03-16 Andreas Schwab <schwab@suse.de>
* keyboard.c (read_key_sequence): Fix downcasing of letters with
......
......@@ -513,16 +513,35 @@ invoke it. If KEYS is omitted or nil, the return value of
break;
case 'b': /* Name of existing buffer */
args[i] = Fcurrent_buffer ();
if (EQ (selected_window, minibuf_window))
args[i] = Fother_buffer (args[i], Qnil, Qnil);
args[i] = Fread_buffer (callint_message, args[i], Qt);
break;
case 'B': /* Name of buffer, possibly nonexistent */
args[i] = Fread_buffer (callint_message,
Fother_buffer (Fcurrent_buffer (), Qnil, Qnil),
Qnil);
{
Lisp_Object tema, temb, temc;
int skip_current = 1;
if (*tem == 'b' && !EQ (selected_window, minibuf_window))
skip_current = 0;
/* Get a list of buffer names (except the current buffer and
internal buffers), and use this list for default values. */
tema = Qnil;
temc = Fcurrent_buffer ();
teml = Fbuffer_list (selected_frame);
for (; CONSP (teml); teml = XCDR (teml))
{
temb = XCAR (teml);
if (skip_current && EQ (temb, temc))
continue;
if (NILP (temb))
continue;
if (NILP (XBUFFER (temb)->name))
continue;
if (SREF (XBUFFER (temb)->name, 0) == ' ')
continue;
tema = Fcons (XBUFFER (temb)->name, tema);
}
args[i] = Fread_buffer (callint_message, Fnreverse (tema),
*tem == 'b' ? Qt : Qnil);
}
break;
case 'c': /* Character */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment