patch 9.0.1233: search() loops forever if "skip" is TRUE for all matches

Problem:    search() loops forever if "skip" is TRUE for all matches.
Solution:   Keep the position of the first match.
diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim
index 074ab15..ef44751 100644
--- a/src/testdir/test_search.vim
+++ b/src/testdir/test_search.vim
@@ -1411,6 +1411,22 @@
   set noincsearch
 endfunc
 
+func Test_search_skip_all_matches()
+  enew
+  call setline(1, ['no match here',
+        \ 'match this line',
+        \ 'nope',
+        \ 'match in this line',
+        \ 'last line',
+        \ ])
+  call cursor(1, 1)
+  let lnum = search('this', '', 0, 0, 'getline(".") =~ "this line"')
+  " Only check that no match is found.  Previously it searched forever.
+  call assert_equal(0, lnum)
+
+  bwipe!
+endfunc
+
 func Test_search_undefined_behaviour()
   CheckFeature terminal