patch 8.2.2728: special key names don't work if 'isident' is cleared
Problem: Special key names don't work if 'isident' is cleared.
Solution: Add vim_isNormalIDc() and use it for special key names.
(closes #2389)
diff --git a/src/misc2.c b/src/misc2.c
index 90b8b58..08e6ed9 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -2826,7 +2826,7 @@
// Find end of modifier list
last_dash = src;
- for (bp = src + 1; *bp == '-' || vim_isIDc(*bp); bp++)
+ for (bp = src + 1; *bp == '-' || vim_isNormalIDc(*bp); bp++)
{
if (*bp == '-')
{
@@ -3121,10 +3121,10 @@
for (i = 0; key_names_table[i].name != NULL; i++)
{
table_name = key_names_table[i].name;
- for (j = 0; vim_isIDc(name[j]) && table_name[j] != NUL; j++)
+ for (j = 0; vim_isNormalIDc(name[j]) && table_name[j] != NUL; j++)
if (TOLOWER_ASC(table_name[j]) != TOLOWER_ASC(name[j]))
break;
- if (!vim_isIDc(name[j]) && table_name[j] == NUL)
+ if (!vim_isNormalIDc(name[j]) && table_name[j] == NUL)
return key_names_table[i].key;
}
return 0;