/*
Copyright (C) 1991, Marcus J. Ranum. All rights reserved.
*/
#ifndef lint
static char RCSid[] = "$Header: /usr/users/mjr/hacks/umud/CMD/RCS/say.c,v 1.1 91/07/04 17:33:27 mjr Rel $";
#endif
/* configure all options BEFORE including system stuff. */
#include "config.h"
#include "mud.h"
#include "vars.h"
/*
TinyMUD-like "say"
*/
/* ARGSUSED */
cmd_say(argc,argv,who,aswho)
int argc;
char *argv[];
char *who;
char *aswho;
{
char *un;
char nx[MAXOID];
char *room;
char *inroom;
int ax;
room = ut_loc(run_actor());
/* get list of who is in the room */
inroom = ut_getatt(room,0,typ_list,var_ply,(char *)0);
if(inroom == (char *)0)
return(1);
/* set player's name */
un = ut_name(run_actor());
/* hack to handle empty statements */
if(argc == 1)
argv[1] = "";
/* iterate across list of people in the room - excluding ourself */
while((inroom = lstnext(inroom,nx)) != (char *)0) {
if(strcmp(nx,who)) {
if(argc < 3) {
say(nx,un," says, \"",argv[1],"\"\n",(char *)0);
} else {
say(nx,un," says, \"",(char *)0);
for(ax = 1; ax < argc;) {
say(nx,argv[ax],(char *)0);
if(++ax < argc)
say(nx," ",(char *)0);
}
say(nx,"\"\n",(char *)0);
}
}
}
un = run_actor();
/* now talk to ourself :) */
if(argc < 3) {
say(un,"You say, \"",argv[1],"\"\n",(char *)0);
} else {
say(un,"You say, \"",(char *)0);
for(ax = 1; ax < argc;) {
say(un,argv[ax],(char *)0);
if(++ax < argc)
say(un," ",(char *)0);
}
say(un,"\"\n",(char *)0);
}
return(0);
}