summaryrefslogtreecommitdiff
path: root/mnv/src/version.h
blob: 1380bc06189774d0e3e258594fa1356f94763b68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/* vi:set ts=8 sts=4 sw=4 noet:
 *
 * MNV - MNV is not Vim		by Bram Moolenaar
 *
 * Do ":help uganda"  in MNV to read copying and usage conditions.
 * Do ":help credits" in MNV to see a list of people who contributed.
 */

/*
 * Define the version number, name, etc.
 * The patchlevel is in included_patches[], in version.c.
 */

// Trick to turn a number into a string.
#define MNV_TOSTR_(a)			#a
#define MNV_TOSTR(a)			MNV_TOSTR_(a)

// Values that change for a new release.
#define MNV_VERSION_MAJOR		10
#define MNV_VERSION_MINOR		0
#define MNV_VERSION_BUILD		287
#define MNV_VERSION_BUILD_BCD		0x11f
#define MNV_VERSION_DATE_ONLY		"2026 Apr 3"

// Values based on the above
#define MNV_VERSION_MAJOR_STR		MNV_TOSTR(MNV_VERSION_MAJOR)
#define MNV_VERSION_MINOR_STR		MNV_TOSTR(MNV_VERSION_MINOR)
#define MNV_VERSION_100	    (MNV_VERSION_MAJOR * 100 + MNV_VERSION_MINOR)

#define MNV_VERSION_BUILD_STR		MNV_TOSTR(MNV_VERSION_BUILD)
#ifndef MNV_VERSION_PATCHLEVEL
# define MNV_VERSION_PATCHLEVEL		0
#endif

// Patchlevel with leading zeros
// For compatibility with the installer from "mnv-win32-installer" and WinGet.
// For details see https://github.com/Project-Tick/Project-Tick-win32-installer/pull/277
// and https://github.com/Project-Tick/Project-Tick-win32-installer/pull/285
#if MNV_VERSION_PATCHLEVEL < 10
# define LEADZERO(x) 000 ## x
#elif MNV_VERSION_PATCHLEVEL < 100
# define LEADZERO(x) 00 ## x
#elif MNV_VERSION_PATCHLEVEL < 1000
# define LEADZERO(x) 0 ## x
#else
# define LEADZERO(x) x
#endif

#define MNV_VERSION_PATCHLEVEL_STR	MNV_TOSTR(LEADZERO(MNV_VERSION_PATCHLEVEL))
// Used by MacOS port; should be one of: development, alpha, beta, final
#define MNV_VERSION_RELEASE		final

/*
 * MNV_VERSION_NODOT is used for the runtime directory name.
 * MNV_VERSION_SHORT is copied into the swap file (max. length is 6 chars).
 * MNV_VERSION_MEDIUM is used for the startup-screen.
 * MNV_VERSION_LONG is used for the ":version" command and "MNV -h".
 */
#define MNV_VERSION_NODOT     "mnv" MNV_VERSION_MAJOR_STR MNV_VERSION_MINOR_STR
#define MNV_VERSION_SHORT     MNV_VERSION_MAJOR_STR "." MNV_VERSION_MINOR_STR
#define MNV_VERSION_MEDIUM    MNV_VERSION_SHORT
#define MNV_VERSION_LONG_ONLY "MNV - MNV is not Vim " MNV_VERSION_MEDIUM
#define MNV_VERSION_LONG_HEAD MNV_VERSION_LONG_ONLY " (" MNV_VERSION_DATE_ONLY
#define MNV_VERSION_LONG      MNV_VERSION_LONG_HEAD ")"
#define MNV_VERSION_LONG_DATE MNV_VERSION_LONG_HEAD ", compiled "