blob: 89eb5533d4af515781d1c90230c1cc4dadf03f6a [file] [log] [blame]
/* Example: parse a simple configuration file */
#include <stdio.h>
#include <string.h>
#include "ini.h"
typedef struct
{
int version;
const char* name;
const char* email;
} configuration;
static int handler(void* user, const char* section, const char* name, const char* value)
{
configuration* pconfig = (configuration*)user;
#define MATCH(s, n) stricmp(section, s) == 0 && stricmp(name, n) == 0
if (MATCH("protocol", "version")) {
pconfig->version = atoi(value);
} else if (MATCH("user", "name")) {
pconfig->name = strdup(value);
} else if (MATCH("user", "email")) {
pconfig->email = strdup(value);
}
}
int main(int argc, char* argv[])
{
configuration config;
if (ini_parse("test.ini", handler, &config) < 0) {
printf("Can't load 'test.ini'\n");
return 1;
}
printf("Config loaded from 'test.ini': version=%d, name=%s, email=%s\n",
config.version, config.name, config.email);
return 0;
}