From: Bram Moolenaar Date: Sat, 14 Dec 2019 16:24:53 +0000 (+0100) Subject: patch 8.2.0005: duplication in version info X-Git-Tag: v8.2.0005 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=502122565665674d914a1feeb15ac4a0bb0c8723;p=vim patch 8.2.0005: duplication in version info Problem: Duplication in version info. Solution: Use preprocessor string concatenation. (Ken Takata, closes #5357) --- diff --git a/src/version.c b/src/version.c index c979eeb9d..cddf7704b 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 5, /**/ 4, /**/ diff --git a/src/version.h b/src/version.h index bdd6a15c2..0a9ac4d8f 100644 --- 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" -#define VIM_VERSION_100 (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR) +// Trick to turn a number into a string. +#define VIM_TOSTR_(a) #a +#define VIM_TOSTR(a) VIM_TOSTR_(a) -#define VIM_VERSION_BUILD 283 +// 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_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_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_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 "