/*
Copyright (C) 1991, Marcus J. Ranum. All rights reserved.
*/
/* configure all options BEFORE including system stuff. */
#include "config.h"
#include "mud.h"
#include "sbuf.h"
/*
conditional
*/
/* ARGSUSED */
int cmd__if (int argc, char *argv[], char *who, char *aswho)
{
Sbuf suf;
sbuf_initstatic (&suf);
if (bool_rewrite (who, argv[1], &suf)) {
say (who, "Bad Boolean expression.\n", (char *) 0);
sbuf_freestatic (&suf);
return (UERR_SYNTAX);
}
if (bool_eval (who, ut_loc (run_actor ()), sbuf_buf (&suf), 0)) {
sbuf_freestatic (&suf);
return (run (who, aswho, argv[2], argc, argv, 0));
}
sbuf_freestatic (&suf);
if (argc == 5 && !strcmp (argv[3], "else"))
return (run (who, aswho, argv[4], argc, argv, 0));
if (bool_eval (who, ut_loc (run_actor ()), argv[1], 0))
return (run (who, aswho, argv[2], argc, argv, 0));
return (UERR_NONE);
}