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