Patch 7.4.893
Problem:    C indenting is wrong below a "case (foo):" because it is
            recognized as a C++ base class construct.  Issue #38.
Solution:   Check for the case keyword.
Files:      src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok


*** ../vim-7.4.892/src/misc1.c  2015-10-07 11:41:43.154141198 +0200
--- src/misc1.c 2015-10-13 16:03:35.727021051 +0200
***************
*** 6555,6561 ****
  
      pos->lnum = lnum;
      line = ml_get(lnum);
!     s = cin_skipcomment(line);
      for (;;)
      {
        if (*s == NUL)
--- 6555,6561 ----
  
      pos->lnum = lnum;
      line = ml_get(lnum);
!     s = line;
      for (;;)
      {
        if (*s == NUL)
***************
*** 6564,6569 ****
--- 6564,6576 ----
                break;
            /* Continue in the cursor line. */
            line = ml_get(++lnum);
+           s = line;
+       }
+       if (s == line)
+       {
+           /* don't recognize "case (foo):" as a baseclass */
+           if (cin_iscase(s, FALSE))
+               break;
            s = cin_skipcomment(line);
            if (*s == NUL)
                continue;
*** ../vim-7.4.892/src/testdir/test3.in 2015-10-07 11:41:43.158141156 +0200
--- src/testdir/test3.in        2015-10-13 16:06:13.781358279 +0200
***************
*** 932,937 ****
--- 932,964 ----
  a = 1;
  }
  
+ void func()
+ {
+ switch (foo)
+ {
+ case (bar):
+ if (baz())
+ quux();
+ break;
+ case (shmoo):
+ if (!bar)
+ {
+ }
+ case (foo1):
+ switch (bar)
+ {
+ case baz:
+ baz_f();
+ break;
+ }
+ break;
+ default:
+ baz();
+ baz();
+ break;
+ }
+ }
+ 
  /* end of AUTO */
  
  STARTTEST
*** ../vim-7.4.892/src/testdir/test3.ok 2015-10-07 11:41:43.158141156 +0200
--- src/testdir/test3.ok        2015-10-13 16:05:58.869515164 +0200
***************
*** 920,925 ****
--- 920,952 ----
                a = 1;
  }
  
+ void func()
+ {
+       switch (foo)
+       {
+               case (bar):
+                       if (baz())
+                               quux();
+                       break;
+               case (shmoo):
+                       if (!bar)
+                       {
+                       }
+               case (foo1):
+                       switch (bar)
+                       {
+                               case baz:
+                                       baz_f();
+                                       break;
+                       }
+                       break;
+               default:
+                       baz();
+                       baz();
+                       break;
+       }
+ }
+ 
  /* end of AUTO */
  
  
*** ../vim-7.4.892/src/version.c        2015-10-13 13:49:04.068168461 +0200
--- src/version.c       2015-10-13 16:11:50.681813418 +0200
***************
*** 743,744 ****
--- 743,746 ----
  {   /* Add new patch number below this line */
+ /**/
+     893,
  /**/

-- 
My sister Cecilia opened a computer store in Hawaii.
She sells C shells by the seashore.

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

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui