To: vim_dev@googlegroups.com Subject: Patch 7.3.332 Fcc: outbox From: Bram Moolenaar 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 ///