From 9ca250855b55f4d3292b010525c827dc6992cb61 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 5 Oct 2019 11:30:09 +0200 Subject: patch 8.1.2113: ":help expr-!~?" only works after searching Problem: ":help expr-!~?" only works after searching. Solution: Escape "~" after "expr-". (closes #5015) --- src/ex_cmds.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/ex_cmds.c') diff --git a/src/ex_cmds.c b/src/ex_cmds.c index 85e5be066d..da01e9ddad 100644 --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -5547,12 +5547,22 @@ find_help_tags( 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; } } -- cgit v1.2.3