/*
Copyright (C) 1991, Marcus J. Ranum. All rights reserved.
*/
#ifndef lint
static char RCSid[] = "$Header: /home/mjr/hacks/umud/CMD/RCS/_if.c,v 1.1 92/02/09 22:59:28 mjr Exp $";
#endif
/* configure all options BEFORE including system stuff. */
#include "config.h"
#include "mud.h"
#include "sbuf.h"
/*
conditional
*/
/* ARGSUSED */
cmd__if(argc,argv,who,aswho)
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);
}