mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 7.4.891
Problem: Indentation of array initializer is wrong. Solution: Avoid that calling find_start_rawstring() changes the position returned by find_start_comment(), add a test. (Hirohito Higashi)
This commit is contained in:
parent
094454fa70
commit
089af18d1f
23
src/misc1.c
23
src/misc1.c
@ -5345,8 +5345,19 @@ find_start_comment(ind_maxcomment) /* XXX */
|
||||
static pos_T *
|
||||
ind_find_start_CORS() /* XXX */
|
||||
{
|
||||
pos_T *comment_pos = find_start_comment(curbuf->b_ind_maxcomment);
|
||||
pos_T *rs_pos = find_start_rawstring(curbuf->b_ind_maxcomment);
|
||||
static pos_T comment_pos_copy;
|
||||
pos_T *comment_pos;
|
||||
pos_T *rs_pos;
|
||||
|
||||
comment_pos = find_start_comment(curbuf->b_ind_maxcomment);
|
||||
if (comment_pos != NULL)
|
||||
{
|
||||
/* Need to make a copy of the static pos in findmatchlimit(),
|
||||
* calling find_start_rawstring() may change it. */
|
||||
comment_pos_copy = *comment_pos;
|
||||
comment_pos = &comment_pos_copy;
|
||||
}
|
||||
rs_pos = find_start_rawstring(curbuf->b_ind_maxcomment);
|
||||
|
||||
/* If comment_pos is before rs_pos the raw string is inside the comment.
|
||||
* If rs_pos is before comment_pos the comment is inside the raw string. */
|
||||
@ -8334,7 +8345,8 @@ get_c_indent()
|
||||
if (terminated == 0 || (lookfor != LOOKFOR_UNTERM
|
||||
&& terminated == ','))
|
||||
{
|
||||
if (*skipwhite(l) == '[' || l[STRLEN(l) - 1] == '[')
|
||||
if (lookfor != LOOKFOR_ENUM_OR_INIT &&
|
||||
(*skipwhite(l) == '[' || l[STRLEN(l) - 1] == '['))
|
||||
amount += ind_continuation;
|
||||
/*
|
||||
* if we're in the middle of a paren thing,
|
||||
@ -8576,7 +8588,10 @@ get_c_indent()
|
||||
*/
|
||||
l = ml_get_curline();
|
||||
amount = cur_amount;
|
||||
if (*skipwhite(l) == ']' || l[STRLEN(l) - 1] == ']')
|
||||
|
||||
n = (int)STRLEN(l);
|
||||
if (terminated == ',' && (*skipwhite(l) == ']'
|
||||
|| (n >=2 && l[n - 2] == ']')))
|
||||
break;
|
||||
|
||||
/*
|
||||
|
@ -910,6 +910,28 @@ const char* s = R"foo(
|
||||
)foo";
|
||||
}
|
||||
|
||||
{
|
||||
int a[4] = {
|
||||
[0] = 0,
|
||||
[1] = 1,
|
||||
[2] = 2,
|
||||
[3] = 3,
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
a = b[2]
|
||||
+ 3;
|
||||
}
|
||||
|
||||
{
|
||||
if (1)
|
||||
/* aaaaa
|
||||
* bbbbb
|
||||
*/
|
||||
a = 1;
|
||||
}
|
||||
|
||||
/* end of AUTO */
|
||||
|
||||
STARTTEST
|
||||
|
@ -898,6 +898,28 @@ void getstring() {
|
||||
)foo";
|
||||
}
|
||||
|
||||
{
|
||||
int a[4] = {
|
||||
[0] = 0,
|
||||
[1] = 1,
|
||||
[2] = 2,
|
||||
[3] = 3,
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
a = b[2]
|
||||
+ 3;
|
||||
}
|
||||
|
||||
{
|
||||
if (1)
|
||||
/* aaaaa
|
||||
* bbbbb
|
||||
*/
|
||||
a = 1;
|
||||
}
|
||||
|
||||
/* end of AUTO */
|
||||
|
||||
|
||||
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
891,
|
||||
/**/
|
||||
890,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user