Example #1
0
char   *
do_parse_mesg_2(int descr, dbref player, dbref what, dbref perms, const char *inbuf, 
                const char *abuf, char *outbuf, int mesgtyp)
{

    char howvar[BUFFER_LEN];
    char cmdvar[BUFFER_LEN];
    char argvar[BUFFER_LEN];
    char tmparg[BUFFER_LEN];
    char tmpcmd[BUFFER_LEN];
    char *dptr;
    int  mvarcnt = varc;
    int  mfunccnt = funcc;
    int  tmprec_cnt = mesg_rec_cnt;
    int  tmpinst_cnt = mesg_instr_cnt;

#ifdef COMPRESS
    abuf = uncompress(abuf);
#endif                          /* COMPRESS */

    *outbuf = '\0';
    if (new_mvar("how", howvar)) return outbuf;
    strcpy(howvar, abuf);

    if (new_mvar("cmd", cmdvar)) return outbuf;
    strcpy(cmdvar, match_cmdname);
    strcpy(tmpcmd, match_cmdname);

    if (new_mvar("arg", argvar)) return outbuf;
    strcpy(argvar, match_args);
    strcpy(tmparg, match_args);

#ifdef COMPRESS
    inbuf = uncompress(inbuf);
#endif                          /* COMPRESS */

    dptr = MesgParse(inbuf, outbuf);
    if (!dptr) {
        *outbuf = '\0';
    }

    varc = mvarcnt;
    free_mfuncs(mfunccnt);
    mesg_rec_cnt = tmprec_cnt;
    mesg_instr_cnt = tmpinst_cnt;

    strcpy(match_cmdname, tmpcmd);
    strcpy(match_args, tmparg);


    return outbuf;
}
Example #2
0
char *
do_parse_mesg_2(int descr, dbref player, dbref what, dbref perms,
    const char *inbuf, const char *abuf, char *outbuf, int outbuflen,
    int mesgtyp)
{

	char howvar[BUFFER_LEN];
	char cmdvar[BUFFER_LEN];
	char argvar[BUFFER_LEN];
	char tmparg[BUFFER_LEN];
	char tmpcmd[BUFFER_LEN];
	char *dptr;
	int mvarcnt = varc;
	int mfunccnt = funcc;
	int tmprec_cnt = mesg_rec_cnt;
	int tmpinst_cnt = mesg_instr_cnt;

	*outbuf = '\0';

	if ((mesgtyp & MPI_NOHOW) == 0)
	{
		if (new_mvar("how", howvar))
		{
			snprintf(howvar, sizeof(howvar), "%s Out of MPI variables.", abuf);
			notify_nolisten(player, howvar, 1);
			varc = mvarcnt;
			return outbuf;
		}
		strcpyn(howvar, sizeof(howvar), abuf);
	}

	if (new_mvar("cmd", cmdvar))
	{
		snprintf(cmdvar, sizeof(cmdvar), "%s Out of MPI variables.", abuf);
		notify_nolisten(player, cmdvar, 1);
		varc = mvarcnt;
		return outbuf;
	}
	strcpyn(cmdvar, sizeof(cmdvar), match_cmdname);
	strcpyn(tmpcmd, sizeof(tmpcmd), match_cmdname);

	if (new_mvar("arg", argvar))
	{
		snprintf(argvar, sizeof(argvar), "%s Out of MPI variables.", abuf);
		notify_nolisten(player, argvar, 1);
		varc = mvarcnt;
		return outbuf;
	}
	strcpyn(argvar, sizeof(argvar), match_args);
	strcpyn(tmparg, sizeof(tmparg), match_args);

	dptr = MesgParse(inbuf, outbuf, outbuflen);
	if (!dptr) {
		*outbuf = '\0';
	}

	varc = mvarcnt;
	free_mfuncs(mfunccnt);
	mesg_rec_cnt = tmprec_cnt;
	mesg_instr_cnt = tmpinst_cnt;

	strcpyn(match_cmdname, sizeof(match_cmdname), tmpcmd);
	strcpyn(match_args, sizeof(match_args), tmparg);


	return outbuf;
}