# HG changeset patch # User Bram Moolenaar # Date 1541446208 -3600 # Node ID 9ae60773dd035818d2d378a7a2d5a14c93003557 # Parent 9401618259e943ab35b4f5aeccf9beccb1dff366 patch 8.1.0512: 'helplang' default is inconsistent for C and C.UTF-8 commit https://github.com/vim/vim/commit/389ab7122bec99c11ad4ce6d87cc6f38a21e4e40 Author: Bram Moolenaar Date: Mon Nov 5 20:25:52 2018 +0100 patch 8.1.0512: 'helplang' default is inconsistent for C and C.UTF-8 Problem: 'helplang' default is inconsistent for C and C.UTF-8. Solution: Don't accept a value unless it starts with two letters. diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -5359,6 +5359,16 @@ gettext_lang(char_u *name) #if defined(FEAT_MULTI_LANG) || defined(PROTO) /* + * Return TRUE when "lang" starts with a valid language name. + * Rejects NULL, empty string, "C", "C.UTF-8" and others. + */ + static int +is_valid_mess_lang(char_u *lang) +{ + return lang != NULL && ASCII_ISALPHA(lang[0]) && ASCII_ISALPHA(lang[1]); +} + +/* * Obtain the current messages language. Used to set the default for * 'helplang'. May return NULL or an empty string. */ @@ -5379,17 +5389,17 @@ get_mess_lang(void) # endif # else p = mch_getenv((char_u *)"LC_ALL"); - if (p == NULL || *p == NUL) + if (!is_valid_mess_lang(p)) { p = mch_getenv((char_u *)"LC_MESSAGES"); - if (p == NULL || *p == NUL) + if (!is_valid_mess_lang(p)) p = mch_getenv((char_u *)"LANG"); } # endif # ifdef WIN32 p = gettext_lang(p); # endif - return p; + return is_valid_mess_lang(p) ? p : NULL; } #endif diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -793,6 +793,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 512, +/**/ 511, /**/ 510,