/**************************************************************************** * * * dutil.h (c) by Georg Essl in 1992 * * * ****************************************************************************/ /*** DEFINES ***/ #define MAX_STRING_LENGTH 4096 #define CREATE(result, type, number) do {\ if (!((result) = (type *) calloc ((number), sizeof(type))))\ { perror("malloc failure"); abort(); } } while(0) #define DU_ERR_NOERROR 0 #define DU_ERR_LINEINVALID 1 #define DU_ERR_INVALIDSTART 2 #define DU_ERR_OOMFOROBJ 3 #define DU_ERR_STRINGTOOLONG 4 #define DU_ERR_CANTOPEN 5 /*** STRUCTURES ***/ struct index_data { int virtual; /* virtual number of this mob/obj */ long pos; /* file position of this field */ long cpos; /* char position */ }; /*** PROTOTYPES ***/ int strnccmp(char *, char *,int); int AskYesNo(char *); char *fread_string(FILE *); struct index_data *generate_indices(FILE *, int *); void fwrite_string(FILE *,char *); void write_string(char *, int); char *read_multi_string(void); int GetADef(FILE *,char *,char *,char ***,int *); void FreeADef(char **,int);