curwin->w_cursor.col = 0;
searchcmdlen = 0;
if (!do_search(NULL, c, cmd, 1L,
- SEARCH_HIS + SEARCH_MSG + SEARCH_START,
- NULL))
+ SEARCH_HIS | SEARCH_MSG, NULL))
{
curwin->w_cursor = pos;
cmd = NULL;
pos.col = 0;
if (searchit(curwin, curbuf, &pos,
*cmd == '?' ? BACKWARD : FORWARD,
- (char_u *)"", 1L,
- SEARCH_MSG + SEARCH_START,
+ (char_u *)"", 1L, SEARCH_MSG,
i, (linenr_T)0, NULL) != FAIL)
lnum = pos.lnum;
else
return FAIL;
}
- if (options & SEARCH_START)
+ /* When not accepting a match at the start position set "extra_col" to a
+ * non-zero value. Don't do that when starting at MAXCOL, since MAXCOL +
+ * 1 is zero. */
+ if ((options & SEARCH_START) || pos->col == MAXCOL)
extra_col = 0;
#ifdef FEAT_MBYTE
/* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */