Function: while
while is a special form defined in eval.c.
Signature
(while TEST BODY...)
Documentation
If TEST yields non-nil, eval BODY... and repeat.
The order of execution is thus TEST, BODY, TEST, BODY and so on until TEST returns nil.
The value of a while form is always nil.
Probably introduced at or before Emacs version 1.12.
Source Code
// Defined in /usr/src/emacs/src/eval.c
{
Lisp_Object test, body;
test = XCAR (args);
body = XCDR (args);
while (!NILP (eval_sub (test)))
{
maybe_quit ();
prog_ignore (body);
}
return Qnil;
}