Mercurial > vim
changeset 13014:e1deb00ffc27 v8.0.1383
patch 8.0.1383: local additions in help skips some files
commit https://github.com/vim/vim/commit/35c5e8155da797f14124d98fdc6189067b965688
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Dec 9 21:10:13 2017 +0100
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.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 09 Dec 2017 21:15:04 +0100 |
parents | f8a89f409dd7 |
children | e314282a23ac |
files | src/ex_cmds.c src/testdir/test_help.vim src/version.c |
diffstat | 3 files changed, 29 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -6934,13 +6934,10 @@ fix_help_buffer(void) && fcount > 0) { #ifdef FEAT_MULTI_LANG - int i1; - int i2; - char_u *f1; - char_u *f2; - char_u *t1; - char_u *e1; - char_u *e2; + int i1, i2; + char_u *f1, *f2; + char_u *t1, *t2; + char_u *e1, *e2; /* If foo.abx is found use it instead of foo.txt in * the same directory. */ @@ -6955,10 +6952,9 @@ fix_help_buffer(void) f1 = fnames[i1]; f2 = fnames[i2]; t1 = gettail(f1); - if (fnamencmp(f1, f2, t1 - f1) != 0) - continue; + t2 = gettail(f2); e1 = vim_strrchr(t1, '.'); - e2 = vim_strrchr(gettail(f2), '.'); + e2 = vim_strrchr(t2, '.'); if (e1 == NULL || e2 == NULL) continue; if (fnamecmp(e1, ".txt") != 0 @@ -6969,7 +6965,8 @@ 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)
--- a/src/testdir/test_help.vim +++ b/src/testdir/test_help.vim @@ -30,3 +30,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