summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2014-08-06 17:44:14 +0200
committerBram Moolenaar <Bram@vim.org>2014-08-06 17:44:14 +0200
commit04d17ae1678846c4857cd86cf3eaf47d60c04c85 (patch)
tree124d23d766325e5ddc7d79ee3ed8547dff7e13d9
parent9b352c46f0604288087c629381158e3e80943fbe (diff)
downloadvim-04d17ae1678846c4857cd86cf3eaf47d60c04c85.zip
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.
-rw-r--r--src/misc1.c5
-rw-r--r--src/testdir/test3.in8
-rw-r--r--src/testdir/test3.ok8
-rw-r--r--src/version.c2
4 files changed, 23 insertions, 0 deletions
diff --git a/src/misc1.c b/src/misc1.c
index 2c28aae84..6ae72cfbb 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -6995,6 +6995,7 @@ get_c_indent()
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 @@ get_c_indent()
/*
* 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 de8670038..7757569e3 100644
--- a/src/testdir/test3.in
+++ b/src/testdir/test3.in
@@ -464,6 +464,14 @@ label: if (asdf &&
asdfasdf
}
+{
+for ( int i = 0;
+ i < 10; i++ )
+{
+}
+ i = 0;
+}
+
class bob
{
int foo() {return 1;}
diff --git a/src/testdir/test3.ok b/src/testdir/test3.ok
index 0d0e76fce..e75de0ffa 100644
--- a/src/testdir/test3.ok
+++ b/src/testdir/test3.ok
@@ -452,6 +452,14 @@ label: if (asdf &&
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 082c5fc44..aa6415590 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 395,
+/**/
394,
/**/
393,