0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

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.
This commit is contained in:
Bram Moolenaar
2017-12-09 21:10:13 +01:00
parent f405c8fe85
commit 35c5e8155d
3 changed files with 29 additions and 11 deletions

View File

@@ -6934,13 +6934,10 @@ fix_help_buffer(void)
&& fcount > 0) && fcount > 0)
{ {
#ifdef FEAT_MULTI_LANG #ifdef FEAT_MULTI_LANG
int i1; int i1, i2;
int i2; char_u *f1, *f2;
char_u *f1; char_u *t1, *t2;
char_u *f2; char_u *e1, *e2;
char_u *t1;
char_u *e1;
char_u *e2;
/* If foo.abx is found use it instead of foo.txt in /* If foo.abx is found use it instead of foo.txt in
* the same directory. */ * the same directory. */
@@ -6955,10 +6952,9 @@ fix_help_buffer(void)
f1 = fnames[i1]; f1 = fnames[i1];
f2 = fnames[i2]; f2 = fnames[i2];
t1 = gettail(f1); t1 = gettail(f1);
if (fnamencmp(f1, f2, t1 - f1) != 0) t2 = gettail(f2);
continue;
e1 = vim_strrchr(t1, '.'); e1 = vim_strrchr(t1, '.');
e2 = vim_strrchr(gettail(f2), '.'); e2 = vim_strrchr(t2, '.');
if (e1 == NULL || e2 == NULL) if (e1 == NULL || e2 == NULL)
continue; continue;
if (fnamecmp(e1, ".txt") != 0 if (fnamecmp(e1, ".txt") != 0
@@ -6969,7 +6965,8 @@ fix_help_buffer(void)
fnames[i1] = NULL; fnames[i1] = NULL;
continue; continue;
} }
if (fnamencmp(f1, f2, e1 - f1) != 0) if (e1 - f1 != e2 - f2
|| fnamencmp(f1, f2, e1 - f1) != 0)
continue; continue;
if (fnamecmp(e1, ".txt") == 0 if (fnamecmp(e1, ".txt") == 0
&& fnamecmp(e2, fname + 4) == 0) && fnamecmp(e2, fname + 4) == 0)

View File

@@ -30,3 +30,22 @@ func Test_help_keyword()
close close
bwipe! bwipe!
endfunc 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

View File

@@ -771,6 +771,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1383,
/**/ /**/
1382, 1382,
/**/ /**/