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.
35c5e8155d
This commit is contained in:
Jan Edmund Lazo 2018-08-27 10:14:57 -04:00
parent d4cc4e0871
commit 5c90bbae2a
2 changed files with 24 additions and 5 deletions

View File

@ -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 */

View File

@ -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