forked from aniani/vim
patch 8.0.0453: adding fold marker creates new comment
Problem: Adding fold marker creates new comment. Solution: Use an existing comment if possible. (LemonBoy, closes #1549)
This commit is contained in:
@@ -1760,6 +1760,7 @@ foldAddMarker(linenr_T lnum, char_u *marker, int markerlen)
|
||||
int line_len;
|
||||
char_u *newline;
|
||||
char_u *p = (char_u *)strstr((char *)curbuf->b_p_cms, "%s");
|
||||
int line_is_comment = FALSE;
|
||||
|
||||
/* Allocate a new line: old-line + 'cms'-start + marker + 'cms'-end */
|
||||
line = ml_get(lnum);
|
||||
@@ -1767,11 +1768,16 @@ foldAddMarker(linenr_T lnum, char_u *marker, int markerlen)
|
||||
|
||||
if (u_save(lnum - 1, lnum + 1) == OK)
|
||||
{
|
||||
#if defined(FEAT_COMMENTS)
|
||||
/* Check if the line ends with an unclosed comment */
|
||||
(void)skip_comment(line, FALSE, FALSE, &line_is_comment);
|
||||
#endif
|
||||
newline = alloc((unsigned)(line_len + markerlen + STRLEN(cms) + 1));
|
||||
if (newline == NULL)
|
||||
return;
|
||||
STRCPY(newline, line);
|
||||
if (p == NULL)
|
||||
/* Append the marker to the end of the line */
|
||||
if (p == NULL || line_is_comment)
|
||||
vim_strncpy(newline + line_len, marker, markerlen);
|
||||
else
|
||||
{
|
||||
|
Reference in New Issue
Block a user