/* functions.h - declarations for functions & function processing */
/* $Id: functions.h,v 1.3 2005/06/23 02:59:58 murrayma Exp $ */
#include "copyright.h"
#ifndef __FUNCTIONS_H
#define __FUNCTIONS_H
typedef struct fun {
    const char *name;		/* function name */
    void (*fun) ();		/* handler */
    int nargs;			/* Number of args needed or expected */
    int flags;			/* Function flags */
    int perms;			/* Access to function */
} FUN;
typedef struct ufun {
    const char *name;		/* function name */
    dbref obj;			/* Object ID */
    int atr;			/* Attribute ID */
    int flags;			/* Function flags */
    int perms;			/* Access to function */
    struct ufun *next;		/* Next ufun in chain */
} UFUN;
#define	FN_VARARGS	1	/* Function allows a variable # of args */
#define	FN_NO_EVAL	2	/* Don't evaluate args to function */
#define	FN_PRIV		4	/* Perform user-def function as holding obj */
#define FN_PRES		8	/* Preseve r-regs before user-def functions */
extern void init_functab(void);
extern void list_functable(dbref);
extern dbref match_thing(dbref, char *);
#endif