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 -- [email protected] -- 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    ///

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui