Mercurial > vim
changeset 3580:297771eff080 v7.3.550
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)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 13 Jun 2012 14:01:41 +0200 |
parents | eabf1a91c2e4 |
children | 277b3bc2dabb |
files | src/ops.c src/testdir/test29.in src/testdir/test29.ok src/version.c |
diffstat | 4 files changed, 29 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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;
--- 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.
--- 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.