updated for version 7.4.395
Problem: C indent is wrong below an if with wrapped condition followed by
curly braces. (Trevor Powell)
Solution: Make a copy of tryposBrace.
diff --git a/src/misc1.c b/src/misc1.c
index 2c28aae..6ae72cf 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -6995,6 +6995,7 @@
char_u *linecopy;
pos_T *trypos;
pos_T *tryposBrace = NULL;
+ pos_T tryposBraceCopy;
pos_T our_paren_pos;
char_u *start;
int start_brace;
@@ -7532,7 +7533,11 @@
/*
* We are inside braces, there is a { before this line at the position
* stored in tryposBrace.
+ * Make a copy of tryposBrace, it may point to pos_copy inside
+ * find_start_brace(), which may be changed somewhere.
*/
+ tryposBraceCopy = *tryposBrace;
+ tryposBrace = &tryposBraceCopy;
trypos = tryposBrace;
ourscope = trypos->lnum;
start = ml_get(ourscope);
diff --git a/src/testdir/test3.in b/src/testdir/test3.in
index de86700..7757569 100644
--- a/src/testdir/test3.in
+++ b/src/testdir/test3.in
Binary files differ
diff --git a/src/testdir/test3.ok b/src/testdir/test3.ok
index 0d0e76f..e75de0f 100644
--- a/src/testdir/test3.ok
+++ b/src/testdir/test3.ok
@@ -452,6 +452,14 @@
asdfasdf
}
+{
+ for ( int i = 0;
+ i < 10; i++ )
+ {
+ }
+ i = 0;
+}
+
class bob
{
int foo() {return 1;}
diff --git a/src/version.c b/src/version.c
index 082c5fc..aa64155 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 395,
+/**/
394,
/**/
393,