diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-10-05 11:30:09 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-10-05 11:30:09 +0200 |
commit | 9ca250855b55f4d3292b010525c827dc6992cb61 (patch) | |
tree | 323c839cb49b0eb3bdcdc9521a01cf9d4812582f /src | |
parent | 4c063dde73c618b0728016d221ef130d9e9ec968 (diff) |
patch 8.1.2113: ":help expr-!~?" only works after searchingv8.1.2113
Problem: ":help expr-!~?" only works after searching.
Solution: Escape "~" after "expr-". (closes #5015)
Diffstat (limited to 'src')
-rw-r--r-- | src/ex_cmds.c | 16 | ||||
-rw-r--r-- | src/testdir/test_help.vim | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 21 insertions, 3 deletions
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; } } diff --git a/src/testdir/test_help.vim b/src/testdir/test_help.vim index c550ff09e2..5dd937a935 100644 --- a/src/testdir/test_help.vim +++ b/src/testdir/test_help.vim @@ -20,6 +20,12 @@ func Test_help_errors() bwipe! endfunc +func Test_help_expr() + help expr-!~? + call assert_equal('eval.txt', expand('%:t')) + close +endfunc + func Test_help_keyword() new set keywordprg=:help diff --git a/src/version.c b/src/version.c index eb1ad1fc26..d37ee657d0 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2113, +/**/ 2112, /**/ 2111, |