summaryrefslogtreecommitdiff
path: root/json-glib/json-path.c
diff options
context:
space:
mode:
authorbi <bisnard@antidot.net>2013-05-15 16:19:55 +0200
committerEmmanuele Bassi <ebassi@gnome.org>2013-12-02 11:18:47 +0000
commite4a054484774fd0849ca18617b6e20d15964fdd8 (patch)
tree60a68b28313c6c86d27b95abc948caa0944ec0f8 /json-glib/json-path.c
parentb5570400cbd95f46373dfce2877c6599802bec21 (diff)
downloadjson-glib-e4a054484774fd0849ca18617b6e20d15964fdd8.tar.gz
path: compile and query path '$' to retrieve root node
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
Diffstat (limited to 'json-glib/json-path.c')
-rw-r--r--json-glib/json-path.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/json-glib/json-path.c b/json-glib/json-path.c
index 6199f51..e59a285 100644
--- a/json-glib/json-path.c
+++ b/json-glib/json-path.c
@@ -439,7 +439,7 @@ json_path_compile (JsonPath *path,
return FALSE;
}
- if (!(*(p + 1) == '.' || *(p + 1) == '['))
+ if (!(*(p + 1) == '.' || *(p + 1) == '[' || *(p + 1) == '\0'))
{
/* translators: the %c is the invalid character */
g_set_error (error, JSON_PATH_ERROR,
@@ -741,7 +741,10 @@ walk_path_node (GList *path,
switch (node->node_type)
{
case JSON_PATH_NODE_ROOT:
- walk_path_node (path->next, root, results);
+ if (path->next != NULL)
+ walk_path_node (path->next, root, results);
+ else
+ json_array_add_element (results, json_node_copy (root));
break;
case JSON_PATH_NODE_CHILD_MEMBER: