aboutsummaryrefslogtreecommitdiff
path: root/test/ini.c
blob: 49b39cc0c52a036d90e82851616e046463d646ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <string.h>
#include <stdio.h>

#define ANY_INI_IMPLEMENT
#define ANY_INI_DELIM_COMMENT2 '#'
#include "any_ini.h"

int main()
{
	const char *src =
		/* 1*/ "ciao = 10\n"
		/* 2*/ "global = yes\n"
		/* 3*/ "   complex  name with space   = value  with   space  \n\n"
		/* 5*/ "[sus]\n"
		/* 6*/ "nice = 1\n"
		/* 7*/ ";comment\n\n"
		/* 9*/ "another=10;x\n"
		/*10*/ "true=1   ;xx\n"
		/*11*/ " # comment 2 ;\n\n"
		/*13*/ "try = catch 123 bool\n"
		/*14*/ " k e y = value pair!   ; comment\n";

	any_ini_t ini;
	any_ini_init(&ini, src, strlen(src));

	char *section = "";
	do {
		printf("%ld: SECTION \"%s\"\n", ini.line, section);

		char *key, *value;
		while ((key = any_ini_next_key(&ini)) != NULL) {
			value = any_ini_next_value(&ini);
			printf("%ld: \"%s\" = \"%s\"\n", ini.line, key, value);
		}
	} while ((section = any_ini_next_section(&ini)) != NULL);

	return 0;
}