diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/parcini.c | 6 | ||||
| -rw-r--r-- | src/tests/parcini.c | 11 | 
2 files changed, 11 insertions, 6 deletions
| diff --git a/src/parcini.c b/src/parcini.c index 7fa8247..8434685 100644 --- a/src/parcini.c +++ b/src/parcini.c @@ -144,6 +144,9 @@ parcini_parse_next_line(parcini_t *parser, struct parcini_line *parsed)  		parsed->section = parser->last_section;  		char *delim = strchr(start, '='); +		if (start == delim) { +			return PARCINI_KEY_PARSE_ERROR; +		}  		if (delim) {  			char *cmnt = strchr(start, PARCINI_COMMENT_CHAR);  			if (cmnt && cmnt < delim) { @@ -153,9 +156,6 @@ parcini_parse_next_line(parcini_t *parser, struct parcini_line *parsed)  			*end = '\0';  			end -= 1;  			rstrip(start, &end); -			if (start == end) { -				return PARCINI_KEY_PARSE_ERROR; -			}  			parsed->key = start;  			start = delim + 1; diff --git a/src/tests/parcini.c b/src/tests/parcini.c index f53ab09..90d5997 100644 --- a/src/tests/parcini.c +++ b/src/tests/parcini.c @@ -35,7 +35,7 @@ test_parcini_parse_file(void)  	asserteq(res, PARCINI_KEYVALUE);  	asserteq(line.lineno, 3);  	asserteq(strcmp(line.section, ""), 0); -	asserteq(strcmp(line.key, "key3"), 0); +	asserteq(strcmp(line.key, "3"), 0);  	asserteq(line.value.type, PARCINI_VALUE_BOOLEAN);  	asserteq(line.value.value.boolean, false); @@ -115,14 +115,19 @@ test_parcini_parse_file(void)  	/* line 15 */  	res = parcini_parse_next_line(parser, &line); -	asserteq(res, PARCINI_EMPTY_LINE); +	asserteq(res, PARCINI_KEY_PARSE_ERROR);  	asserteq(line.lineno, 15);  	/* line 16 */  	res = parcini_parse_next_line(parser, &line); -	asserteq(res, PARCINI_SECTION_PARSE_ERROR); +	asserteq(res, PARCINI_EMPTY_LINE);  	asserteq(line.lineno, 16); +	/* line 17 */ +	res = parcini_parse_next_line(parser, &line); +	asserteq(res, PARCINI_SECTION_PARSE_ERROR); +	asserteq(line.lineno, 17); +  	/* EOF */  	res = parcini_parse_next_line(parser, &line);  	asserteq(res, PARCINI_EOF); | 
