Skip to content

Commit 35fb6fb

Browse files
committed
patch 8.1.0103: long version string cannot be translated
Problem: Long version string cannot be translated. Solution: Build the string in init_longVersion().
1 parent 1f8c469 commit 35fb6fb

File tree

5 files changed

+31
-11
lines changed

5 files changed

+31
-11
lines changed

src/globals.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,12 +1131,12 @@ EXTERN char_u tolower_tab[256]; /* table for tolower() */
11311131
EXTERN char breakat_flags[256]; /* which characters are in 'breakat' */
11321132
#endif
11331133

1134-
/* these are in version.c */
1134+
/* These are in version.c, call init_longVersion() before use. */
11351135
extern char *Version;
11361136
#if defined(HAVE_DATE_TIME) && defined(VMS) && defined(VAXC)
11371137
extern char longVersion[];
11381138
#else
1139-
extern char *longVersion;
1139+
EXTERN char *longVersion;
11401140
#endif
11411141

11421142
/*

src/main.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -940,10 +940,6 @@ common_init(mparm_T *paramp)
940940
/* Init the table of Normal mode commands. */
941941
init_normal_cmds();
942942

943-
#if defined(HAVE_DATE_TIME) && defined(VMS) && defined(VAXC)
944-
make_version(); /* Construct the long version string. */
945-
#endif
946-
947943
/*
948944
* Allocate space for the generic buffers (needed for set_init_1() and
949945
* EMSG2()).
@@ -3215,6 +3211,7 @@ mainerr(
32153211
reset_signals(); /* kill us with CTRL-C here, if you like */
32163212
#endif
32173213

3214+
init_longVersion();
32183215
mch_errmsg(longVersion);
32193216
mch_errmsg("\n");
32203217
mch_errmsg(_(main_errors[n]));
@@ -3268,6 +3265,7 @@ usage(void)
32683265
reset_signals(); /* kill us with CTRL-C here, if you like */
32693266
#endif
32703267

3268+
init_longVersion();
32713269
mch_msg(longVersion);
32723270
mch_msg(_("\n\nUsage:"));
32733271
for (i = 0; ; ++i)

src/proto/version.pro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* version.c */
2-
void make_version(void);
2+
void init_longVersion(void);
33
int highest_patch(void);
44
int has_patch(int n);
55
void ex_version(exarg_T *eap);

src/version.c

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ char longVersion[sizeof(VIM_VERSION_LONG_DATE) + sizeof(__DATE__)
3737
+ sizeof(__TIME__) + 3];
3838

3939
void
40-
make_version(void)
40+
init_longVersion(void)
4141
{
4242
/*
4343
* Construct the long version string. Necessary because
@@ -49,8 +49,25 @@ make_version(void)
4949
strcat(longVersion, __TIME__);
5050
strcat(longVersion, ")");
5151
}
52+
5253
# else
53-
char *longVersion = VIM_VERSION_LONG_DATE __DATE__ " " __TIME__ ")";
54+
void
55+
init_longVersion(void)
56+
{
57+
char *date_time = __DATE__ " " __TIME__;
58+
char *msg = _("%s (%s, compiled %s)");
59+
size_t len = strlen(msg)
60+
+ strlen(VIM_VERSION_LONG_ONLY)
61+
+ strlen(VIM_VERSION_DATE_ONLY)
62+
+ strlen(date_time);
63+
64+
longVersion = (char *)alloc(len);
65+
if (longVersion == NULL)
66+
longVersion = VIM_VERSION_LONG;
67+
else
68+
vim_snprintf(longVersion, len, msg,
69+
VIM_VERSION_LONG_ONLY, VIM_VERSION_DATE_ONLY, date_time);
70+
}
5471
# endif
5572
#else
5673
char *longVersion = VIM_VERSION_LONG;
@@ -761,6 +778,8 @@ static char *(features[]) =
761778

762779
static int included_patches[] =
763780
{ /* Add new patch number below this line */
781+
/**/
782+
103,
764783
/**/
765784
102,
766785
/**/
@@ -1148,6 +1167,7 @@ list_version(void)
11481167
* When adding features here, don't forget to update the list of
11491168
* internal variables in eval.c!
11501169
*/
1170+
init_longVersion();
11511171
MSG(longVersion);
11521172
#ifdef WIN3264
11531173
# ifdef FEAT_GUI_W32

src/version.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,7 @@
3636
#define VIM_VERSION_NODOT "vim81"
3737
#define VIM_VERSION_SHORT "8.1"
3838
#define VIM_VERSION_MEDIUM "8.1"
39-
#define VIM_VERSION_LONG "VIM - Vi IMproved 8.1 (2018 May 17)"
40-
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 8.1 (2018 May 17, compiled "
39+
#define VIM_VERSION_LONG "VIM - Vi IMproved 8.1 (2018 May 18)"
40+
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 8.1 (2018 May 18, compiled "
41+
#define VIM_VERSION_LONG_ONLY "VIM - Vi IMproved 8.1"
42+
#define VIM_VERSION_DATE_ONLY "2018 May 18"

0 commit comments

Comments
 (0)