# HG changeset patch # User Bram Moolenaar # Date 1339588901 -7200 # Node ID 297771eff080ed3bcfb2ade57c2dcab34bac5de8 # Parent eabf1a91c2e4068c54590e23568e30f01aec2ece updated for version 7.3.550 Problem: With "j" in 'formatoptions' a list leader is not removed. (Gary Johnson) Solution: Don't ignore the start of a three part comment. (Lech Lorens) diff --git a/src/ops.c b/src/ops.c --- a/src/ops.c +++ b/src/ops.c @@ -4250,15 +4250,13 @@ skip_comment(line, process, include_spac return line; /* Find: - * - COM_START, * - COM_END, * - colon, * whichever comes first. */ while (*comment_flags) { - if (*comment_flags == COM_START - || *comment_flags == COM_END + if (*comment_flags == COM_END || *comment_flags == ':') { break; @@ -4267,9 +4265,8 @@ skip_comment(line, process, include_spac } /* If we found a colon, it means that we are not processing a line - * starting with an opening or a closing part of a three-part - * comment. That's good, because we don't want to remove those as - * this would be annoying. + * starting with a closing part of a three-part comment. That's good, + * because we don't want to remove those as this would be annoying. */ if (*comment_flags == ':' || *comment_flags == NUL) line += lead_len; diff --git a/src/testdir/test29.in b/src/testdir/test29.in --- a/src/testdir/test29.in +++ b/src/testdir/test29.in @@ -103,12 +103,15 @@ if (condition) // Remove the next commen STARTTEST /^{/+1 -:set comments=s1:/*,mb:*,ex:*/,:// +:set comments=sO:*\ -,mO:*\ \ ,exO:*/ +:set comments+=s1:/*,mb:*,ex:*/,:// :set comments+=s1:>#,mb:#,ex:#<,:< :set cpoptions-=j joinspaces fo=j :set backspace=eol,start :.,+3join j4J +:.,+8join +j9J :.,+2join j3J :.,+2join @@ -132,6 +135,24 @@ ENDTEST * Make sure the previous comment leader is not removed. */ +/* List: + * - item1 + * foo bar baz + * foo bar baz + * - item2 + * foo bar baz + * foo bar baz + */ + +/* List: + * - item1 + * foo bar baz + * foo bar baz + * - item2 + * foo bar baz + * foo bar baz + */ + // Should the next comment leader be left alone? // Yes. diff --git a/src/testdir/test29.ok b/src/testdir/test29.ok --- a/src/testdir/test29.ok +++ b/src/testdir/test29.ok @@ -66,6 +66,8 @@ if (condition) // Remove the next commen { /* Make sure the previous comment leader is not removed. */ /* Make sure the previous comment leader is not removed. */ +/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */ +/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */ // Should the next comment leader be left alone? Yes. // Should the next comment leader be left alone? Yes. /* Here the comment leader should be left intact. */ // And so should this one. diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 550, +/**/ 549, /**/ 548,