blob: e65bc848b9f5ec674953d9bac6d7f6a998f85280 [file] [log] [blame]
// MorgenGrauen MUDlib
//
// util/input.c -- generic input handling
//
// $Id: input.c 8349 2013-02-04 21:15:28Z Zesstra $
#include <input_to.h>
#pragma strong_types
#pragma save_types
#pragma pedantic
#pragma range_check
#pragma no_clone
varargs void input(mixed prompt, mixed pargs, mixed ctrl, mixed ctrlargs)
{
mixed prompttext;
if(closurep(prompt))
prompttext = apply(prompt, pointerp(pargs) ? pargs : ({}));
else prompttext = prompt;
if (!stringp(prompttext)) prompttext="";
input_to("done", INPUT_PROMPT, prompttext, prompt, pargs, ctrl, ctrlargs);
}
void done(string in, mixed prompt, mixed pargs, mixed ctrl, mixed ctrlargs)
{
if(closurep(ctrl) &&
apply(ctrl, ({ in }) + (pointerp(ctrlargs) ? ctrlargs : ({}))))
return;
input(prompt, pargs, ctrl, ctrlargs);
}