/
umud/DOC/
umud/DOC/examples/
umud/DOC/internals/
umud/DOC/wizard/
umud/MISC/
umud/MISC/dbchk/
umud/RWHO/rwhod/
/*
	Copyright (C) 1991, Marcus J. Ranum. All rights reserved.
*/

#ifndef	lint
static	char	RCSid[] = "$Header: /usr/users/mjr/hacks/umud/CMD/RCS/_set.c,v 1.1 91/07/04 17:33:24 mjr Rel $";
#endif

/* configure all options BEFORE including system stuff. */
#include	"config.h"


#include	"mud.h"
#include	"match.h"

/*
set an attribute in an object.

no checks whatsoever are made to ensure validity. this is wiz stuff.
*/


/* ARGSUSED */
cmd__set(argc,argv,who,aswho)
int	argc;
char	*argv[];
char	*who;
char	*aswho;
{
	Obj	*op;
	char	ob[MAXOID];

	if(matchlocal(who,argv[1],ut_loc(who),MTCH_UNIQ|MTCH_MEOK|MTCH_NONLOC,ob))
		return(1);

	if((op = cache_get(ob)) == (Obj *)0) {
		say(who,"cannot find object ",ob,"\n",(char *)0);
		return(1);
	}

	if(objsetattr(op,argv[2],argv[3],argv[4])) {
		say(who,"cannot set attribute ",argv[2]," ",
			argv[3]," = ",argv[4],"\n",(char *)0);
		return(1);
	}

	if(cache_put(op,argv[1])) {
		say(who,"cannot write object ",argv[1],"\n",(char *)0);
		return(1);
	}
	return(0);
}