summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-06-23 16:12:21 +0200
committerBram Moolenaar <Bram@vim.org>2018-06-23 16:12:21 +0200
commit35fb6fbf727c72eb5987a1556bbba26dca14cc48 (patch)
treedc874650af03f9472bfe15485c163271207bdcd1
parent1f8c469fe22adf7b42843c3abf118ed339e6da0e (diff)
downloadvim-35fb6fbf727c72eb5987a1556bbba26dca14cc48.zip
patch 8.1.0103: long version string cannot be translated
Problem: Long version string cannot be translated. Solution: Build the string in init_longVersion().
-rw-r--r--src/globals.h4
-rw-r--r--src/main.c6
-rw-r--r--src/proto/version.pro2
-rw-r--r--src/version.c24
-rw-r--r--src/version.h6
5 files changed, 31 insertions, 11 deletions
diff --git a/src/globals.h b/src/globals.h
index 875085959..0bb7de5ca 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1131,12 +1131,12 @@ EXTERN char_u tolower_tab[256]; /* table for tolower() */
EXTERN char breakat_flags[256]; /* which characters are in 'breakat' */
#endif
-/* these are in version.c */
+/* These are in version.c, call init_longVersion() before use. */
extern char *Version;
#if defined(HAVE_DATE_TIME) && defined(VMS) && defined(VAXC)
extern char longVersion[];
#else
-extern char *longVersion;
+EXTERN char *longVersion;
#endif
/*
diff --git a/src/main.c b/src/main.c
index 66b67b826..8a598c5e8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -940,10 +940,6 @@ common_init(mparm_T *paramp)
/* Init the table of Normal mode commands. */
init_normal_cmds();
-#if defined(HAVE_DATE_TIME) && defined(VMS) && defined(VAXC)
- make_version(); /* Construct the long version string. */
-#endif
-
/*
* Allocate space for the generic buffers (needed for set_init_1() and
* EMSG2()).
@@ -3215,6 +3211,7 @@ mainerr(
reset_signals(); /* kill us with CTRL-C here, if you like */
#endif
+ init_longVersion();
mch_errmsg(longVersion);
mch_errmsg("\n");
mch_errmsg(_(main_errors[n]));
@@ -3268,6 +3265,7 @@ usage(void)
reset_signals(); /* kill us with CTRL-C here, if you like */
#endif
+ init_longVersion();
mch_msg(longVersion);
mch_msg(_("\n\nUsage:"));
for (i = 0; ; ++i)
diff --git a/src/proto/version.pro b/src/proto/version.pro
index cd44e8b88..813977237 100644
--- a/src/proto/version.pro
+++ b/src/proto/version.pro
@@ -1,5 +1,5 @@
/* version.c */
-void make_version(void);
+void init_longVersion(void);
int highest_patch(void);
int has_patch(int n);
void ex_version(exarg_T *eap);
diff --git a/src/version.c b/src/version.c
index a38cdda3a..45f339bc9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -37,7 +37,7 @@ char longVersion[sizeof(VIM_VERSION_LONG_DATE) + sizeof(__DATE__)
+ sizeof(__TIME__) + 3];
void
-make_version(void)
+init_longVersion(void)
{
/*
* Construct the long version string. Necessary because
@@ -49,8 +49,25 @@ make_version(void)
strcat(longVersion, __TIME__);
strcat(longVersion, ")");
}
+
# else
-char *longVersion = VIM_VERSION_LONG_DATE __DATE__ " " __TIME__ ")";
+ void
+init_longVersion(void)
+{
+ char *date_time = __DATE__ " " __TIME__;
+ char *msg = _("%s (%s, compiled %s)");
+ size_t len = strlen(msg)
+ + strlen(VIM_VERSION_LONG_ONLY)
+ + strlen(VIM_VERSION_DATE_ONLY)
+ + strlen(date_time);
+
+ longVersion = (char *)alloc(len);
+ if (longVersion == NULL)
+ longVersion = VIM_VERSION_LONG;
+ else
+ vim_snprintf(longVersion, len, msg,
+ VIM_VERSION_LONG_ONLY, VIM_VERSION_DATE_ONLY, date_time);
+}
# endif
#else
char *longVersion = VIM_VERSION_LONG;
@@ -762,6 +779,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 103,
+/**/
102,
/**/
101,
@@ -1148,6 +1167,7 @@ list_version(void)
* When adding features here, don't forget to update the list of
* internal variables in eval.c!
*/
+ init_longVersion();
MSG(longVersion);
#ifdef WIN3264
# ifdef FEAT_GUI_W32
diff --git a/src/version.h b/src/version.h
index d3e575d95..b94ab7e01 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,7 @@
#define VIM_VERSION_NODOT "vim81"
#define VIM_VERSION_SHORT "8.1"
#define VIM_VERSION_MEDIUM "8.1"
-#define VIM_VERSION_LONG "VIM - Vi IMproved 8.1 (2018 May 17)"
-#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 8.1 (2018 May 17, compiled "
+#define VIM_VERSION_LONG "VIM - Vi IMproved 8.1 (2018 May 18)"
+#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 8.1 (2018 May 18, compiled "
+#define VIM_VERSION_LONG_ONLY "VIM - Vi IMproved 8.1"
+#define VIM_VERSION_DATE_ONLY "2018 May 18"