aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <janedmundlazo@hotmail.com>2018-08-27 10:14:57 -0400
committerJan Edmund Lazo <janedmundlazo@hotmail.com>2018-09-04 21:16:34 -0400
commit5c90bbae2aad0c3129ed8efa0f1b03980f7f28a3 (patch)
tree6685c88eff360c6d8e347c7b0ed6dc40d4287976
parentd4cc4e0871664cdf66d69237e2af671e903d8e80 (diff)
downloadrneovim-5c90bbae2aad0c3129ed8efa0f1b03980f7f28a3.tar.gz
rneovim-5c90bbae2aad0c3129ed8efa0f1b03980f7f28a3.tar.bz2
rneovim-5c90bbae2aad0c3129ed8efa0f1b03980f7f28a3.zip
vim-patch:8.0.1383: local additions in help skips some files
Problem: Local additions in help skips some files. (joshklod) Solution: Check the base file name length equals. https://github.com/vim/vim/commit/35c5e8155da797f14124d98fdc6189067b965688
-rw-r--r--src/nvim/ex_cmds.c10
-rw-r--r--src/nvim/testdir/test_help.vim19
2 files changed, 24 insertions, 5 deletions
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index ca975ee02a..78f422f211 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -5017,11 +5017,9 @@ void fix_help_buffer(void)
const char_u *const f1 = fnames[i1];
const char_u *const f2 = fnames[i2];
const char_u *const t1 = path_tail(f1);
- if (fnamencmp(f1, f2, t1 - f1) != 0) {
- continue;
- }
+ const char_u *const t2 = path_tail(f2);
const char_u *const e1 = STRRCHR(t1, '.');
- const char_u *const e2 = STRRCHR(path_tail(f2), '.');
+ const char_u *const e2 = STRRCHR(t2, '.');
if (e1 == NULL || e2 == NULL) {
continue;
}
@@ -5032,8 +5030,10 @@ void fix_help_buffer(void)
fnames[i1] = NULL;
continue;
}
- if (fnamencmp(f1, f2, e1 - f1) != 0)
+ if (e1 - f1 != e2 - f2
+ || fnamencmp(f1, f2, e1 - f1) != 0) {
continue;
+ }
if (fnamecmp(e1, ".txt") == 0
&& fnamecmp(e2, fname + 4) == 0) {
/* use .abx instead of .txt */
diff --git a/src/nvim/testdir/test_help.vim b/src/nvim/testdir/test_help.vim
index e7bd602dbc..ed3181564c 100644
--- a/src/nvim/testdir/test_help.vim
+++ b/src/nvim/testdir/test_help.vim
@@ -31,3 +31,22 @@ func Test_help_keyword()
close
bwipe!
endfunc
+
+func Test_help_local_additions()
+ call mkdir('Xruntime/doc', 'p')
+ call writefile(['*mydoc.txt* my awesome doc'], 'Xruntime/doc/mydoc.txt')
+ call writefile(['*mydoc-ext.txt* my extended awesome doc'], 'Xruntime/doc/mydoc-ext.txt')
+ let rtp_save = &rtp
+ set rtp+=./Xruntime
+ help
+ 1
+ call search('mydoc.txt')
+ call assert_equal('|mydoc.txt| my awesome doc', getline('.'))
+ 1
+ call search('mydoc-ext.txt')
+ call assert_equal('|mydoc-ext.txt| my extended awesome doc', getline('.'))
+ close
+
+ call delete('Xruntime', 'rf')
+ let &rtp = rtp_save
+endfunc