To: vim_dev@googlegroups.com
Subject: Patch 7.3.332
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.332 (after 7.3.202)
Problem:    Indent after "public:" is not increased in C++ code. (Lech Lorens)
Solution:   Check for namespace after the regular checks. (partly by Martin
	    Gieseking)
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok


*** ../vim-7.3.331/src/misc1.c	2011-09-07 19:58:04.000000000 +0200
--- src/misc1.c	2011-10-04 17:59:52.000000000 +0200
***************
*** 6389,6394 ****
--- 6389,6395 ----
      int		lookfor_cpp_namespace = FALSE;
      int		cont_amount = 0;    /* amount for continuation line */
      int		original_line_islabel;
+     int		added_to_amount = 0;
  
      for (options = curbuf->b_p_cino; *options; )
      {
***************
*** 7216,7267 ****
  			else
  			    amount += ind_continuation;
  		    }
! 		    else if (lookfor_cpp_namespace)
  		    {
! 			if (curwin->w_cursor.lnum == ourscope)
! 			    continue;
  
! 			if (curwin->w_cursor.lnum == 0
! 				|| curwin->w_cursor.lnum
  					      < ourscope - FIND_NAMESPACE_LIM)
! 			    break;
  
! 			l = ml_get_curline();
  
! 			/*
! 			 * If we're in a comment now, skip to the start of the
! 			 * comment.
! 			 */
! 			trypos = find_start_comment(ind_maxcomment);
! 			if (trypos != NULL)
! 			{
! 			    curwin->w_cursor.lnum = trypos->lnum + 1;
! 			    curwin->w_cursor.col = 0;
! 			    continue;
! 			}
! 
! 			/*
! 			 * Skip preprocessor directives and blank lines.
! 			 */
! 			if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
! 			    continue;
  
! 			if (cin_is_cpp_namespace(l))
! 			{
! 			    amount += ind_cpp_namespace;
! 			    break;
! 			}
  
! 			if (cin_nocode(l))
! 			    continue;
  
! 		    }
! 		    else if (lookfor != LOOKFOR_TERM
! 					  && lookfor != LOOKFOR_CPP_BASECLASS)
! 		    {
! 			amount = scope_amount;
! 			if (theline[0] == '{')
! 			    amount += ind_open_extra;
  		    }
  		    break;
  		}
--- 7217,7275 ----
  			else
  			    amount += ind_continuation;
  		    }
! 		    else
  		    {
! 			if (lookfor != LOOKFOR_TERM
! 					  && lookfor != LOOKFOR_CPP_BASECLASS)
! 			{
! 			    amount = scope_amount;
! 			    if (theline[0] == '{')
! 			    {
! 				amount += ind_open_extra;
! 				added_to_amount = ind_open_extra;
! 			    }
! 			}
  
! 			if (lookfor_cpp_namespace)
! 			{
! 			    /*
! 			     * Looking for C++ namespace, need to look further
! 			     * back.
! 			     */
! 			    if (curwin->w_cursor.lnum == ourscope)
! 				continue;
! 
! 			    if (curwin->w_cursor.lnum == 0
! 				    || curwin->w_cursor.lnum
  					      < ourscope - FIND_NAMESPACE_LIM)
! 				break;
  
! 			    l = ml_get_curline();
  
! 			    /* If we're in a comment now, skip to the start of
! 			     * the comment. */
! 			    trypos = find_start_comment(ind_maxcomment);
! 			    if (trypos != NULL)
! 			    {
! 				curwin->w_cursor.lnum = trypos->lnum + 1;
! 				curwin->w_cursor.col = 0;
! 				continue;
! 			    }
  
! 			    /* Skip preprocessor directives and blank lines. */
! 			    if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
! 				continue;
  
! 			    /* Finally the actual check for "namespace". */
! 			    if (cin_is_cpp_namespace(l))
! 			    {
! 				amount += ind_cpp_namespace - added_to_amount;
! 				break;
! 			    }
  
! 			    if (cin_nocode(l))
! 				continue;
! 			}
  		    }
  		    break;
  		}
*** ../vim-7.3.331/src/testdir/test3.in	2011-07-20 15:09:38.000000000 +0200
--- src/testdir/test3.in	2011-10-04 17:45:20.000000000 +0200
***************
*** 1309,1314 ****
--- 1309,1328 ----
  };
  
  STARTTEST
+ :set cino=(0,gs,hs
+ 2kdd]]=][
+ ENDTEST
+ 
+ class Foo : public Bar
+ {
+ public:
+ virtual void method1(void) = 0;
+ virtual void method2(int arg1,
+ int arg2,
+ int arg3) = 0;
+ };
+ 
+ STARTTEST
  :set cino=+20
  2kdd]]=][
  ENDTEST
*** ../vim-7.3.331/src/testdir/test3.ok	2011-07-20 15:09:38.000000000 +0200
--- src/testdir/test3.ok	2011-10-04 17:47:25.000000000 +0200
***************
*** 1190,1195 ****
--- 1190,1205 ----
  };
  
  
+ class Foo : public Bar
+ {
+ 	public:
+ 		virtual void method1(void) = 0;
+ 		virtual void method2(int arg1,
+ 							 int arg2,
+ 							 int arg3) = 0;
+ };
+ 
+ 
  	void
  foo()
  {
*** ../vim-7.3.331/src/version.c	2011-10-04 17:00:13.000000000 +0200
--- src/version.c	2011-10-04 18:02:17.000000000 +0200
***************
*** 711,712 ****
--- 711,714 ----
  {   /* Add new patch number below this line */
+ /**/
+     332,
  /**/

-- 
Latest survey shows that 3 out of 4 people make up 75% of the
world's population.

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