diff --git a/libtransmission/JSON_parser.c b/libtransmission/JSON_parser.c index a94efa33b..8e2035000 100644 --- a/libtransmission/JSON_parser.c +++ b/libtransmission/JSON_parser.c @@ -500,7 +500,7 @@ static int parse_parse_buffer(JSON_parser jc) break; case JSON_T_INTEGER: arg = &value; - sscanf(jc->parse_buffer, JSON_PARSER_INTEGER_SSCANF_TOKEN, &value.vu.integer_value); + value.vu.integer_value = evutil_strtoll( jc->parse_buffer, NULL, 10 ); break; case JSON_T_STRING: arg = &value; diff --git a/libtransmission/JSON_parser.h b/libtransmission/JSON_parser.h index cb2a82bc3..32b405de8 100644 --- a/libtransmission/JSON_parser.h +++ b/libtransmission/JSON_parser.h @@ -18,15 +18,8 @@ #endif /* Determine the integer type use to parse non-floating point numbers */ -#if __STDC_VERSION__ >= 199901L || HAVE_LONG_LONG == 1 -typedef long long JSON_int_t; -#define JSON_PARSER_INTEGER_SSCANF_TOKEN "%lld" -#define JSON_PARSER_INTEGER_SPRINTF_TOKEN "%lld" -#else -typedef long JSON_int_t; -#define JSON_PARSER_INTEGER_SSCANF_TOKEN "%ld" -#define JSON_PARSER_INTEGER_SPRINTF_TOKEN "%ld" -#endif +#include +typedef ev_int64_t JSON_int_t; #ifdef __cplusplus