changeset 2568:1ead15c2ffd0 vim73

Two fixes for :find completion and more testing. (Nazri Ramliy)
author Bram Moolenaar <bram@vim.org>
date Sun, 15 Aug 2010 13:29:11 +0200
parents 6931da037310
children f612f6b0b883
files src/misc1.c src/testdir/test73.in src/testdir/test73.ok
diffstat 3 files changed, 22 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -9722,6 +9722,9 @@ gen_expand_wildcards(num_pat, pat, num_f
     char_u		*p;
     static int		recursive = FALSE;
     int			add_pat;
+#if defined(FEAT_SEARCHPATH)
+    int			did_expand_in_path = FALSE;
+#endif
 
     /*
      * expand_env() is called to expand things like "~user".  If this fails,
@@ -9808,12 +9811,19 @@ gen_expand_wildcards(num_pat, pat, num_f
 	    if (mch_has_exp_wildcard(p))
 	    {
 #if defined(FEAT_SEARCHPATH)
-		if (*p != '.' && !vim_ispathsep(*p) && (flags & EW_PATH))
+		if ((flags & EW_PATH)
+			&& !mch_isFullName(p)
+			&& !(p[0] == '.'
+			    && (vim_ispathsep(p[1])
+				|| (p[1] == '.' && vim_ispathsep(p[2]))))
+		   )
 		{
-		    /* recursiveness is OK here */
+		    /* :find completion where 'path' is used.
+		     * Recursiveness is OK here. */
 		    recursive = FALSE;
 		    add_pat = expand_in_path(&ga, p, flags);
 		    recursive = TRUE;
+		    did_expand_in_path = TRUE;
 		}
 		else
 #endif
@@ -9838,7 +9848,7 @@ gen_expand_wildcards(num_pat, pat, num_f
 	}
 
 #if defined(FEAT_SEARCHPATH)
-	if (ga.ga_len > 0 && (flags & EW_PATH))
+	if (did_expand_in_path && ga.ga_len > 0 && (flags & EW_PATH))
 	    uniquefy_paths(&ga, p);
 #endif
 	if (p != pat[i])
--- a/src/testdir/test73.in
+++ b/src/testdir/test73.in
@@ -150,6 +150,14 @@ SVoyager 2:w
 :exec "cd " . cwd . "/Xfind/in"
 :find file	
 :exec "w >>" . test_out
+:" Test for relative to current buffer 'path' item
+:exec "cd " . cwd . "/Xfind/"
+:set path=./path
+:" Open the file where Jimmy Hoffa is found
+:e in/file.txt
+:" Find the file containing 'E.T.' in the Xfind/in/path directory
+:find file	
+:exec "w >>" . test_out
 :q
 :exec "cd " . cwd
 :call DeleteDirectory("Xfind")
--- a/src/testdir/test73.ok
+++ b/src/testdir/test73.ok
@@ -16,3 +16,4 @@ Voyager 1
 Voyager 1
 Voyager 2
 Jimmy Hoffa
+E.T.