# HG changeset patch # User Bram Moolenaar # Date 1576341003 -3600 # Node ID 75e1ff65588e00e8616f6db1e5c06cd7bc866eb6 # Parent baaf93278d7d506391d42fc75c8404fa622e2ccf patch 8.2.0005: duplication in version info Commit: https://github.com/vim/vim/commit/502122565665674d914a1feeb15ac4a0bb0c8723 Author: Bram Moolenaar 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) diff --git a/src/version.c b/src/version.c --- 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, diff --git a/src/version.h b/src/version.h --- 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 "