/****************************************/
/* Config.h                             */
/* Freeware                             */
/* © 1999-2000 Christian Hattemer       */
/* email: chris@riednet.tu-darmstadt.de */
/* Based on Code by Adam Dawes, ©1996   */
/* 23.08.2000 18:56                     */
/****************************************/

struct ConfigData *OpenConfig (STRPTR Filename);
void               CloseConfig(struct ConfigData *Config);
int                WriteConfig(struct ConfigData *Config);

void ModifyConfig      (struct ConfigData *Config, STRPTR Section, STRPTR Item, STRPTR Data);
void ModifyConfigNumber(struct ConfigData *Config, STRPTR Section, STRPTR Item, LONG Data);
int  ReadConfig        (struct ConfigData *Config, STRPTR Section, STRPTR Item, STRPTR Buffer, LONG Bufsize, STRPTR Def);
LONG ReadConfigNumber  (struct ConfigData *Config, STRPTR Section, STRPTR Item, LONG Def);
void DeleteSection     (struct ConfigData *Config, STRPTR Section);

#define FILENAMELEN 200

struct ConfigData
{
   struct List *Cfglist;
   TEXT Filename[FILENAMELEN];
   BOOL Failed;
};


#define ISSECTION(Str) ((Str)[0] == '[' && (Str)[strlen(Str) - 1] == ']')

#define BUFFERSIZE 256

#define CFG_WRITE_SUCCESS 1
#define CFG_WRITE_FAIL    0

#define CFG_READ_SUCCESS  1
#define CFG_READ_FAIL     0

