patch 9.0.1092: search error message doesn't show used pattern
Problem: Search error message doesn't show used pattern.
Solution: Pass the actually used pattern to where the error message is
given. (Rob Pilling, closes #11742)
diff --git a/src/search.c b/src/search.c
index ff4f419..219afd5 100644
--- a/src/search.c
+++ b/src/search.c
@@ -123,6 +123,7 @@
int
search_regcomp(
char_u *pat,
+ char_u **used_pat,
int pat_save,
int pat_use,
int options,
@@ -159,6 +160,9 @@
else if (options & SEARCH_HIS) // put new pattern in history
add_to_history(HIST_SEARCH, pat, TRUE, NUL);
+ if (used_pat)
+ *used_pat = pat;
+
vim_free(mr_pattern);
#ifdef FEAT_RIGHTLEFT
if (curwin->w_p_rl && *curwin->w_p_rlc == 's')
@@ -597,7 +601,7 @@
return;
}
++emsg_off; // So it doesn't beep if bad expr
- (void)search_regcomp((char_u *)"", 0, last_idx, SEARCH_KEEP, regmatch);
+ (void)search_regcomp((char_u *)"", NULL, 0, last_idx, SEARCH_KEEP, regmatch);
--emsg_off;
}
#endif
@@ -661,7 +665,7 @@
int unused_timeout_flag = FALSE;
int *timed_out = &unused_timeout_flag; // set when timed out.
- if (search_regcomp(pat, RE_SEARCH, pat_use,
+ if (search_regcomp(pat, NULL, RE_SEARCH, pat_use,
(options & (SEARCH_HIS + SEARCH_KEEP)), ®match) == FAIL)
{
if ((options & SEARCH_MSG) && !rc_did_emsg)
@@ -2864,7 +2868,7 @@
if (pattern == NULL)
pattern = spats[last_idx].pat;
- if (search_regcomp(pattern, RE_SEARCH, RE_SEARCH,
+ if (search_regcomp(pattern, NULL, RE_SEARCH, RE_SEARCH,
SEARCH_KEEP, ®match) == FAIL)
return -1;