summaryrefslogtreecommitdiff
path: root/json-glib/json-parser.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@openedhand.com>2007-11-10 15:12:20 +0000
committerEmmanuele Bassi <ebassi@openedhand.com>2007-11-10 15:12:20 +0000
commit1f9b3e50282f8aa4a421c83ad596f6186ef82ec9 (patch)
tree8ffd674f2f6dddf892eecf80ef93627551237881 /json-glib/json-parser.c
parent261d05a4cdcc1f64824615cdc81b4b467d0a5f57 (diff)
downloadjson-glib-1f9b3e50282f8aa4a421c83ad596f6186ef82ec9.tar.gz
When parsing a full assignment, also swallow any trailing semi-colon
There's no end to web developers insanity when they can twist and turn a perfectly simple and elegant notation into something that allows lazyness and breakage.
Diffstat (limited to 'json-glib/json-parser.c')
-rw-r--r--json-glib/json-parser.c12
1 files changed, 11 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;