changeset 18888:75e1ff65588e v8.2.0005

patch 8.2.0005: duplication in version info Commit: https://github.com/vim/vim/commit/502122565665674d914a1feeb15ac4a0bb0c8723 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Dec 14 17:24:53 2019 +0100 patch 8.2.0005: duplication in version info Problem: Duplication in version info. Solution: Use preprocessor string concatenation. (Ken Takata, closes https://github.com/vim/vim/issues/5357)
author Bram Moolenaar <Bram@vim.org>
date Sat, 14 Dec 2019 17:30:03 +0100
parents baaf93278d7d
children c4bf9e3b7dd7
files src/version.c src/version.h
diffstat 2 files changed, 29 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    5,
+/**/
     4,
 /**/
     3,
--- a/src/version.h
+++ b/src/version.h
@@ -9,22 +9,30 @@
 /*
  * Define the version number, name, etc.
  * The patchlevel is in included_patches[], in version.c.
- *
- * This doesn't use string concatenation, some compilers don't support it.
  */
 
-#define VIM_VERSION_MAJOR		 8
-#define VIM_VERSION_MAJOR_STR		"8"
-#define VIM_VERSION_MINOR		 2
-#define VIM_VERSION_MINOR_STR		"2"
+// Trick to turn a number into a string.
+#define VIM_TOSTR_(a)			#a
+#define VIM_TOSTR(a)			VIM_TOSTR_(a)
+
+// Values that change for a new release.
+#define VIM_VERSION_MAJOR		8
+#define VIM_VERSION_MINOR		2
+#define VIM_VERSION_BUILD		283
+#define VIM_VERSION_BUILD_BCD		0x11b
+#define VIM_VERSION_DATE_ONLY		"2019 Dec 12"
+
+// Values based on the above
+#define VIM_VERSION_MAJOR_STR		VIM_TOSTR(VIM_VERSION_MAJOR)
+#define VIM_VERSION_MINOR_STR		VIM_TOSTR(VIM_VERSION_MINOR)
 #define VIM_VERSION_100	    (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR)
 
-#define VIM_VERSION_BUILD		 283
-#define VIM_VERSION_BUILD_BCD		0x11b
-#define VIM_VERSION_BUILD_STR		"283"
-#define VIM_VERSION_PATCHLEVEL		 0
-#define VIM_VERSION_PATCHLEVEL_STR	"0"
-// Used by MacOS port should be one of: development, alpha, beta, final
+#define VIM_VERSION_BUILD_STR		VIM_TOSTR(VIM_VERSION_BUILD)
+#ifndef VIM_VERSION_PATCHLEVEL
+# define VIM_VERSION_PATCHLEVEL		0
+#endif
+#define VIM_VERSION_PATCHLEVEL_STR	VIM_TOSTR(VIM_VERSION_PATCHLEVEL)
+// Used by MacOS port; should be one of: development, alpha, beta, final
 #define VIM_VERSION_RELEASE		final
 
 /*
@@ -33,10 +41,10 @@
  * VIM_VERSION_MEDIUM is used for the startup-screen.
  * VIM_VERSION_LONG is used for the ":version" command and "Vim -h".
  */
-#define VIM_VERSION_NODOT	"vim82"
-#define VIM_VERSION_SHORT	"8.2"
-#define VIM_VERSION_MEDIUM	"8.2"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 8.2 (2019 Dec 12)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 8.2 (2019 Dec 12, compiled "
-#define VIM_VERSION_LONG_ONLY	"VIM - Vi IMproved 8.2"
-#define VIM_VERSION_DATE_ONLY	"2019 Dec 12"
+#define VIM_VERSION_NODOT     "vim" VIM_VERSION_MAJOR_STR VIM_VERSION_MINOR_STR
+#define VIM_VERSION_SHORT     VIM_VERSION_MAJOR_STR "." VIM_VERSION_MINOR_STR
+#define VIM_VERSION_MEDIUM    VIM_VERSION_SHORT
+#define VIM_VERSION_LONG_ONLY "VIM - Vi IMproved " VIM_VERSION_MEDIUM
+#define VIM_VERSION_LONG_HEAD VIM_VERSION_LONG_ONLY " (" VIM_VERSION_DATE_ONLY
+#define VIM_VERSION_LONG      VIM_VERSION_LONG_HEAD ")"
+#define VIM_VERSION_LONG_DATE VIM_VERSION_LONG_HEAD ", compiled "