164 lines
3.9 KiB
Plaintext
164 lines
3.9 KiB
Plaintext
|
To: vim_dev@googlegroups.com
|
||
|
Subject: Patch 7.3.178
|
||
|
Fcc: outbox
|
||
|
From: Bram Moolenaar <Bram@moolenaar.net>
|
||
|
Mime-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
------------
|
||
|
|
||
|
Patch 7.3.178
|
||
|
Problem: C-indent doesn't handle code right after { correctly.
|
||
|
Solution: Fix detecting unterminated line. (Lech Lorens)
|
||
|
Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
|
||
|
|
||
|
|
||
|
*** ../vim-7.3.177/src/misc1.c 2011-04-28 17:48:39.000000000 +0200
|
||
|
--- src/misc1.c 2011-05-10 11:35:09.000000000 +0200
|
||
|
***************
|
||
|
*** 4983,4989 ****
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
! * Return TRUE if there there is no code at *s. White space and comments are
|
||
|
* not considered code.
|
||
|
*/
|
||
|
static int
|
||
|
--- 4983,4989 ----
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
! * Return TRUE if there is no code at *s. White space and comments are
|
||
|
* not considered code.
|
||
|
*/
|
||
|
static int
|
||
|
***************
|
||
|
*** 5458,5465 ****
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
! * Recognize a line that starts with '{' or '}', or ends with ';', '{' or '}'.
|
||
|
* Don't consider "} else" a terminated line.
|
||
|
* Return the character terminating the line (ending char's have precedence if
|
||
|
* both apply in order to determine initializations).
|
||
|
*/
|
||
|
--- 5458,5468 ----
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
! * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
|
||
|
! * '}'.
|
||
|
* Don't consider "} else" a terminated line.
|
||
|
+ * Don't consider a line where there are unmatched opening braces before '}',
|
||
|
+ * ';' or ',' a terminated line.
|
||
|
* Return the character terminating the line (ending char's have precedence if
|
||
|
* both apply in order to determine initializations).
|
||
|
*/
|
||
|
***************
|
||
|
*** 5470,5475 ****
|
||
|
--- 5473,5479 ----
|
||
|
int incl_comma; /* recognize a trailing comma */
|
||
|
{
|
||
|
char_u found_start = 0;
|
||
|
+ unsigned n_open = 0;
|
||
|
|
||
|
s = cin_skipcomment(s);
|
||
|
|
||
|
***************
|
||
|
*** 5480,5489 ****
|
||
|
{
|
||
|
/* skip over comments, "" strings and 'c'haracters */
|
||
|
s = skip_string(cin_skipcomment(s));
|
||
|
! if ((*s == ';' || (incl_open && *s == '{') || *s == '}'
|
||
|
! || (incl_comma && *s == ','))
|
||
|
&& cin_nocode(s + 1))
|
||
|
return *s;
|
||
|
|
||
|
if (*s)
|
||
|
s++;
|
||
|
--- 5484,5502 ----
|
||
|
{
|
||
|
/* skip over comments, "" strings and 'c'haracters */
|
||
|
s = skip_string(cin_skipcomment(s));
|
||
|
! if (*s == '}' && n_open > 0)
|
||
|
! --n_open;
|
||
|
! if (n_open == 0
|
||
|
! && (*s == ';' || *s == '}' || (incl_comma && *s == ','))
|
||
|
&& cin_nocode(s + 1))
|
||
|
return *s;
|
||
|
+ else if (*s == '{')
|
||
|
+ {
|
||
|
+ if (incl_open && cin_nocode(s + 1))
|
||
|
+ return *s;
|
||
|
+ else
|
||
|
+ ++n_open;
|
||
|
+ }
|
||
|
|
||
|
if (*s)
|
||
|
s++;
|
||
|
*** ../vim-7.3.177/src/testdir/test3.in 2011-04-28 13:01:59.000000000 +0200
|
||
|
--- src/testdir/test3.in 2011-05-10 11:34:13.000000000 +0200
|
||
|
***************
|
||
|
*** 1344,1349 ****
|
||
|
--- 1344,1365 ----
|
||
|
}
|
||
|
|
||
|
STARTTEST
|
||
|
+ :set cino&
|
||
|
+ 2kdd=][
|
||
|
+ ENDTEST
|
||
|
+
|
||
|
+ void func(void)
|
||
|
+ {
|
||
|
+ if(x==y)
|
||
|
+ if(y==z)
|
||
|
+ foo=1;
|
||
|
+ else { bar=1;
|
||
|
+ baz=2;
|
||
|
+ }
|
||
|
+ printf("Foo!\n");
|
||
|
+ }
|
||
|
+
|
||
|
+ STARTTEST
|
||
|
:g/^STARTTEST/.,/^ENDTEST/d
|
||
|
:1;/start of AUTO/,$wq! test.out
|
||
|
ENDTEST
|
||
|
*** ../vim-7.3.177/src/testdir/test3.ok 2011-04-28 13:01:59.000000000 +0200
|
||
|
--- src/testdir/test3.ok 2011-05-10 11:34:13.000000000 +0200
|
||
|
***************
|
||
|
*** 1204,1206 ****
|
||
|
--- 1204,1218 ----
|
||
|
{
|
||
|
}
|
||
|
|
||
|
+
|
||
|
+ void func(void)
|
||
|
+ {
|
||
|
+ if(x==y)
|
||
|
+ if(y==z)
|
||
|
+ foo=1;
|
||
|
+ else { bar=1;
|
||
|
+ baz=2;
|
||
|
+ }
|
||
|
+ printf("Foo!\n");
|
||
|
+ }
|
||
|
+
|
||
|
*** ../vim-7.3.177/src/version.c 2011-05-05 18:31:54.000000000 +0200
|
||
|
--- src/version.c 2011-05-10 11:37:43.000000000 +0200
|
||
|
***************
|
||
|
*** 716,717 ****
|
||
|
--- 716,719 ----
|
||
|
{ /* Add new patch number below this line */
|
||
|
+ /**/
|
||
|
+ 178,
|
||
|
/**/
|
||
|
|
||
|
--
|
||
|
hundred-and-one symptoms of being an internet addict:
|
||
|
69. Yahoo welcomes you with your own start page
|
||
|
|
||
|
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||
|
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||
|
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||
|
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|