[common] add comment support to the ini parser

This commit is contained in:
Geoffrey McRae 2020-01-12 22:44:41 +11:00
parent 1aadf91901
commit 6aeafc6651
2 changed files with 13 additions and 1 deletions

View File

@ -1 +1 @@
B1-84-g7de030bb69+1 B1-85-g1aadf91901+1

View File

@ -367,6 +367,7 @@ bool option_load(const char * filename)
int lineno = 1; int lineno = 1;
char * module = NULL; char * module = NULL;
bool line = true; bool line = true;
bool comment = false;
bool expectLine = false; bool expectLine = false;
bool expectValue = false; bool expectValue = false;
char * name = NULL; char * name = NULL;
@ -379,6 +380,9 @@ bool option_load(const char * filename)
for(int c = fgetc(fp); !feof(fp); c = fgetc(fp)) for(int c = fgetc(fp); !feof(fp); c = fgetc(fp))
{ {
if (comment && c != '\n')
continue;
switch(c) switch(c)
{ {
case '[': case '[':
@ -477,6 +481,14 @@ bool option_load(const char * filename)
(*p)[(*len)++] = c; (*p)[(*len)++] = c;
break; break;
case ';':
if (line)
{
comment = true;
break;
}
// fallthrough
default: default:
if (expectLine) if (expectLine)
{ {