updated for version 7.1-025
diff --git a/src/eval.c b/src/eval.c
index ac4dc1b..d55ba10 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -13925,6 +13925,8 @@
/* If 'n' flag is used: restore cursor position. */
if (flags & SP_NOMOVE)
curwin->w_cursor = save_cursor;
+ else
+ curwin->w_set_curswant = TRUE;
theend:
p_ws = save_p_ws;
diff --git a/src/search.c b/src/search.c
index 3836db7..ee1aef5 100644
--- a/src/search.c
+++ b/src/search.c
@@ -573,8 +573,12 @@
/*
* Start searching in current line, unless searching backwards and
* we're in column 0.
+ * If we are searching backwards, in column 0, and not including the
+ * current position, gain some efficiency by skipping back a line.
+ * Otherwise begin the search in the current line.
*/
- if (dir == BACKWARD && start_pos.col == 0)
+ if (dir == BACKWARD && start_pos.col == 0
+ && (options & SEARCH_START) == 0)
{
lnum = pos->lnum - 1;
at_first_line = FALSE;
diff --git a/src/version.c b/src/version.c
index 4a3f666..83ff53d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 25,
+/**/
24,
/**/
23,