patch 8.1.0570: 'commentstring' not used when adding fold marker

Problem:    'commentstring' not used when adding fold marker. (Maxim Kim)
Solution:   Only use empty 'comments' middle when leader is empty. (Christian
            Brabandt, closes #3670)
diff --git a/src/misc1.c b/src/misc1.c
index b1cc215..d8e7e1a 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -1993,6 +1993,7 @@
 	for (list = curbuf->b_p_com; *list; )
 	{
 	    char_u *flags_save = list;
+	    int	    is_only_whitespace = FALSE;
 
 	    /*
 	     * Get one option part into part_buf[].  Advance list to next one.
@@ -2018,8 +2019,10 @@
 	    {
 		if (i == 0 || !VIM_ISWHITE(line[i - 1]))
 		    continue;
-		while (VIM_ISWHITE(string[0]))
+		while (VIM_ISWHITE(*string))
 		    ++string;
+		if (*string == NUL)
+		    is_only_whitespace = TRUE;
 	    }
 	    for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
 		/* do nothing */;
@@ -2032,8 +2035,17 @@
 	     */
 	    if (vim_strchr(part_buf, COM_BLANK) != NULL
 		    && !VIM_ISWHITE(line[i + j]) && line[i + j] != NUL)
-	    {
 		continue;
+
+	    // For a middlepart comment that is only white space, only consider
+	    // it to match if everything before the current position in the
+	    // line is also whitespace.
+	    if (is_only_whitespace && vim_strchr(part_buf, COM_MIDDLE) != NULL)
+	    {
+		for (j = 0; VIM_ISWHITE(line[j]) && j <= i; j++)
+		    ;
+		if (j < i)
+		    continue;
 	    }
 
 	    /*
diff --git a/src/testdir/test_fold.vim b/src/testdir/test_fold.vim
index 0384b4f..f8664d4 100644
--- a/src/testdir/test_fold.vim
+++ b/src/testdir/test_fold.vim
@@ -695,3 +695,20 @@
   call StopVimInTerminal(buf)
   call delete('Xtest_folds_with_rnu')
 endfunc
+
+func Test_folds_marker_in_comment2()
+  new
+  call setline(1, ['Lorem ipsum dolor sit', 'Lorem ipsum dolor sit', 'Lorem ipsum dolor sit'])
+  setl fen fdm=marker
+  setl commentstring=<!--%s-->
+  setl comments=s:<!--,m:\ \ \ \ ,e:-->
+  norm! zf2j
+  setl nofen
+  :1y
+  call assert_equal(['Lorem ipsum dolor sit<!--{{{-->'], getreg(0,1,1))
+  :+2y
+  call assert_equal(['Lorem ipsum dolor sit<!--}}}-->'], getreg(0,1,1))
+
+  set foldmethod&
+  bwipe!
+endfunc
diff --git a/src/version.c b/src/version.c
index 312eca2..8df3ac7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -793,6 +793,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    570,
+/**/
     569,
 /**/
     568,