return n;
}
-struct json_node *json_parse(const char *json_str, const char **errmsg)
+struct json_node *json_parse2(const char *json_str, const char **errmsg,
+ size_t *pos)
{
json_parser_t p = json_parser_create();
struct json_node *n = 0;
n = json_parser_parse(p, json_str);
if (!n && errmsg)
*errmsg = json_parser_get_errmsg(p);
+ if (pos)
+ *pos = json_parser_get_position(p);
json_parser_destroy(p);
}
return n;
}
+struct json_node *json_parse(const char *json_str, const char **errmsg)
+{
+ return json_parse2(json_str, errmsg, 0);
+}
+
void json_write_wrbuf(struct json_node *node, WRBUF result)
{
switch (node->type)
return p->err_msg;
}
+size_t json_parser_get_position(json_parser_t p)
+{
+ return p->cp - p->buf;
+}
+
/*
* Local variables:
* c-basic-offset: 4