From 463ee340d065dab803b9bd459fc5827adb6fcc64 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Sun, 8 Aug 2010 18:17:52 +0200
Subject: [PATCH] Fix: 'suffixesadd' was used for finding tags file.

---
 runtime/doc/todo.txt |  8 ++++----
 src/misc2.c          | 10 ++++++++--
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index f10ee6943a..ae8ef69456 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.3e.  Last change: 2010 Aug 07
+*todo.txt*      For Vim version 7.3e.  Last change: 2010 Aug 08
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -33,9 +33,6 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 Before release 7.3:
 - Rename vim73 branch to default (hints: Xavier de Gaye, 2010 May 23)
 
-Bug: searching for tags file uses 'suffixesadd', should not happen. (Dominique
-Pelle, 2010 June 28)
-
 Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
 
 When directory "/tmp/tags" contains "tags1" and "tags2", setting 'tags' to
@@ -44,6 +41,9 @@ When directory "/tmp/tags" contains "tags1" and "tags2", setting 'tags' to
 ":command Print echo 'print'" works, but ":Print" doesn't.  Builtin Print
 should be overruled. (Aaron Thoma)
 
+GTK: drawing a double-width combining character over single-width characters
+doesn't look right. (Dominique Pelle, 2010 Aug 8)
+
 Editing a file with a ^M with 'ff' set to "mac", opening a help file, then the
 ^M is displayed as ^J sometimes.  Getting 'ff' value from wrong window/buffer?
 
diff --git a/src/misc2.c b/src/misc2.c
index 21c5b42e91..6f19bb61a3 100644
--- 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, stopdirs, level, free_visited, find_what,
     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, stopdirs, level, free_visited, find_what,
 	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
 			{
-- 
GitLab