patch 8.1.2113: ":help expr-!~?" only works after searching
Problem: ":help expr-!~?" only works after searching.
Solution: Escape "~" after "expr-". (closes #5015)
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 85e5be0..da01e9d 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -5547,12 +5547,22 @@
if (STRNICMP(arg, "expr-", 5) == 0)
{
// When the string starting with "expr-" and containing '?' and matches
- // the table, it is taken literally. Otherwise '?' is recognized as a
- // wildcard.
+ // the table, it is taken literally (but ~ is escaped). Otherwise '?'
+ // is recognized as a wildcard.
for (i = (int)(sizeof(expr_table) / sizeof(char *)); --i >= 0; )
if (STRCMP(arg + 5, expr_table[i]) == 0)
{
- STRCPY(d, arg);
+ int si = 0, di = 0;
+
+ for (;;)
+ {
+ if (arg[si] == '~')
+ d[di++] = '\\';
+ d[di++] = arg[si];
+ if (arg[si] == NUL)
+ break;
+ ++si;
+ }
break;
}
}