path: root/json-parser.c
diff options
authorRoy Tam <roytam@gmail.com>2010-02-04 10:30:30 +0800
committerAnthony Liguori <aliguori@us.ibm.com>2010-02-10 12:47:58 -0600
commit2c0d4b36e7fe28c569c5436f7724735e35d3c493 (patch)
tree597ed7dadc4c0789c34ceecc1020d6dd567242c5 /json-parser.c
parent2198a62eb2518b61c3fc7db26515f106e7498932 (diff)
json: fix PRId64 on Win32
OK we are fooled by the json lexer and parser. As we use %I64d to print 'long long' variables in Win32, but lexer and parser only deal with %lld but not %I64d, this patch add support for %I64d and solve 'info pci', 'powser_reset' and 'power_powerdown' assert failure in Win32. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'json-parser.c')
1 files changed, 2 insertions, 1 deletions
diff --git a/json-parser.c b/json-parser.c
index e04932f90..f3debcb6e 100644
--- a/json-parser.c
+++ b/json-parser.c
@@ -474,7 +474,8 @@ static QObject *parse_escape(JSONParserContext *ctxt, QList **tokens, va_list *a
obj = QOBJECT(qint_from_int(va_arg(*ap, int)));
} else if (token_is_escape(token, "%ld")) {
obj = QOBJECT(qint_from_int(va_arg(*ap, long)));
- } else if (token_is_escape(token, "%lld")) {
+ } else if (token_is_escape(token, "%lld") ||
+ token_is_escape(token, "%I64d")) {
obj = QOBJECT(qint_from_int(va_arg(*ap, long long)));
} else if (token_is_escape(token, "%s")) {
obj = QOBJECT(qstring_from_str(va_arg(*ap, const char *)));