To: vim_dev@googlegroups.com
Subject: Patch 7.3.249
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.249
Problem:    Wrong indenting for array initializer.
Solution:   Detect '}' in a better way. (Lech Lorens)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok


*** ../vim-7.3.248/src/misc1.c	2011-06-12 21:51:01.000000000 +0200
--- src/misc1.c	2011-07-15 14:06:44.000000000 +0200
***************
*** 7945,7952 ****
  			 * If we're at the end of a block, skip to the start of
  			 * that block.
  			 */
! 			curwin->w_cursor.col = 0;
! 			if (*cin_skipcomment(l) == '}'
  				&& (trypos = find_start_brace(ind_maxcomment))
  							    != NULL) /* XXX */
  			{
--- 7945,7951 ----
  			 * If we're at the end of a block, skip to the start of
  			 * that block.
  			 */
! 			if (find_last_paren(l, '{', '}')
  				&& (trypos = find_start_brace(ind_maxcomment))
  							    != NULL) /* XXX */
  			{
*** ../vim-7.3.248/src/testdir/test3.in	2011-06-12 21:51:01.000000000 +0200
--- src/testdir/test3.in	2011-07-15 14:03:41.000000000 +0200
***************
*** 1452,1457 ****
--- 1452,1487 ----
  
  STARTTEST
  :set cino&
+ :set cino+=l1
+ 2kdd=][
+ ENDTEST
+ 
+ void func(void)
+ {
+ 	int tab[] =
+ 	{
+ 		1, 2, 3,
+ 		4, 5, 6};
+ 
+ 	printf("Indent this line correctly!\n");
+ 
+ 	switch (foo)
+ 	{
+ 		case bar:
+ 			printf("bar");
+ 			break;
+ 		case baz: {
+ 			printf("baz");
+ 			break;
+ 		}
+ 		case quux:
+ printf("But don't break the indentation of this instruction\n");
+ break;
+ 	}
+ }
+ 
+ STARTTEST
+ :set cino&
  2kdd=][
  ENDTEST
  
*** ../vim-7.3.248/src/testdir/test3.ok	2011-06-12 21:51:01.000000000 +0200
--- src/testdir/test3.ok	2011-07-15 14:03:41.000000000 +0200
***************
*** 1310,1315 ****
--- 1310,1340 ----
  
  void func(void)
  {
+ 	int tab[] =
+ 	{
+ 		1, 2, 3,
+ 		4, 5, 6};
+ 
+ 	printf("Indent this line correctly!\n");
+ 
+ 	switch (foo)
+ 	{
+ 		case bar:
+ 			printf("bar");
+ 			break;
+ 		case baz: {
+ 			printf("baz");
+ 			break;
+ 		}
+ 		case quux:
+ 			printf("But don't break the indentation of this instruction\n");
+ 			break;
+ 	}
+ }
+ 
+ 
+ void func(void)
+ {
  	cout << "a"
  		<< "b"
  		<< ") :"
*** ../vim-7.3.248/src/version.c	2011-07-15 13:51:57.000000000 +0200
--- src/version.c	2011-07-15 14:12:05.000000000 +0200
***************
*** 711,712 ****
--- 711,714 ----
  {   /* Add new patch number below this line */
+ /**/
+     249,
  /**/

-- 
   GALAHAD hurries to the door and pushes through it.  As he leaves the room
   we CUT TO the reverse to show that he is now in a room full of bathing
   and romping GIRLIES, all innocent, wide-eyed and beautiful.  They smile
   enchantingly at him as he tries to keep walking without being diverted by
   the lovely sights assaulting his eyeballs.
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// 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    ///
