mirror of
https://github.com/vim/vim.git
synced 2025-09-29 04:34:16 -04:00
updated for version 7.3.363
Problem: C indenting is wrong after #endif followed by a semicolon. Solution: Add special handling for a semicolon in a line by itself. (Lech Lorens)
This commit is contained in:
23
src/misc1.c
23
src/misc1.c
@@ -8142,6 +8142,29 @@ term_again:
|
|||||||
if (cin_ends_in(l, (char_u *)"};", NULL))
|
if (cin_ends_in(l, (char_u *)"};", NULL))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Find a line only has a semicolon that belongs to a previous
|
||||||
|
* line ending in '}', e.g. before an #endif. Don't increase
|
||||||
|
* indent then.
|
||||||
|
*/
|
||||||
|
if (*(look = skipwhite(l)) == ';' && cin_nocode(look + 1))
|
||||||
|
{
|
||||||
|
pos_T curpos_save = curwin->w_cursor;
|
||||||
|
|
||||||
|
while (curwin->w_cursor.lnum > 1)
|
||||||
|
{
|
||||||
|
look = ml_get(--curwin->w_cursor.lnum);
|
||||||
|
if (!(cin_nocode(look) || cin_ispreproc_cont(
|
||||||
|
&look, &curwin->w_cursor.lnum)))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (curwin->w_cursor.lnum > 0
|
||||||
|
&& cin_ends_in(look, (char_u *)"}", NULL))
|
||||||
|
break;
|
||||||
|
|
||||||
|
curwin->w_cursor = curpos_save;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the PREVIOUS line is a function declaration, the current
|
* If the PREVIOUS line is a function declaration, the current
|
||||||
* line (and the ones that follow) needs to be indented as
|
* line (and the ones that follow) needs to be indented as
|
||||||
|
@@ -1454,6 +1454,16 @@ void func2(void)
|
|||||||
int tab[] =
|
int tab[] =
|
||||||
{1, 2,
|
{1, 2,
|
||||||
3, 4,
|
3, 4,
|
||||||
|
5, 6};
|
||||||
|
|
||||||
|
printf("This line used to be indented incorrectly.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int foo[]
|
||||||
|
#ifdef BAR
|
||||||
|
|
||||||
|
= { 1, 2, 3,
|
||||||
|
4, 5, 6 }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
@@ -1307,6 +1307,16 @@ void func2(void)
|
|||||||
printf("This line used to be indented incorrectly.\n");
|
printf("This line used to be indented incorrectly.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int foo[]
|
||||||
|
#ifdef BAR
|
||||||
|
|
||||||
|
= { 1, 2, 3,
|
||||||
|
4, 5, 6 }
|
||||||
|
|
||||||
|
#endif
|
||||||
|
;
|
||||||
|
int baz;
|
||||||
|
|
||||||
void func3(void)
|
void func3(void)
|
||||||
{
|
{
|
||||||
int tab[] = {
|
int tab[] = {
|
||||||
|
@@ -714,6 +714,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 */
|
||||||
|
/**/
|
||||||
|
363,
|
||||||
/**/
|
/**/
|
||||||
362,
|
362,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user