Mercurial > vim
diff src/json.c @ 9389:32e34e574716 v7.4.1976
commit https://github.com/vim/vim/commit/22fcfad29276bd5f317faf516637dcd491b96a12
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Jul 1 18:17:26 2016 +0200
patch 7.4.1976
Problem: Number variables are not 64 bits while they could be.
Solution: Add the num64 feature. (Ken Takata)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 01 Jul 2016 18:30:07 +0200 |
parents | e600e696c0a1 |
children | 176e34b0d678 |
line wrap: on
line diff
--- a/src/json.c +++ b/src/json.c @@ -201,8 +201,8 @@ json_encode_item(garray_T *gap, typval_T break; case VAR_NUMBER: - vim_snprintf((char *)numbuf, NUMBUFLEN, "%ld", - (long)val->vval.v_number); + vim_snprintf((char *)numbuf, NUMBUFLEN, "%lld", + val->vval.v_number); ga_concat(gap, numbuf); break; @@ -538,7 +538,7 @@ json_decode_string(js_read_T *reader, ty int len; char_u *p; int c; - long nr; + varnumber_T nr; if (res != NULL) ga_init2(&ga, 1, 200); @@ -600,7 +600,7 @@ json_decode_string(js_read_T *reader, ty && (int)(reader->js_end - p) >= 6 && *p == '\\' && *(p+1) == 'u') { - long nr2 = 0; + varnumber_T nr2 = 0; /* decode surrogate pair: \ud812\u3456 */ len = 0; @@ -620,7 +620,7 @@ json_decode_string(js_read_T *reader, ty buf[utf_char2bytes((int)nr, buf)] = NUL; ga_concat(&ga, buf); #else - ga_append(&ga, nr); + ga_append(&ga, (int)nr); #endif } break; @@ -766,7 +766,7 @@ json_decode_item(js_read_T *reader, typv else #endif { - long nr; + varnumber_T nr; vim_str2nr(reader->js_buf + reader->js_used, NULL, &len, 0, /* what */