diff src/misc2.c @ 2521:d890c820722f vim73

Fix: 'suffixesadd' was used for finding tags file.
author Bram Moolenaar <bram@vim.org>
date Sun, 08 Aug 2010 18:17:52 +0200
parents 6768ebd0bc04
children d7ecfc8b784c
line wrap: on
line diff
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -4163,6 +4163,7 @@ typedef struct ff_visited_list_hdr
  *   ffsc_level:	how many levels of dirs to search downwards
  *   ffsc_stopdirs_v:	array of stop directories for upward search
  *   ffsc_find_what:	FINDFILE_BOTH, FINDFILE_DIR or FINDFILE_FILE
+ *   ffsc_tagfile:	searching for tags file, don't use 'suffixesadd'
  */
 typedef struct ff_search_ctx_T
 {
@@ -4180,6 +4181,7 @@ typedef struct ff_search_ctx_T
      char_u			**ffsc_stopdirs_v;
 #endif
      int			ffsc_find_what;
+     int			ffsc_tagfile;
 } ff_search_ctx_T;
 
 /* locally needed functions */
@@ -4307,7 +4309,7 @@ vim_findfile_init(path, filename, stopdi
     int		free_visited;
     int		find_what;
     void	*search_ctx_arg;
-    int		tagfile;
+    int		tagfile;	/* expanding names of tags files */
     char_u	*rel_fname;	/* file name to use for "." */
 {
 #ifdef FEAT_PATH_EXTRA
@@ -4329,6 +4331,7 @@ vim_findfile_init(path, filename, stopdi
 	vim_memset(search_ctx, 0, sizeof(ff_search_ctx_T));
     }
     search_ctx->ffsc_find_what = find_what;
+    search_ctx->ffsc_tagfile = tagfile;
 
     /* clear the search context, but NOT the visited lists */
     ff_clear(search_ctx);
@@ -4899,7 +4902,10 @@ vim_findfile(search_ctx_arg)
 			 */
 #ifdef FEAT_SEARCHPATH
 			len = (int)STRLEN(file_path);
-			suf = curbuf->b_p_sua;
+			if (search_ctx->ffsc_tagfile)
+			    suf = (char_u *)"";
+			else
+			    suf = curbuf->b_p_sua;
 			for (;;)
 #endif
 			{