1
0
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:
Bram Moolenaar
2016-07-01 18:17:26 +02:00
parent 8767f52fbf
commit 22fcfad292
23 changed files with 384 additions and 227 deletions

View File

@@ -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 */