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 *
|
static pos_T *
|
||||||
ind_find_start_CORS() /* XXX */
|
ind_find_start_CORS() /* XXX */
|
||||||
{
|
{
|
||||||
pos_T *comment_pos = find_start_comment(curbuf->b_ind_maxcomment);
|
static pos_T comment_pos_copy;
|
||||||
pos_T *rs_pos = find_start_rawstring(curbuf->b_ind_maxcomment);
|
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 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. */
|
* 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
|
if (terminated == 0 || (lookfor != LOOKFOR_UNTERM
|
||||||
&& terminated == ','))
|
&& terminated == ','))
|
||||||
{
|
{
|
||||||
if (*skipwhite(l) == '[' || l[STRLEN(l) - 1] == '[')
|
if (lookfor != LOOKFOR_ENUM_OR_INIT &&
|
||||||
|
(*skipwhite(l) == '[' || l[STRLEN(l) - 1] == '['))
|
||||||
amount += ind_continuation;
|
amount += ind_continuation;
|
||||||
/*
|
/*
|
||||||
* if we're in the middle of a paren thing,
|
* if we're in the middle of a paren thing,
|
||||||
@ -8576,7 +8588,10 @@ get_c_indent()
|
|||||||
*/
|
*/
|
||||||
l = ml_get_curline();
|
l = ml_get_curline();
|
||||||
amount = cur_amount;
|
amount = cur_amount;
|
||||||
if (*skipwhite(l) == ']' || l[STRLEN(l) - 1] == ']')
|
|
||||||
|
n = (int)STRLEN(l);
|
||||||
|
if (terminated == ',' && (*skipwhite(l) == ']'
|
||||||
|
|| (n >=2 && l[n - 2] == ']')))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -910,6 +910,28 @@ const char* s = R"foo(
|
|||||||
)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 */
|
/* end of AUTO */
|
||||||
|
|
||||||
STARTTEST
|
STARTTEST
|
||||||
|
@ -898,6 +898,28 @@ void getstring() {
|
|||||||
)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 */
|
/* end of AUTO */
|
||||||
|
|
||||||
|
|
||||||
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
891,
|
||||||
/**/
|
/**/
|
||||||
890,
|
890,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user