diff options
author | Emmanuele Bassi <ebassi@openedhand.com> | 2007-11-10 15:12:20 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@openedhand.com> | 2007-11-10 15:12:20 +0000 |
commit | 1f9b3e50282f8aa4a421c83ad596f6186ef82ec9 (patch) | |
tree | 8ffd674f2f6dddf892eecf80ef93627551237881 /json-glib/json-parser.c | |
parent | 261d05a4cdcc1f64824615cdc81b4b467d0a5f57 (diff) | |
download | json-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.c | 12 |
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; |