| #include <stdio.h> |
| |
| #define INI_MAX_LINE 200 |
| |
| typedef char* (*ini_reader)(char* str, int num, void* stream); |
| |
| int ini_parse(const char* filename); |
| |
| static int ini_parse_stream(ini_reader reader, void* stream) |
| { |
| char line[INI_MAX_LINE]; |
| int max_line = INI_MAX_LINE; |
| while (reader(line, max_line, stream) != NULL) |
| ; |
| return 0; |
| } |
| |
| static int ini_parse_file(FILE* file) |
| { |
| return ini_parse_stream((ini_reader)fgets, file); |
| } |
| |
| int ini_parse(const char* filename) |
| { |
| FILE* file; |
| int error; |
| |
| file = fopen(filename, "r"); |
| if (!file) |
| return -1; |
| error = ini_parse_file(file); |
| fclose(file); |
| return error; |
| } |