summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--json-glib/json-parser.c12
-rw-r--r--tests/test-02.c1
2 files changed, 12 insertions, 1 deletions
diff --git a/json-glib/json-parser.c b/json-glib/json-parser.c
index 5df7999..1f73c45 100644
--- a/json-glib/json-parser.c
+++ b/json-glib/json-parser.c
@@ -773,7 +773,17 @@ json_parse_statement (JsonParser *parser,
priv->has_assignment = TRUE;
priv->variable_name = name;
- return json_parse_statement (parser, scanner);
+ token = json_parse_statement (parser, scanner);
+
+ /* remove the trailing semi-colon */
+ next_token = g_scanner_peek_next_token (scanner);
+ if (next_token == ';')
+ {
+ token = g_scanner_get_next_token (scanner);
+ return G_TOKEN_NONE;
+ }
+
+ return token;
}
break;
diff --git a/tests/test-02.c b/tests/test-02.c
index b5fb7a8..46938ef 100644
--- a/tests/test-02.c
+++ b/tests/test-02.c
@@ -14,6 +14,7 @@ static const gchar *test_arrays[] = {
"[ true, { } ]",
"[ false, { \"test\" : 42 } ]",
"var test = [ false, false, true ]",
+ "var test = [ true, 42 ];",
};
static guint n_test_arrays = G_N_ELEMENTS (test_arrays);