aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/parcini.c6
-rw-r--r--src/tests/parcini.c11
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);