forked from aniani/vim
patch 7.4.1976
Problem: Number variables are not 64 bits while they could be. Solution: Add the num64 feature. (Ken Takata)
This commit is contained in:
12
src/json.c
12
src/json.c
@@ -201,8 +201,8 @@ json_encode_item(garray_T *gap, typval_T *val, int copyID, int options)
|
||||
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, typval_T *res)
|
||||
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, typval_T *res)
|
||||
&& (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, typval_T *res)
|
||||
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, typval_T *res, int options)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
long nr;
|
||||
varnumber_T nr;
|
||||
|
||||
vim_str2nr(reader->js_buf + reader->js_used,
|
||||
NULL, &len, 0, /* what */
|
||||
|
Reference in New Issue
Block a user