patch 8.0.1410: hang when using count() with an empty string
Problem: Hang when using count() with an empty string.
Solution: Return zero for an empty string. (Dominique Pelle, closes #2465)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 9aacd30..7f78a9d 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -2382,7 +2382,7 @@
char_u *p = argvars[0].vval.v_string;
char_u *next;
- if (!error && expr != NULL && p != NULL)
+ if (!error && expr != NULL && *expr != NUL && p != NULL)
{
if (ic)
{
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index d904013..20e4280 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -692,6 +692,7 @@
call assert_equal(0, count("foo", "O"))
call assert_equal(2, count("foo", "O", 1))
call assert_equal(2, count("fooooo", "oo"))
+ call assert_equal(0, count("foo", ""))
endfunc
func Test_changenr()
diff --git a/src/version.c b/src/version.c
index 97f0d66..cf53357 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1410,
+/**/
1409,
/**/
1408,