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
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1383,
+/**/
     1382,
 /**/
     1381,