aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan Edmund Lazo <janedmundlazo@hotmail.com>2018-11-05 20:40:32 -0500
committerJan Edmund Lazo <janedmundlazo@hotmail.com>2018-11-05 21:08:23 -0500
commite0d6894a54b0ed263d8c93197e50ad5fca641f08 (patch)
tree4e777d94d54e6360cb969fbd955fda65c2c429b9 /src
parentbd6866f90b6cf7334a9f0d160be6f3b1e5157d51 (diff)
downloadrneovim-e0d6894a54b0ed263d8c93197e50ad5fca641f08.tar.gz
rneovim-e0d6894a54b0ed263d8c93197e50ad5fca641f08.tar.bz2
rneovim-e0d6894a54b0ed263d8c93197e50ad5fca641f08.zip
vim-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. https://github.com/vim/vim/commit/389ab7122bec99c11ad4ce6d87cc6f38a21e4e40
Diffstat (limited to 'src')
-rw-r--r--src/nvim/ex_cmds2.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index 90fb7b8bc3..a148f51527 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -3506,7 +3506,12 @@ static char *get_locale_val(int what)
}
#endif
-
+// Return true when "lang" starts with a valid language name.
+// Rejects NULL, empty string, "C", "C.UTF-8" and others.
+static bool is_valid_mess_lang(char *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.
@@ -3526,14 +3531,14 @@ char *get_mess_lang(void)
# endif
# else
p = os_getenv("LC_ALL");
- if (p == NULL) {
+ if (!is_valid_mess_lang(p)) {
p = os_getenv("LC_MESSAGES");
- if (p == NULL) {
+ if (!is_valid_mess_lang(p)) {
p = os_getenv("LANG");
}
}
# endif
- return p;
+ return is_valid_mess_lang(p) ? p : NULL;
}
// Complicated #if; matches with where get_mess_env() is used below.