Function: internal-complete-buffer
internal-complete-buffer is a function defined in minibuf.c.
Signature
(internal-complete-buffer STRING PREDICATE FLAG)
Documentation
Perform completion on buffer names.
STRING and PREDICATE have the same meanings as in try-completion,
all-completions, and test-completion.
If FLAG is nil, invoke try-completion; if it is t, invoke
all-completions; otherwise invoke test-completion.
Probably introduced at or before Emacs version 24.4.
Source Code
// Defined in /usr/src/emacs/src/minibuf.c
{
if (NILP (flag))
return Ftry_completion (string, Vbuffer_alist, predicate);
else if (EQ (flag, Qt))
{
Lisp_Object res = Fall_completions (string, Vbuffer_alist, predicate);
if (SCHARS (string) > 0)
return res;
else
{ /* Strip out internal buffers. */
Lisp_Object bufs = res;
/* First, look for a non-internal buffer in `res'. */
while (CONSP (bufs) && SREF (XCAR (bufs), 0) == ' ')
bufs = XCDR (bufs);
if (NILP (bufs))
return (list_length (res) == list_length (Vbuffer_alist)
/* If all bufs are internal don't strip them out. */
? res : bufs);
res = bufs;
while (CONSP (XCDR (bufs)))
if (SREF (XCAR (XCDR (bufs)), 0) == ' ')
XSETCDR (bufs, XCDR (XCDR (bufs)));
else
bufs = XCDR (bufs);
return res;
}
}
else if (EQ (flag, Qlambda))
return Ftest_completion (string, Vbuffer_alist, predicate);
else if (EQ (flag, Qmetadata))
return list3 (Qmetadata,
Fcons (Qcategory, Qbuffer),
Fcons (Qcycle_sort_function, Qidentity));
else
return Qnil;
}