/************************************************************************* * TinyFugue - programmable mud client * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2002, 2003, 2004, 2005, 2006-2007 Ken Keys * * TinyFugue (aka "tf") is protected under the terms of the GNU * General Public License. See the file "COPYING" for details. ************************************************************************/ /* $Id: variable.h,v 35004.40 2007/01/13 23:12:39 kkeys Exp $ */ #ifndef VARIABLE_H #define VARIABLE_H /********************************************* * Internal, user, and environment variables * *********************************************/ #define set_str_var_by_name(name, sval) \ set_str_var_by_namehash(name, hash_string(name), CS(sval), 0) #define set_var_by_id(id, i) \ setintvar(&special_var[id], i, FALSE) extern Pattern looks_like_special_sub_ic; extern void init_variables(void); extern Var *newglobalvar(const char *name); extern Var *findorcreateglobalvar(const char *name); extern Var *hfindnearestvar(const Value *idval); extern Value *hgetnearestvarval(const Value *idval); extern Value *getvarval(Var *var); extern const char *getvar(const char *name); extern Var *ffindglobalvar(const char *name); extern void set_str_var_direct(Var *var, int type, conString *value); extern void set_int_var_direct(Var *var, int type, int value); extern void set_time_var_direct(Var *var, int type, struct timeval *value); extern void set_float_var_direct(Var *var, int type, double value); extern Var *hsetnearestvar(const Value *idval, conString *value); extern Var *set_str_var_by_namehash(const char *name, unsigned int hash, conString *value, int exportflag); extern Var *setvar(Var *var, Value *value, int exportflag); extern Var *setstrvar(Var *var, conString *sval, int exportflag); extern Var *setintvar(Var *var, long ival, int exportflag); extern int unsetvar(Var *var); extern void freevar(Var *var); extern char *spanvar(const char *start); extern int setdelim(const char **pp); extern int do_set(const char *name, unsigned int hash, conString *value, int offset, int exportflag, int localflag); extern int command_set(String *args, int offset, int exportflag, int localflag); extern Var *setlocalstrvar(const char *name, conString *value); extern Var *setlocalintvar(const char *name, int value); extern Var *setlocaldtimevar(const char *name, struct timeval *value); extern void pushvarscope(struct List *level); extern void popvarscope(void); #if USE_DMALLOC extern void free_vars(void); #endif #endif /* VARIABLE_H */