patch 8.0.0621: :stag does not respect 'switchbuf'
Problem: The ":stag" command does not respect 'switchbuf'.
Solution: Check 'switchbuf' for tag commands that may open a new window.
(Ingo Karkat, closes #1681) Define macros for the return values
of getfile().
diff --git a/src/search.c b/src/search.c
index 3145e9a..bd5d08c 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1524,9 +1524,9 @@
* search_for_exact_line(buf, pos, dir, pat)
*
* Search for a line starting with the given pattern (ignoring leading
- * white-space), starting from pos and going in direction dir. pos will
+ * white-space), starting from pos and going in direction "dir". "pos" will
* contain the position of the match found. Blank lines match only if
- * ADDING is set. if p_ic is set then the pattern must be in lowercase.
+ * ADDING is set. If p_ic is set then the pattern must be in lowercase.
* Return OK for success, or FAIL if no line found.
*/
int
@@ -5397,8 +5397,9 @@
#if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
if (g_do_tagpreview != 0)
{
- if (getfile(0, curwin_save->w_buffer->b_fname,
- NULL, TRUE, lnum, FALSE) > 0)
+ if (!GETFILE_SUCCESS(getfile(
+ 0, curwin_save->w_buffer->b_fname,
+ NULL, TRUE, lnum, FALSE)))
break; /* failed to jump to file */
}
else
@@ -5408,8 +5409,9 @@
}
else
{
- if (getfile(0, files[depth].name, NULL, TRUE,
- files[depth].lnum, FALSE) > 0)
+ if (!GETFILE_SUCCESS(getfile(
+ 0, files[depth].name, NULL, TRUE,
+ files[depth].lnum, FALSE)))
break; /* failed to jump to file */
/* autocommands may have changed the lnum, we don't
* want that here */