From db2db951c39154dc7256efeb55bff4c6a4202dd6 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Wed, 23 Oct 2019 22:08:07 +1100 Subject: [PATCH] Only allow minus at the begining of json numbers --- src/json_ui.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/json_ui.cc b/src/json_ui.cc index a0294f3e..f4f39b84 100644 --- a/src/json_ui.cc +++ b/src/json_ui.cc @@ -257,7 +257,7 @@ void JsonUI::set_on_key(OnKeyCallback callback) using JsonArray = Vector; using JsonObject = HashMap; -static bool is_digit_or_minus(char c) { return (c >= '0' and c <= '9') or c == '-'; } +static bool is_digit(char c) { return c >= '0' and c <= '9'; } struct JsonResult { Value value; const char* new_pos; }; @@ -266,10 +266,10 @@ JsonResult parse_json(const char* pos, const char* end) if (not skip_while(pos, end, is_blank)) return {}; - if (is_digit_or_minus(*pos)) + if (is_digit(*pos) or *pos == '-') { - auto digit_end = pos; - skip_while(digit_end, end, is_digit_or_minus); + auto digit_end = pos + 1; + skip_while(digit_end, end, is_digit); return { Value{str_to_int({pos, digit_end})}, digit_end }; } if (end - pos > 4 and StringView{pos, pos+4} == "true")