struct ec_node gen;
};
-static struct ec_parsed *ec_node_space_parse(const struct ec_node *gen_node,
- const struct ec_strvec *strvec)
+static int
+ec_node_space_parse(const struct ec_node *gen_node,
+ struct ec_parsed *state,
+ const struct ec_strvec *strvec)
{
- struct ec_parsed *parsed = NULL;
- struct ec_strvec *match_strvec;
const char *str;
size_t len = 0;
- parsed = ec_parsed();
- if (parsed == NULL)
- goto fail;
+ (void)state;
+ (void)gen_node;
if (ec_strvec_len(strvec) == 0)
- return parsed;
+ return EC_PARSED_NOMATCH;
str = ec_strvec_val(strvec, 0);
while (isspace(str[len]))
len++;
if (len == 0 || len != strlen(str))
- return parsed;
+ return EC_PARSED_NOMATCH;
- match_strvec = ec_strvec_ndup(strvec, 0, 1);
- if (match_strvec == NULL)
- goto fail;
-
- ec_parsed_set_match(parsed, gen_node, match_strvec);
-
- return parsed;
-
- fail:
- ec_parsed_free(parsed);
- return NULL;
+ return 1;
}
static struct ec_node_type ec_node_space_type = {
EC_NODE_TYPE_REGISTER(ec_node_space_type);
+/* LCOV_EXCL_START */
static int ec_node_space_testcase(void)
{
struct ec_node *node;
ec_log(EC_LOG_ERR, "cannot create node\n");
return -1;
}
+ /* never completes whatever the input */
ret |= EC_TEST_CHECK_COMPLETE(node,
"", EC_NODE_ENDLIST,
- EC_NODE_ENDLIST,
- "");
+ EC_NODE_ENDLIST);
ret |= EC_TEST_CHECK_COMPLETE(node,
" ", EC_NODE_ENDLIST,
- EC_NODE_ENDLIST,
- "");
+ EC_NODE_ENDLIST);
ret |= EC_TEST_CHECK_COMPLETE(node,
"foo", EC_NODE_ENDLIST,
- EC_NODE_ENDLIST,
- "");
+ EC_NODE_ENDLIST);
ec_node_free(node);
return ret;
}
+/* LCOV_EXCL_STOP */
static struct ec_test ec_node_space_test = {
.name = "space",