patch 7.4.1976
Problem: Number variables are not 64 bits while they could be.
Solution: Add the num64 feature. (Ken Takata)
diff --git a/src/json.c b/src/json.c
index aa168ec..89c2fd2 100644
--- a/src/json.c
+++ b/src/json.c
@@ -201,8 +201,8 @@
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 @@
int len;
char_u *p;
int c;
- long nr;
+ varnumber_T nr;
if (res != NULL)
ga_init2(&ga, 1, 200);
@@ -600,7 +600,7 @@
&& (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 @@
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 @@
else
#endif
{
- long nr;
+ varnumber_T nr;
vim_str2nr(reader->js_buf + reader->js_used,
NULL, &len, 0, /* what */