mirror of
https://github.com/neovim/neovim.git
synced 2025-09-15 15:58:17 +00:00
vim-patch:8.2.3992: wrong local-additions in the help with language mix
Problem: Wrong local-additions in the help with language mix.
Solution: Adjust how the local additions list is generated. (Hirohito
Higashi, closes vim/vim#9464)
0e2508d9e6
Co-authored-by: h-east <h.east.727@gmail.com>
This commit is contained in:
@@ -743,28 +743,26 @@ void fix_help_buffer(void)
|
|||||||
// 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.
|
||||||
for (int i1 = 0; i1 < fcount; i1++) {
|
for (int i1 = 0; i1 < fcount; i1++) {
|
||||||
for (int i2 = 0; i2 < fcount; i2++) {
|
const char *const f1 = fnames[i1];
|
||||||
if (i1 == i2) {
|
const char *const t1 = path_tail(f1);
|
||||||
continue;
|
const char *const e1 = strrchr(t1, '.');
|
||||||
}
|
if (path_fnamecmp(e1, ".txt") != 0
|
||||||
if (fnames[i1] == NULL || fnames[i2] == NULL) {
|
&& path_fnamecmp(e1, fname + 4) != 0) {
|
||||||
continue;
|
// Not .txt and not .abx, remove it.
|
||||||
}
|
XFREE_CLEAR(fnames[i1]);
|
||||||
const char *const f1 = fnames[i1];
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i2 = i1 + 1; i2 < fcount; i2++) {
|
||||||
const char *const f2 = fnames[i2];
|
const char *const f2 = fnames[i2];
|
||||||
const char *const t1 = path_tail(f1);
|
if (f2 == NULL) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
const char *const t2 = path_tail(f2);
|
const char *const t2 = path_tail(f2);
|
||||||
const char *const e1 = strrchr(t1, '.');
|
|
||||||
const char *const e2 = strrchr(t2, '.');
|
const char *const e2 = strrchr(t2, '.');
|
||||||
if (e1 == NULL || e2 == NULL) {
|
if (e1 == NULL || e2 == NULL) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (path_fnamecmp(e1, ".txt") != 0
|
|
||||||
&& path_fnamecmp(e1, fname + 4) != 0) {
|
|
||||||
// Not .txt and not .abx, remove it.
|
|
||||||
XFREE_CLEAR(fnames[i1]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (e1 - f1 != e2 - f2
|
if (e1 - f1 != e2 - f2
|
||||||
|| path_fnamencmp(f1, f2, (size_t)(e1 - f1)) != 0) {
|
|| path_fnamencmp(f1, f2, (size_t)(e1 - f1)) != 0) {
|
||||||
continue;
|
continue;
|
||||||
|
@@ -96,16 +96,42 @@ func Test_help_local_additions()
|
|||||||
call writefile(['*mydoc-ext.txt* my extended awesome doc'], 'Xruntime/doc/mydoc-ext.txt')
|
call writefile(['*mydoc-ext.txt* my extended awesome doc'], 'Xruntime/doc/mydoc-ext.txt')
|
||||||
let rtp_save = &rtp
|
let rtp_save = &rtp
|
||||||
set rtp+=./Xruntime
|
set rtp+=./Xruntime
|
||||||
help
|
help local-additions
|
||||||
1
|
let lines = getline(line(".") + 1, search("^$") - 1)
|
||||||
call search('mydoc.txt')
|
call assert_equal([
|
||||||
call assert_equal('|mydoc.txt| my awesome doc', getline('.'))
|
\ '|mydoc-ext.txt| my extended awesome doc',
|
||||||
1
|
\ '|mydoc.txt| my awesome doc'
|
||||||
call search('mydoc-ext.txt')
|
\ ], lines)
|
||||||
call assert_equal('|mydoc-ext.txt| my extended awesome doc', getline('.'))
|
call delete('Xruntime/doc/mydoc-ext.txt')
|
||||||
|
close
|
||||||
|
|
||||||
|
call mkdir('Xruntime-ja/doc', 'p')
|
||||||
|
call writefile(["local-additions\thelp.jax\t/*local-additions*"], 'Xruntime-ja/doc/tags-ja')
|
||||||
|
call writefile(['*help.txt* This is jax file', '',
|
||||||
|
\ 'LOCAL ADDITIONS: *local-additions*', ''], 'Xruntime-ja/doc/help.jax')
|
||||||
|
call writefile(['*work.txt* This is jax file'], 'Xruntime-ja/doc/work.jax')
|
||||||
|
call writefile(['*work2.txt* This is jax file'], 'Xruntime-ja/doc/work2.jax')
|
||||||
|
set rtp+=./Xruntime-ja
|
||||||
|
|
||||||
|
help local-additions@en
|
||||||
|
let lines = getline(line(".") + 1, search("^$") - 1)
|
||||||
|
call assert_equal([
|
||||||
|
\ '|mydoc.txt| my awesome doc'
|
||||||
|
\ ], lines)
|
||||||
|
close
|
||||||
|
|
||||||
|
help local-additions@ja
|
||||||
|
let lines = getline(line(".") + 1, search("^$") - 1)
|
||||||
|
call assert_equal([
|
||||||
|
\ '|mydoc.txt| my awesome doc',
|
||||||
|
\ '|help.txt| This is jax file',
|
||||||
|
\ '|work.txt| This is jax file',
|
||||||
|
\ '|work2.txt| This is jax file',
|
||||||
|
\ ], lines)
|
||||||
close
|
close
|
||||||
|
|
||||||
call delete('Xruntime', 'rf')
|
call delete('Xruntime', 'rf')
|
||||||
|
call delete('Xruntime-ja', 'rf')
|
||||||
let &rtp = rtp_save
|
let &rtp = rtp_save
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user