mirror of
https://github.com/LBRYFoundation/pool.git
synced 2025-08-23 17:37:25 +00:00
104 lines
2.3 KiB
C
104 lines
2.3 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
|
|
#include "iniparser.h"
|
|
|
|
void create_example_ini_file(void);
|
|
int parse_ini_file(char * ini_name);
|
|
|
|
int main(int argc, char * argv[])
|
|
{
|
|
int status ;
|
|
|
|
if (argc<2) {
|
|
create_example_ini_file();
|
|
status = parse_ini_file("example.ini");
|
|
} else {
|
|
status = parse_ini_file(argv[1]);
|
|
}
|
|
return status ;
|
|
}
|
|
|
|
void create_example_ini_file(void)
|
|
{
|
|
FILE * ini ;
|
|
|
|
if ((ini=fopen("example.ini", "w"))==NULL) {
|
|
fprintf(stderr, "iniparser: cannot create example.ini\n");
|
|
return ;
|
|
}
|
|
|
|
fprintf(ini,
|
|
"#\n"
|
|
"# This is an example of ini file\n"
|
|
"#\n"
|
|
"\n"
|
|
"[Pizza]\n"
|
|
"\n"
|
|
"Ham = yes ;\n"
|
|
"Mushrooms = TRUE ;\n"
|
|
"Capres = 0 ;\n"
|
|
"Cheese = Non ;\n"
|
|
"\n"
|
|
"\n"
|
|
"[Wine]\n"
|
|
"\n"
|
|
"Grape = Cabernet Sauvignon ;\n"
|
|
"Year = 1989 ;\n"
|
|
"Country = Spain ;\n"
|
|
"Alcohol = 12.5 ;\n"
|
|
"\n");
|
|
fclose(ini);
|
|
}
|
|
|
|
|
|
int parse_ini_file(char * ini_name)
|
|
{
|
|
dictionary * ini ;
|
|
|
|
/* Some temporary variables to hold query results */
|
|
int b ;
|
|
int i ;
|
|
double d ;
|
|
const char * s ;
|
|
|
|
ini = iniparser_load(ini_name);
|
|
if (ini==NULL) {
|
|
fprintf(stderr, "cannot parse file: %s\n", ini_name);
|
|
return -1 ;
|
|
}
|
|
iniparser_dump(ini, stderr);
|
|
|
|
/* Get pizza attributes */
|
|
printf("Pizza:\n");
|
|
|
|
b = iniparser_getboolean(ini, "pizza:ham", -1);
|
|
printf("Ham: [%d]\n", b);
|
|
b = iniparser_getboolean(ini, "pizza:mushrooms", -1);
|
|
printf("Mushrooms: [%d]\n", b);
|
|
b = iniparser_getboolean(ini, "pizza:capres", -1);
|
|
printf("Capres: [%d]\n", b);
|
|
b = iniparser_getboolean(ini, "pizza:cheese", -1);
|
|
printf("Cheese: [%d]\n", b);
|
|
|
|
/* Get wine attributes */
|
|
printf("Wine:\n");
|
|
s = iniparser_getstring(ini, "wine:grape", NULL);
|
|
printf("Grape: [%s]\n", s ? s : "UNDEF");
|
|
|
|
i = iniparser_getint(ini, "wine:year", -1);
|
|
printf("Year: [%d]\n", i);
|
|
|
|
s = iniparser_getstring(ini, "wine:country", NULL);
|
|
printf("Country: [%s]\n", s ? s : "UNDEF");
|
|
|
|
d = iniparser_getdouble(ini, "wine:alcohol", -1.0);
|
|
printf("Alcohol: [%g]\n", d);
|
|
|
|
iniparser_freedict(ini);
|
|
return 0 ;
|
|
}
|
|
|
|
|