#ifndef _MFUNLIST_H
#define _MFUNLIST_H
/*********************************************************************
* mfunlist.h MPI functions list. 7/30/94
*********************************************************************/
#include "msgparse.h"
typedef struct mfun_dat MFNDAT;
struct mfun_dat {
char *name;
const char *(*mfn) (MFUNARGS);
short parsep;
short postp;
short stripp;
short minargs;
short maxargs;
};
/******** MFUN LIST ********/
#ifdef DEFINE_MFUN_LIST
MFNDAT mfun_list[] = {
/* Name, Func, Preparse?, Postparse?, strip?, Minargs, Maxargs */
{"ABS", mfn_abs, 1, 0, 1, 1, 1},
{"ADD", mfn_add, 1, 0, 1, 2, 9},
{"AND", mfn_and, 0, 0, 1, 2, 9},
{"ATTR", mfn_attr, 1, 0, 1, 2, 9},
{"AWAKE", mfn_awake, 1, 0, 1, 1, 1},
{"BLESS", mfn_bless, 1, 0, 1, 1, 2},
{"CENTER", mfn_center, 1, 0, 0, 1, 3},
{"COMMAS", mfn_commas, 0, 0, 0, 1, 4},
{"CONCAT", mfn_concat, 1, 0, 1, 1, 2},
{"CONTAINS", mfn_contains, 1, 0, 1, 1, 2},
{"CONTENTS", mfn_contents, 1, 0, 1, 1, 2},
{"CONTROLS", mfn_controls, 1, 0, 1, 1, 2},
{"CONVSECS", mfn_convsecs, 1, 0, 1, 1, 1},
{"CONVTIME", mfn_convtime, 1, 0, 1, 1, 1},
{"COUNT", mfn_count, 1, 0, 0, 1, 2},
{"CREATED", mfn_created, 1, 0, 1, 1, 1},
{"DATE", mfn_date, 1, 0, 1, 0, 1},
{"DBEQ", mfn_dbeq, 1, 0, 1, 2, 2},
{"DEBUG", mfn_debug, 0, 0, 0, 1, 1},
{"DEBUGIF", mfn_debugif, 0, 0, 0, 2, 2},
{"DEC", mfn_dec, 1, 0, 1, 1, 2},
{"DEFAULT", mfn_default, 0, 0, 0, 2, 2},
{"DELAY", mfn_delay, 1, 0, 1, 2, 2},
{"DELPROP", mfn_delprop, 1, 0, 1, 1, 2},
{"DICE", mfn_dice, 1, 0, 1, 1, 3},
{"DIST", mfn_dist, 1, 0, 1, 2, 6},
{"DIV", mfn_div, 1, 0, 1, 2, 9},
{"ESCAPE", mfn_escape, 1, 0, 0, 1, 1},
{"EQ", mfn_eq, 1, 0, 0, 2, 2},
{"EVAL", mfn_eval, 1, 0, 0, 1, 1},
{"EVAL!", mfn_evalbang, 1, 0, 0, 1, 1},
{"EXEC", mfn_exec, 1, 0, 1, 1, 2},
{"EXEC!", mfn_execbang, 1, 0, 1, 1, 2},
{"EXITS", mfn_exits, 1, 0, 1, 1, 1},
{"FILTER", mfn_filter, 0, 0, 0, 3, 5},
{"FLAGS", mfn_flags, 1, 0, 1, 1, 1},
{"FOLD", mfn_fold, 0, 0, 0, 4, 5},
{"FOR", mfn_for, 0, 0, 0, 5, 5},
{"FORCE", mfn_force, 1, 0, 1, 2, 2},
{"FOREACH", mfn_foreach, 0, 0, 0, 3, 4},
{"FOX", mfn_fox, 0, 0, 0, 0, 0},
{"FTIME", mfn_ftime, 1, 0, 0, 1, 3},
{"FULLNAME", mfn_fullname, 1, 0, 1, 1, 1},
{"FUNC", mfn_func, 0, 0, 1, 2, 9}, /* define a function */
{"GE", mfn_ge, 1, 0, 1, 2, 2},
{"GT", mfn_gt, 1, 0, 1, 2, 2},
{"HOLDS", mfn_holds, 1, 0, 1, 1, 2},
{"IDLE", mfn_idle, 1, 0, 1, 1, 1},
{"IF", mfn_if, 0, 0, 0, 2, 3},
{"INC", mfn_inc, 1, 0, 1, 1, 2},
{"INDEX", mfn_index, 1, 0, 1, 1, 2},
{"INDEX!", mfn_indexbang, 1, 0, 1, 1, 2},
{"INSTR", mfn_instr, 1, 0, 0, 2, 2},
{"ISDBREF", mfn_isdbref, 1, 0, 1, 1, 1},
{"ISNUM", mfn_isnum, 1, 0, 1, 1, 1},
{"ISTYPE", mfn_istype, 1, 0, 1, 2, 2},
{"KILL", mfn_kill, 1, 0, 1, 1, 1},
{"LASTUSED", mfn_lastused, 1, 0, 1, 1, 1},
{"LCOMMON", mfn_lcommon, 1, 0, 0, 2, 2}, /* items in both 1 & 2 */
{"LE", mfn_le, 1, 0, 1, 2, 2},
{"LEFT", mfn_left, 1, 0, 0, 1, 3},
{"LEXEC", mfn_lexec, 1, 0, 1, 1, 2},
{"LINKS", mfn_links, 1, 0, 1, 1, 1},
{"LIST", mfn_list, 1, 0, 1, 1, 2},
{"LISTPROPS", mfn_listprops, 1, 0, 1, 1, 3},
{"LIT", mfn_lit, 0, 0, 0, 1, -1},
{"LMEMBER", mfn_lmember, 1, 0, 0, 2, 3},
{"LOC", mfn_loc, 1, 0, 1, 1, 1},
{"LOCKED", mfn_locked, 1, 0, 1, 2, 2},
{"LRAND", mfn_lrand, 1, 0, 0, 1, 2}, /* returns random list item */
{"LREMOVE", mfn_lremove, 1, 0, 0, 2, 2}, /* items in 1 not in 2 */
{"LSORT", mfn_lsort, 0, 0, 0, 1, 4}, /* sort list items */
{"LT", mfn_lt, 1, 0, 1, 2, 2},
{"LTIMESTR", mfn_ltimestr, 1, 0, 1, 1, 1},
{"LUNION", mfn_lunion, 1, 0, 0, 2, 2}, /* items from both */
{"LUNIQUE", mfn_lunique, 1, 0, 0, 1, 1}, /* make items unique */
{"MAX", mfn_max, 1, 0, 1, 2, 2},
{"MIDSTR", mfn_midstr, 1, 0, 0, 2, 3},
{"MIN", mfn_min, 1, 0, 1, 2, 2},
{"MKLIST", mfn_mklist, 1, 0, 0, 0, 9},
{"MOD", mfn_mod, 1, 0, 1, 2, 9},
{"MODIFIED", mfn_modified, 1, 0, 1, 1, 1},
{"MONEY", mfn_money, 1, 0, 1, 1, 1},
{"MUCKNAME", mfn_muckname, 0, 0, 0, 0, 0},
{"MUF", mfn_muf, 1, 0, 0, 2, 2},
{"MULT", mfn_mult, 1, 0, 1, 2, 9},
{"NAME", mfn_name, 1, 0, 1, 1, 1},
{"NE", mfn_ne, 1, 0, 0, 2, 2},
{"NEARBY", mfn_nearby, 1, 0, 1, 1, 2},
{"NL", mfn_nl, 0, 0, 0, 0, 0},
{"NOT", mfn_not, 1, 0, 1, 1, 1},
{"NULL", mfn_null, 1, 0, 0, 0, 9},
{"ONLINE", mfn_online, 0, 0, 0, 0, 0},
{"ONTIME", mfn_ontime, 1, 0, 1, 1, 1},
{"OR", mfn_or, 0, 0, 1, 2, 9},
{"OTELL", mfn_otell, 1, 0, 0, 1, 3},
{"OWNER", mfn_owner, 1, 0, 1, 1, 1},
{"PARSE", mfn_parse, 0, 0, 0, 3, 5},
{"PRONOUNS", mfn_pronouns, 1, 0, 0, 1, 2},
{"PROP", mfn_prop, 1, 0, 1, 1, 2},
{"PROP!", mfn_propbang, 1, 0, 1, 1, 2},
{"PROPDIR", mfn_propdir, 1, 0, 1, 1, 2},
{"RAND", mfn_rand, 1, 0, 1, 1, 2},
{"RIGHT", mfn_right, 1, 0, 0, 1, 3},
{"REF", mfn_ref, 1, 0, 1, 1, 1},
{"REVOKE", mfn_revoke, 0, 0, 0, 1, 1},
{"SECS", mfn_secs, 0, 0, 0, 0, 0},
{"SELECT", mfn_select, 1, 0, 1, 2, 3},
{"SET", mfn_set, 1, 0, 0, 2, 2},
{"SIGN", mfn_sign, 1, 0, 1, 1, 1},
{"SMATCH", mfn_smatch, 1, 0, 0, 2, 2},
{"STIMESTR", mfn_stimestr, 1, 0, 1, 1, 1},
{"STORE", mfn_store, 1, 0, 1, 2, 3},
{"STRIP", mfn_strip, 1, 0, 0, 1, -1},
{"STRLEN", mfn_strlen, 1, 0, 0, 1, 1},
{"SUBLIST", mfn_sublist, 1, 0, 0, 1, 4},
{"SUBST", mfn_subst, 1, 0, 0, 3, 3},
{"SUBT", mfn_subt, 1, 0, 1, 2, 9},
{"TESTLOCK", mfn_testlock, 1, 0, 1, 2, 4},
{"TELL", mfn_tell, 1, 0, 0, 1, 2},
{"TIME", mfn_time, 1, 0, 1, 0, 1},
{"TIMING", mfn_timing, 0, 0, 0, 1, 1},
{"TIMESTR", mfn_timestr, 1, 0, 1, 1, 1},
{"TIMESUB", mfn_timesub, 1, 0, 1, 3, 4},
{"TOLOWER", mfn_tolower, 1, 0, 0, 1, 1},
{"TOUPPER", mfn_toupper, 1, 0, 0, 1, 1},
{"TYPE", mfn_type, 1, 0, 1, 1, 1},
{"TZOFFSET", mfn_tzoffset, 0, 0, 0, 0, 0},
{"UNBLESS", mfn_unbless, 1, 0, 1, 1, 2},
{"USECOUNT", mfn_usecount, 1, 0, 1, 1, 1},
{"V", mfn_v, 1, 0, 1, 1, 1}, /* variable value */
{"VERSION", mfn_version, 0, 0, 0, 0, 0},
{"WHILE", mfn_while, 0, 0, 0, 2, 2},
{"WITH", mfn_with, 0, 0, 0, 3, 9}, /* declares var & val */
{"XOR", mfn_xor, 1, 0, 1, 2, 2}, /* logical XOR */
{NULL, NULL, 0, 0, 0, 0, 0} /* Ends the mfun list */
};
#else
extern MFNDAT mfun_list[];
#endif /* defined DEFINE_MFUN_LIST */
#endif /* _MFUNLIST_H */