#ifndef MPLIB1_CFG_FILE #define MPLIB1_CFG_FILE /* ******************************************************************************* * Copyright (c) 1996 Martin Poole * ******************************************************************************* ** ** WARNING !! WARNING !! WARNING !! WARNING !! WARNING !! WARNING !! ** ** Any changes to be made to this file should first be checked with ** mplib1 source control for library integrity. ** ** mplib1 source control can be reached at mplib1@quatermass.co.uk ** * * $Source$ * $Author$ * $Date$ * $Revision$ * ******************************************************************************* * * Change History * * $Log$ * ******************************************************************************* */ #ident "$Header$" #ifdef CXREF #include #endif /* ------------------------------------------------------------------ Include files ------------------------------------------------------------------ */ /* ------------------------------------------------------------------ defines ------------------------------------------------------------------ */ #define CONFIG_NO_EVAL BIT(0) typedef void (*config_disp_t)(const char *,const char *, const char *,void *); /* ------------------------------------------------------------------ Code starts here ------------------------------------------------------------------ */ extern int set_private_string( const char *list_name, const char *key, const char *val ); #define set_config_string(k,v) set_private_string( NULL, k, v) extern int read_private_string( const char *list_name, const char *line ); #define read_config_string(line) read_private_string( NULL, line ) extern void flush_item_eval( const char *list_name, const char *item ); extern int flush_list_evals( const char *list_name ); extern int dump_private_contents( const char *list_name, FILE *fh ); extern int report_private_contents( const char *list_name, config_disp_t disp_func, void *param ); extern int read_private_string_array( const char *list_name, const char *conf_str[] ); #define config_string_array(cs) read_private_string_array( NULL, cs ) extern int read_private_file( const char *list_name, const char *fname ); #define read_config_file(fname) read_private_file( NULL, fname ) extern int raw_private_string( const char *list_name, const char *key, char *value ); #define raw_config_string(key,val) raw_private_string( NULL, key, val ) extern char * get_private_string( const char *list_name, const char *key ); #define get_config_string(key) get_private_string( NULL, key ) extern int get_private_int( const char *list_name, const char *key ); #define get_config_int(key) get_private_int( NULL, key ) extern double get_private_double( const char *list_name, const char *key ); #define get_config_double(key) get_private_double( NULL, key ) extern int get_private_flag( const char *list_name, const char *key ); #define get_config_flag(key) get_private_flag( NULL, key ) extern int set_private_int( const char *list_name, const char *key, int newval ); #define set_config_int(k,v) set_private_int( NULL, k, v ) extern int set_private_double( const char *list_name, const char *key, double newval ); #define set_config_double(k,v) set_private_double( NULL, k, v ) extern int set_private_flag( const char *list_name, const char *key, int newval ); #define set_config_flag(k,v) set_private_flag( NULL, k, v ) extern int get_list_flags( const char *list_name ); extern int set_list_flags( const char *list_name, int new_val ); extern char * eval_private_str( const char *list_name, const char *from ); #define eval_config_str(from) eval_private_str( NULL, from ) extern char * eval_private_default( const char *list_name, const char *config_name, const char *def_name ); #define eval_config_default(cfg,def) eval_private_default( NULL, cfg, def ) /* And a pair of functions for watching a configuration file and ensuring it is re-read if it is changed */ extern int check_cfg_file( int force ); extern int watch_cfg_file( const char *config_name ); #endif /* -- End of File -- */