vim-patch:8.0.1291: C indent wrong when * immediately follows comment

Problem:    C indent wrong when * immediately follows comment. (John Bowler)
Solution:   Do not see "/*" after "*" as a comment start. (closes vim/vim#2321)
f8c53d3d26
This commit is contained in:
Jan Edmund Lazo 2018-08-19 23:11:36 -04:00
parent c553109932
commit 2c0998e104
2 changed files with 19 additions and 1 deletions

View File

@ -1849,7 +1849,7 @@ pos_T *findmatchlimit(oparg_T *oap, int initc, int flags, int64_t maxtravel)
} else { /* Searching backwards */ } else { /* Searching backwards */
/* /*
* A comment may contain / * or / /, it may also start or end * A comment may contain / * or / /, it may also start or end
* with / * /. Ignore a / * after / /. * with / * /. Ignore a / * after / / and after *.
*/ */
if (pos.col == 0) if (pos.col == 0)
continue; continue;
@ -1874,6 +1874,7 @@ pos_T *findmatchlimit(oparg_T *oap, int initc, int flags, int64_t maxtravel)
} }
} else if ( linep[pos.col - 1] == '/' } else if ( linep[pos.col - 1] == '/'
&& linep[pos.col] == '*' && linep[pos.col] == '*'
&& (pos.col == 1 || linep[pos.col - 2] != '*')
&& (int)pos.col < comment_col) { && (int)pos.col < comment_col) {
count++; count++;
match_pos = pos; match_pos = pos;

View File

@ -4754,4 +4754,21 @@ describe('cindent', function()
4 4
/* end of define */]=]) /* end of define */]=])
end) end)
it('* immediately follows comment / vim-patch 8.0.1291', function()
insert_([=[
{
a = second/*bug*/*line;
}]=])
feed_command('set cin cino&')
feed_command('/a = second')
feed('ox')
expect([=[
{
a = second/*bug*/*line;
x
}]=])
end)
end) end)