From 6af20a9be3312045c38ca24b93f2d5d0d70da0b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ph=E1=BA=A1m=20B=C3=ACnh=20An?= Date: Thu, 1 May 2025 17:30:58 +0200 Subject: [PATCH] patch 9.1.1357: Vim incorrectly escapes tags with "[" in a help buffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: Vim incorrectly escapes tags containing "[" in a help buffer Solution: check if the buffer has the "help" filetype set, instead of already being a help buffer (Phạm Bình An) fixes: #17224 closes: #17232 Co-authored-by: Christian Brabandt Co-authored-by: zeertzjq Signed-off-by: Phạm Bình An Signed-off-by: Christian Brabandt --- src/normal.c | 2 +- src/testdir/test_help.vim | 17 +++++++++++++++++ src/version.c | 2 ++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/normal.c b/src/normal.c index ea30607d6a..9231a4c239 100644 --- a/src/normal.c +++ b/src/normal.c @@ -3579,7 +3579,7 @@ nv_ident(cmdarg_T *cap) aux_ptr = (char_u *)(magic_isset() ? "/?.*~[^$\\" : "/?^$\\"); else if (tag_cmd) { - if (curbuf->b_help) + if (STRCMP(curbuf->b_p_ft, "help") == 0) // ":help" handles unescaped argument aux_ptr = (char_u *)""; else diff --git a/src/testdir/test_help.vim b/src/testdir/test_help.vim index 6c8b3ab397..6422317de5 100644 --- a/src/testdir/test_help.vim +++ b/src/testdir/test_help.vim @@ -205,5 +205,22 @@ func Test_help_using_visual_match() call v9.CheckScriptFailure(lines, 'E149:') endfunc +func Test_helptag_navigation() + let helpdir = tempname() + let tempfile = helpdir . '/test.txt' + call mkdir(helpdir, 'pR') + call writefile(['', '*[tag*', '', '|[tag|'], tempfile) + exe 'helptags' helpdir + exe 'sp' tempfile + exe 'lcd' helpdir + setl ft=help + let &l:iskeyword='!-~,^*,^|,^",192-255' + call cursor(4, 2) + " Vim must not escape `[` when expanding the tag + exe "normal! \" + call assert_equal(2, line('.')) + bw +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index d82060838a..30a62c144d 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1357, /**/ 1356, /**/