home *** CD-ROM | disk | FTP | other *** search
- 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 ///
-