vim-patch:9.0.1215: using isalpha() adds dependency on current locale

Problem:    Using isalpha() adds dependency on current locale.
Solution:   Do not use isalpha() for recognizing a URL or the end of an Ex
            command. (closes vim/vim#11835)

0ef9a5c094
This commit is contained in:
zeertzjq 2023-01-18 06:27:45 +08:00
parent 8c344378b8
commit 9a2dd52a6a
3 changed files with 4 additions and 4 deletions

View File

@ -2852,7 +2852,7 @@ bool checkforcmd(char **pp, const char *cmd, int len)
break;
}
}
if (i >= len && !isalpha((uint8_t)(*pp)[i])) {
if (i >= len && !ASCII_ISALPHA((*pp)[i])) {
*pp = skipwhite(*pp + i);
return true;
}

View File

@ -1106,7 +1106,7 @@ int do_set(char *arg, int opt_flags)
char *errmsg = NULL;
char *startarg = arg; // remember for error message
if (strncmp(arg, "all", 3) == 0 && !isalpha((uint8_t)arg[3])
if (strncmp(arg, "all", 3) == 0 && !ASCII_ISALPHA(arg[3])
&& !(opt_flags & OPT_MODELINE)) {
// ":set all" show all options.
// ":set all&" set all options to their default value.

View File

@ -1768,7 +1768,7 @@ int path_with_url(const char *fname)
// non-URL text.
// first character must be alpha
if (!isalpha((uint8_t)(*fname))) {
if (!ASCII_ISALPHA(*fname)) {
return 0;
}
@ -1777,7 +1777,7 @@ int path_with_url(const char *fname)
}
// check body: alpha or dash
for (p = fname + 1; (isalpha((uint8_t)(*p)) || (*p == '-')); p++) {}
for (p = fname + 1; (ASCII_ISALPHA(*p) || (*p == '-')); p++) {}
// check last char is not a dash
if (p[-1] == '-') {