Revision 2c0d4b36

b/json-lexer.c
54 54
    IN_ESCAPE,
55 55
    IN_ESCAPE_L,
56 56
    IN_ESCAPE_LL,
57
    IN_ESCAPE_I,
58
    IN_ESCAPE_I6,
59
    IN_ESCAPE_I64,
57 60
    IN_ESCAPE_DONE,
58 61
    IN_WHITESPACE,
59 62
    IN_OPERATOR_DONE,
......
223 226
        ['l'] = IN_ESCAPE_LL,
224 227
    },
225 228

  
229
    [IN_ESCAPE_I64] = {
230
        ['d'] = IN_ESCAPE_DONE,
231
    },
232

  
233
    [IN_ESCAPE_I6] = {
234
        ['4'] = IN_ESCAPE_I64,
235
    },
236

  
237
    [IN_ESCAPE_I] = {
238
        ['6'] = IN_ESCAPE_I6,
239
    },
240

  
226 241
    [IN_ESCAPE] = {
227 242
        ['d'] = IN_ESCAPE_DONE,
228 243
        ['i'] = IN_ESCAPE_DONE,
......
230 245
        ['s'] = IN_ESCAPE_DONE,
231 246
        ['f'] = IN_ESCAPE_DONE,
232 247
        ['l'] = IN_ESCAPE_L,
248
        ['I'] = IN_ESCAPE_I,
233 249
    },
234 250

  
235 251
    /* top level rule */
b/json-parser.c
474 474
        obj = QOBJECT(qint_from_int(va_arg(*ap, int)));
475 475
    } else if (token_is_escape(token, "%ld")) {
476 476
        obj = QOBJECT(qint_from_int(va_arg(*ap, long)));
477
    } else if (token_is_escape(token, "%lld")) {
477
    } else if (token_is_escape(token, "%lld") ||
478
               token_is_escape(token, "%I64d")) {
478 479
        obj = QOBJECT(qint_from_int(va_arg(*ap, long long)));
479 480
    } else if (token_is_escape(token, "%s")) {
480 481
        obj = QOBJECT(qstring_from_str(va_arg(*ap, const char *)));

Also available in: Unified diff