patch 8.2.0296: mixing up "long long" and __int64 may cause problems
Problem: Mixing up "long long" and __int64 may cause problems. (John
Marriott)
Solution: Pass varnumber_T to vim_snprintf(). Add v:numbersize.
diff --git a/src/vim.h b/src/vim.h
index 62cc46c..4d3ac36 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -328,16 +328,6 @@
typedef unsigned short short_u;
typedef unsigned int int_u;
-// Older systems do not have support for long long
-// use a typedef instead of hard-coded long long
-#ifdef HAVE_NO_LONG_LONG
- typedef long long_long_T;
- typedef long unsigned long_long_u_T;
-#else
- typedef long long long_long_T;
- typedef long long unsigned long_long_u_T;
-#endif
-
// Make sure long_u is big enough to hold a pointer.
// On Win64, longs are 32 bits and pointers are 64 bits.
// For printf() and scanf(), we need to take care of long_u specifically.
@@ -1975,31 +1965,32 @@
#define VV_ERRORS 67
#define VV_FALSE 68
#define VV_TRUE 69
-#define VV_NULL 70
-#define VV_NONE 71
-#define VV_VIM_DID_ENTER 72
-#define VV_TESTING 73
-#define VV_TYPE_NUMBER 74
-#define VV_TYPE_STRING 75
-#define VV_TYPE_FUNC 76
-#define VV_TYPE_LIST 77
-#define VV_TYPE_DICT 78
-#define VV_TYPE_FLOAT 79
-#define VV_TYPE_BOOL 80
-#define VV_TYPE_NONE 81
-#define VV_TYPE_JOB 82
-#define VV_TYPE_CHANNEL 83
-#define VV_TYPE_BLOB 84
-#define VV_TERMRFGRESP 85
-#define VV_TERMRBGRESP 86
-#define VV_TERMU7RESP 87
-#define VV_TERMSTYLERESP 88
-#define VV_TERMBLINKRESP 89
-#define VV_EVENT 90
-#define VV_VERSIONLONG 91
-#define VV_ECHOSPACE 92
-#define VV_ARGV 93
-#define VV_LEN 94 // number of v: vars
+#define VV_NONE 70
+#define VV_NULL 71
+#define VV_NUMBERSIZE 72
+#define VV_VIM_DID_ENTER 73
+#define VV_TESTING 74
+#define VV_TYPE_NUMBER 75
+#define VV_TYPE_STRING 76
+#define VV_TYPE_FUNC 77
+#define VV_TYPE_LIST 78
+#define VV_TYPE_DICT 79
+#define VV_TYPE_FLOAT 80
+#define VV_TYPE_BOOL 81
+#define VV_TYPE_NONE 82
+#define VV_TYPE_JOB 83
+#define VV_TYPE_CHANNEL 84
+#define VV_TYPE_BLOB 85
+#define VV_TERMRFGRESP 86
+#define VV_TERMRBGRESP 87
+#define VV_TERMU7RESP 88
+#define VV_TERMSTYLERESP 89
+#define VV_TERMBLINKRESP 90
+#define VV_EVENT 91
+#define VV_VERSIONLONG 92
+#define VV_ECHOSPACE 93
+#define VV_ARGV 94
+#define VV_LEN 95 // number of v: vars
// used for v_number in VAR_BOOL and VAR_SPECIAL
#define VVAL_FALSE 0L // VAR_BOOL