changeset 14171:ddf160d82971 v8.1.0103

patch 8.1.0103: long version string cannot be translated commit https://github.com/vim/vim/commit/35fb6fbf727c72eb5987a1556bbba26dca14cc48 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jun 23 16:12:21 2018 +0200 patch 8.1.0103: long version string cannot be translated Problem: Long version string cannot be translated. Solution: Build the string in init_longVersion().
author Christian Brabandt <cb@256bit.org>
date Sat, 23 Jun 2018 16:15:05 +0200
parents 9d021144571c
children f049f9ba9b61
files src/globals.h src/main.c src/proto/version.pro src/version.c src/version.h
diffstat 5 files changed, 31 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/globals.h
+++ b/src/globals.h
@@ -1131,12 +1131,12 @@ EXTERN char_u	tolower_tab[256];	/* table
 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
 
 /*
--- 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)
--- 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);
--- a/src/version.c
+++ b/src/version.c
@@ -37,7 +37,7 @@ char	longVersion[sizeof(VIM_VERSION_LONG
 						      + 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
--- 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"