Loading ...
Sorry, an error occurred while loading the content.
 

Patch 7.3.164

Expand Messages
  • Bram Moolenaar
    Patch 7.3.164 Problem: C-indenting: a preprocessor statement confuses detection of a function delcaration. Solution: Ignore preprocessor lines. (Lech
    Message 1 of 1 , Apr 28, 2011
      Patch 7.3.164
      Problem: C-indenting: a preprocessor statement confuses detection of a
      function delcaration.
      Solution: Ignore preprocessor lines. (Lech Lorens) Also recognize the style
      to put a comma before the argument name.
      Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok


      *** ../vim-7.3.163/src/misc1.c 2011-04-11 16:56:29.000000000 +0200
      --- src/misc1.c 2011-04-28 12:49:55.000000000 +0200
      ***************
      *** 5396,5403 ****
      cin_ispreproc(s)
      char_u *s;
      {
      ! s = skipwhite(s);
      ! if (*s == '#')
      return TRUE;
      return FALSE;
      }
      --- 5396,5402 ----
      cin_ispreproc(s)
      char_u *s;
      {
      ! if (*skipwhite(s) == '#')
      return TRUE;
      return FALSE;
      }
      ***************
      *** 5513,5518 ****
      --- 5512,5521 ----
      else
      s = *sp;

      + /* Ignore line starting with #. */
      + if (cin_ispreproc(s))
      + return FALSE;
      +
      while (*s && *s != '(' && *s != ';' && *s != '\'' && *s != '"')
      {
      if (cin_iscomment(s)) /* ignore comments */
      ***************
      *** 5538,5550 ****
      retval = TRUE;
      goto done;
      }
      ! if (*s == ',' && cin_nocode(s + 1))
      {
      ! /* ',' at the end: continue looking in the next line */
      if (lnum >= curbuf->b_ml.ml_line_count)
      break;
      !
      ! s = ml_get(++lnum);
      }
      else if (cin_iscomment(s)) /* ignore comments */
      s = cin_skipcomment(s);
      --- 5541,5569 ----
      retval = TRUE;
      goto done;
      }
      ! if ((*s == ',' && cin_nocode(s + 1)) || s[1] == NUL || cin_nocode(s))
      {
      ! int comma = (*s == ',');
      !
      ! /* ',' at the end: continue looking in the next line.
      ! * At the end: check for ',' in the next line, for this style:
      ! * func(arg1
      ! * , arg2) */
      ! for (;;)
      ! {
      ! if (lnum >= curbuf->b_ml.ml_line_count)
      ! break;
      ! s = ml_get(++lnum);
      ! if (!cin_ispreproc(s))
      ! break;
      ! }
      if (lnum >= curbuf->b_ml.ml_line_count)
      break;
      ! /* Require a comma at end of the line or a comma or ')' at the
      ! * start of next line. */
      ! s = skipwhite(s);
      ! if (!comma && *s != ',' && *s != ')')
      ! break;
      }
      else if (cin_iscomment(s)) /* ignore comments */
      s = cin_skipcomment(s);
      *** ../vim-7.3.163/src/testdir/test3.in 2010-08-15 21:57:29.000000000 +0200
      --- src/testdir/test3.in 2011-04-28 12:15:12.000000000 +0200
      ***************
      *** 1315,1320 ****
      --- 1315,1349 ----
      }

      STARTTEST
      + :set cino=(0,ts
      + 2kdd=][
      + ENDTEST
      +
      + void func(int a
      + #if defined(FOO)
      + , int b
      + , int c
      + #endif
      + )
      + {
      + }
      +
      + STARTTEST
      + :set cino=(0
      + 2kdd=][
      + ENDTEST
      +
      + void
      + func(int a
      + #if defined(FOO)
      + , int b
      + , int c
      + #endif
      + )
      + {
      + }
      +
      + STARTTEST
      :g/^STARTTEST/.,/^ENDTEST/d
      :1;/start of AUTO/,$wq! test.out
      ENDTEST
      *** ../vim-7.3.163/src/testdir/test3.ok 2010-08-15 21:57:29.000000000 +0200
      --- src/testdir/test3.ok 2011-04-28 12:54:04.000000000 +0200
      ***************
      *** 1183,1185 ****
      --- 1183,1206 ----
      foo;
      }

      +
      + void func(int a
      + #if defined(FOO)
      + , int b
      + , int c
      + #endif
      + )
      + {
      + }
      +
      +
      + void
      + func(int a
      + #if defined(FOO)
      + , int b
      + , int c
      + #endif
      + )
      + {
      + }
      +
      *** ../vim-7.3.163/src/version.c 2011-04-28 12:56:57.000000000 +0200
      --- src/version.c 2011-04-28 12:59:55.000000000 +0200
      ***************
      *** 716,717 ****
      --- 716,719 ----
      { /* Add new patch number below this line */
      + /**/
      + 164,
      /**/

      --
      Due knot trussed yore spell chequer two fined awl miss steaks.

      /// Bram Moolenaar -- Bram@... -- 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
    Your message has been successfully submitted and would be delivered to recipients shortly.