/* externs.h */ /* Patched 12/1/90 by Michael Stanley (jstanley@uafhp.uark.edu) to * add @search command. details in file game.c * Patched 1/3/91 by Stan Lim aka Jin (stanl@zimmer.csufresno.edu) to add * do_hide and do_unhide. * Patched numerous times by Moonchilde (jt1o@andrew.cmu.edu) between * 1/91 and 11/91. * Patched numerous times by Amberyl (lwl@eniac.seas.upenn.edu) after * 1/92. * Patched numerous times by Javelin (dunemush@pennmush.org) * after 1/95. */ #ifndef __EXTERNS_H #define __EXTERNS_H /* Get the time_t definition that we use in prototypes here */ #ifdef I_SYS_TIME #include <sys/time.h> #else #include <time.h> #endif #include "config.h" #include "copyrite.h" #include "conf.h" #include "intrface.h" #include "regexp.h" /* Prototypes for externs not defined elsewhere */ #include "mushdb.h" #include "attrib.h" #ifdef CHAT_SYSTEM #include "extchat.h" #endif #include "confmagic.h" #ifdef WIN32 extern int strcasecmp _((const char *s1, const char *s2)); extern int strncasecmp(const char *s1, const char *s2, size_t n); /* From timer.c */ extern void init_timer _((void)); extern void kill_timer _((void)); #endif /* WIN32 */ /* From attrib.c */ extern struct boolatr *alloc_atr _((const char *name, char *s)); extern ATTR *atr_match _((char const *string)); extern void atr_new_add _((dbref thing, char const *atr, char const *s, dbref player, int flags)); extern int atr_add _((dbref thing, char const *atr, char const *s, dbref player, int flags)); extern int atr_clr _((dbref thing, char const *atr, dbref player)); extern ATTR *atr_get _((dbref thing, char const *atr)); extern ATTR *atr_get_noparent _((dbref thing, char const *atr)); extern int atr_iter_get _((dbref player, dbref thing, char const *name, int (*func) (), void *args)); extern ATTR *atr_complete_match _((dbref player, char const *atr, dbref privs)); extern void atr_free _((dbref thing)); extern void atr_cpy _((dbref dest, dbref source)); extern char const *const convert_atr _((int oldatr)); extern int atr_comm_match _((dbref thing, dbref player, int type, int end, char const *str, int just_match)); extern int do_set_atr _((dbref thing, char const *atr, char const *s, dbref player, int flags)); extern void do_atrlock _((dbref player, char const *arg1, char const *arg2)); extern void do_atrchown _((dbref player, char const *arg1, char const *arg2)); extern int string_to_atrflag _((dbref player, const char *p)); /* From bsd.c */ extern FILE *connlog_fp; extern FILE *checklog_fp; extern FILE *wizlog_fp; extern FILE *tracelog_fp; extern FILE *cmdlog_fp; extern int restarting; extern struct mail *desc_mail _((dbref player)); #ifdef SUN_OS extern int f_close _((FILE * file)); #define fclose(f) f_close(f); #endif extern int hidden _((dbref player)); extern void kill_info_slave _((void)); void dump_reboot_db _((void)); void rwho_update _((void)); /* The #defs for our notify_anything hacks.. Errr. Functions */ #define NA_NORELAY 0x0001 #define NA_NOENTER 0x0002 #define NA_NOLISTEN 0x0004 /* Implies NORELAY. Sorta. */ #define NA_NOPENTER 0x0010 #define NA_PONLY 0x0020 #define NA_PUPPET 0x0040 extern void notify_anything _((dbref speaker, dbref (*func) (), void *fdata, void (*nsfunc) (), int flags, const char *message)); extern dbref na_one _((dbref current, void *data)); extern dbref na_next _((dbref current, void *data)); extern dbref na_loc _((dbref current, void *data)); extern dbref na_nextbut _((dbref current, void *data)); extern dbref na_except _((dbref current, void *data)); extern dbref na_except2 _((dbref current, void *data)); #ifdef CHAT_SYSTEM extern dbref na_channel _((dbref current, void *data)); #endif #define notify(p,m) notify_anything(orator, na_one, (void *)p, NULL, 0, m) #define notify_by(t,p,m) notify_anything(t, na_one, (void *)p, NULL, 0, m) #define notify_noecho(p,m) notify_anything(orator, na_one, (void *)p, NULL, NA_NORELAY | NA_PUPPET, m) #define quiet_notify(p,m) if (!IsQuiet(p)) notify(p,m) /* From compress.c */ #if (COMPRESSION_TYPE != 0) extern unsigned char *compress _((char const *s)); extern char *uncompress _((unsigned char const *s)); extern char *safe_uncompress _((unsigned char const *s)); #else extern char ucbuff[]; extern char cbuff[]; #define init_compress(f) 0 #define compress(s) ((unsigned char *)strcpy(cbuff,s)) #define uncompress(s) (strcpy(ucbuff, (char *) s)) #define safe_uncompress(s) (strdup((char *) s)) #endif /* From conf.c */ extern void do_config_list _((dbref player, const char *type)); /* From cque.c */ extern char *wenv[10], renv[10][BUFFER_LEN]; extern char *wnxt[10], *rnxt[10]; extern void do_second _((void)); extern int do_top _((int ncom)); extern void do_halt _((dbref owner, const char *ncom, dbref victim)); extern void parse_que _((dbref player, const char *command, dbref cause)); extern int nfy_que _((dbref sem, int key, int count)); /* From create.c */ extern dbref do_dig _((dbref player, const char *name, char **argv, int tport)); extern dbref do_create _((dbref player, char *name, int cost)); extern dbref do_real_open _((dbref player, const char *direction, const char *linkto, dbref pseudo)); extern void do_open _((dbref player, const char *direction, char **links)); extern void do_link _((dbref player, const char *name, const char *room_name)); extern void do_unlink _((dbref player, const char *name)); extern dbref do_clone _((dbref player, char *name)); /* From flags.c */ extern const char *unparse_flags _((dbref thing, dbref player)); extern const char *flag_description _((dbref player, dbref thing)); extern object_flag_type find_flag _((char *name, int type, int *toggle, int is_conf)); extern object_flag_type letter_to_flag _((char c, int type, int *toggle)); extern int sees_flag _((dbref privs, dbref thing, char *name)); extern int handle_flaglists _((dbref player, char *name, char *fstr, int type)); extern void set_flag _((dbref player, dbref thing, char *flag, int negate, int hear, int listener)); extern const char *power_description _((dbref thing)); extern object_flag_type find_power _((const char *name)); /* From game.c */ extern void report _((void)); extern int Hearer _((dbref thing)); extern int Commer _((dbref thing)); extern int Listener _((dbref thing)); extern dbref orator; int parse_chat _((dbref player, char *command)); extern void fork_and_dump _((int forking)); /* From log.c */ extern void start_log _((FILE ** fp, const char *filename)); extern void end_log _((FILE * fp)); extern void do_log _((int logtype, dbref player, dbref object, const char *fmt,...)); extern void do_rawlog _((int logtype, const char *fmt,...)); /* From look.c */ extern void look_room _((dbref player, dbref loc, int flag)); extern void do_look_around _((dbref player)); extern void do_look_at _((dbref player, const char *name, int key)); #ifdef USE_MAILER /* From mail.c */ extern struct mail *maildb; extern void do_mail_clear _((dbref player, char *msglist)); extern void do_mail_purge _((dbref player)); extern void set_player_folder _((dbref player, int fnum)); extern void add_folder_name _((dbref player, int fld, const char *name)); extern struct mail *find_exact_starting_point _((dbref player)); extern void check_mail _((dbref player, int folder, int silent)); extern int dump_mail _((FILE * fp)); extern int load_mail _((FILE * fp)); extern void mail_init _((void)); extern int mdb_top; #endif /* USE_MAILER */ /* From move.c */ extern void enter_room _((dbref player, dbref loc)); extern int can_move _((dbref player, const char *direction)); extern void do_move _((dbref player, const char *direction, int type)); extern void moveto _((dbref what, dbref where)); extern void safe_tel _((dbref player, dbref dest)); extern dbref global_exit _((dbref player, const char *direction)); extern dbref remote_exit _((dbref loc, const char *direction)); extern void move_wrapper _((dbref player, const char *command)); /* From mycrypt.c */ extern char *mush_crypt _((const char *key)); /* From player.c */ extern int password_check _((dbref player, const char *password)); extern dbref lookup_player _((const char *name)); /* From plyrlist.c */ void clear_players _((void)); void add_player _((dbref player, char *alias)); void delete_player _((dbref player, char *alias)); /* From predicat.c */ extern char *tprintf _((const char *fmt,...)); extern int could_doit _((dbref player, dbref thing)); extern void did_it _((dbref player, dbref thing, const char *what, const char *def, const char *owhat, const char *odef, const char *awhat, dbref loc)); extern int can_see _((dbref player, dbref thing, int can_see_loc)); extern int controls _((dbref who, dbref what)); extern int can_pay_fees _((dbref who, int pennies)); extern void giveto _((dbref who, dbref pennies)); extern int payfor _((dbref who, int cost)); extern int nearby _((dbref obj1, dbref obj2)); #ifdef QUOTA extern int get_current_quota _((dbref who)); extern void change_quota _((dbref who, int payment)); extern int pay_quota _((dbref who, int cost)); #endif extern int ok_name _((const char *name)); extern int ok_player_name _((const char *name)); extern int ok_password _((const char *password)); extern dbref parse_match_possessive _((dbref player, const char *str)); extern void page_return _((dbref player, dbref target, const char *type, const char *message, const char *def)); extern char *grep_util _((dbref player, dbref thing, char *pattern, char *lookfor, int len, int insensitive)); extern dbref where_is _((dbref thing)); void charge_action _((dbref player, dbref thing, const char *awhat)); dbref first_visible _((dbref player, dbref thing)); /* From regexp.c (extract from Henry Spencer's package) */ extern regexp *regcomp _((char *)); extern int regexec _((register regexp *, register char *)); extern char regexp_errbuf[]; #ifdef ALLOW_RPAGE /* From rpage.c */ extern void dump_server_database _((void)); extern void rpage_init _((void)); extern void rpage_shutdown _((void)); extern void recv_rpage _((void)); #endif /* ALLOW_RPAGE */ /* From set.c */ extern void do_edit _((dbref player, dbref thing, char *q, char **argv)); extern void do_chzone _((dbref player, const char *name, const char *newobj)); extern void do_parent _((dbref player, char *name, char *parent_name)); extern int do_set _((dbref player, const char *name, char *flag)); extern void do_name _((dbref player, const char *name, char *newname)); extern void chown_object _((dbref player, dbref thing, dbref newowner)); extern void do_wipe _((dbref player, char *name)); /* From speech.c */ extern void ns_esnotify _((char *dest, dbref speaker, dbref (*func) (), void *fdata)); extern void notify_except _((dbref first, dbref exception, const char *msg)); extern void notify_except2 _((dbref first, dbref exc1, dbref exc2, const char *msg)); extern void do_pemit_list _((dbref player, char *list, const char *message)); extern int filter_found _((dbref thing, const char *msg, int flag)); /* From strutil.c */ extern char *split_token _((char **sp, char sep)); extern char *chopstr _((const char *str, int lim)); extern int string_prefix _((const char *string, const char *prefix)); extern const char *string_match _((const char *src, const char *sub)); extern char *strupper _((const char *s)); extern char *upcasestr _((char *s)); extern char *skip_space _((const char *s)); extern char *seek_char _((const char *s, char c)); extern int u_strlen _((const unsigned char *s)); extern unsigned char *u_strcpy _((unsigned char *target, const unsigned char *source)); #define u_strdup(x) (unsigned char *)strdup((char *) x) #ifndef HAS_STRDUP extern char *strdup _((const char *s)); #endif extern int safe_chr _((char c, char *buf, char **bufp)); extern int safe_copy_str _((const char *c, char *buff, char **bp, int maxlen)); extern char *replace_string _((const char *old, const char *new, const char *string)); extern char *trim_space_sep _((char *str, char sep)); extern int do_wordcount _((char *str, char sep)); extern int minmatch _((const char *str, const char *target, int min)); #define safe_str(s,b,p) safe_copy_str(s,b,p,BUFFER_LEN - 1) #define safe_short_str(s,b,p) safe_copy_str(s,b,p,SBUF_LEN - 1) extern int ansi_strlen _((char *string)); /* From unparse.c */ extern char *unparse_boolexp _((dbref player, struct boolexp * b, int flag)); extern const char *real_unparse _((dbref player, dbref loc, int obey_myopic)); extern const char *object_header _((dbref player, dbref loc)); extern const char *unparse_object _((dbref player, dbref loc)); /* From utils.c */ extern void parse_attrib _((dbref player, char *str, dbref *thing, ATTR **attrib)); extern int member _((dbref thing, dbref list)); extern int recursive_member _((dbref disallow, dbref from, int count)); extern dbref remove_first _((dbref first, dbref what)); extern dbref reverse _((dbref list)); extern struct dblist *listcreate _((dbref ref)); extern void listadd _((struct dblist * head, dbref ref)); extern void listfree _((struct dblist * head)); extern int is_number _((const char *str)); extern int is_strict_number _((const char *str)); extern Malloc_t mush_malloc _((int size, const char *check)); extern void mush_free _((Malloc_t ptr, const char *check)); extern int getrandom _((int x)); extern char *shortname _((dbref it)); #ifdef USE_WARNINGS /* From warnings.c */ extern void run_topology _((void)); extern void do_warnings _((dbref player, char *name, char *warns)); extern void do_wcheck _((dbref player, char *name)); extern void do_wcheck_all _((dbref player)); extern void set_initial_warnings _((dbref player)); extern const char *unparse_warnings _((dbref thing)); #endif /* From wild.c */ extern int wild _((const char *s, const char *d, int p, int os)); extern int wild_match _((const char *s, const char *d)); extern int local_wild _((char *s, char *d, int p, int os)); extern int local_wild_match _((const char *s, const char *d)); extern int quick_wild _((const char *tstr, const char *dstr)); extern int wildcard _((const char *s)); extern int regexp_match _((const char *s, const char *d)); /* From wiz.c */ extern void do_chownall _((dbref player, const char *name, const char *target)); extern void do_teleport _((dbref player, const char *arg1, const char *arg2)); /* From function.c and other fun*.c */ extern char *rptr[10]; extern char *strip_braces _((char const *line)); extern void save_global_regs _((const char *funcname, char *preserve[])); extern void restore_global_regs _((const char *funcname, char *preserve[])); extern int delim_check _((char *buff, char **bp, int nfargs, char **fargs, int sep_arg, char *sep)); extern int get_gender _((dbref player)); /* From boolexp.c */ extern int sizeof_boolexp _((struct boolexp * b)); extern int eval_boolexp _((dbref player, struct boolexp * b, dbref target, int nrecurs, lock_type ltype)); extern struct boolexp *parse_boolexp _((dbref player, const char *buf)); /* From destroy.c */ void do_destroy _((dbref player, char *name, int confirm)); void do_undestroy _((dbref player, char *name)); dbref free_get _((void)); void fix_free_list _((void)); void purge _((void)); void do_purge _((dbref player)); void dbck _((void)); void do_dbck _((dbref player)); void undestroy _((dbref player, dbref thing)); /* From chat.c */ #ifdef CHAT_SYSTEM extern void init_chat _((void)); extern void do_channel _((dbref player, const char *name, const char *target, const char *com)); extern void do_chat _((dbref player, CHAN *chan, const char *arg1)); extern void do_chan_admin _((dbref player, char *name, const char *perms, int flag)); extern int find_channel _((const char *p, CHAN **chan)); extern int find_channel_partial _((const char *p, CHAN **chan, dbref player)); extern void do_channel_list _((dbref player, const char *partname)); extern int do_chat_by_name _((dbref player, const char *name, const char *msg)); extern void do_chan_decompile _((dbref player, const char *name)); extern void do_chan_chown _((dbref player, const char *name, const char *new)); #endif /* CHAT_SYSTEM */ /* From db.c */ extern const char *set_string _((const char **ptr, const char *new)); /* lock.c */ struct boolexp *getlock _((dbref thing, lock_type type)); lock_type match_lock _((lock_type type)); void add_lock _((dbref thing, lock_type type, struct boolexp * key)); void delete_lock _((dbref thing, lock_type type)); void free_locks _((lock_list *ll)); int eval_lock _((dbref player, dbref thing, lock_type ltype)); void do_unlock _((dbref player, const char *name, lock_type type)); void do_lock _((dbref player, const char *name, const char *keyname, lock_type type)); /* local.c */ void local_startup _((void)); void local_dump_database _((void)); void local_shutdown _((void)); void local_timer _((void)); #ifdef LOCAL_DATA void local_data_create _((dbref object)); void local_data_clone _((dbref clone, dbref source)); void local_data_free _((dbref object)); #endif /* rwho.c */ int rwhocli_setup _((const char *server, const char *serverpw, const char *myname, const char *comment)); int rwhocli_shutdown _((void)); int rwhocli_userlogin _((const char *uid, const char *name, time_t tim)); int rwhocli_userlogout _((const char *uid)); int rwhocli_pingalive _((void)); /* funlist.c */ void do_gensort _((char **s, int n, int sort_type)); /* This is from utils.c, but put at the end because it confuses indent */ typedef Signal_t(*Sigfunc) _((int)); #ifdef HAS_SIGACTION #ifdef signal #undef signal #endif #ifdef CAN_PROTOTYPE_SIGNAL extern Sigfunc signal _((int signo, Sigfunc func)); #endif #endif #endif /* __EXTERNS_H */