[vim] - patchlevel 380

Karsten Hopp karsten at fedoraproject.org
Fri Dec 23 21:33:35 UTC 2011


commit b77daeee411542ab07658217908e796878e4172e
Author: Karsten Hopp <karsten at redhat.com>
Date:   Fri Dec 23 22:30:58 2011 +0100

    - patchlevel 380

 7.3.380 |  318 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 318 insertions(+), 0 deletions(-)
---
diff --git a/7.3.380 b/7.3.380
new file mode 100644
index 0000000..a8f4bcf
--- /dev/null
+++ b/7.3.380
@@ -0,0 +1,318 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.380
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.380
+Problem:    C-indenting wrong for a function header.
+Solution:   Skip to the start paren. (Lech Lorens)
+Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.379/src/misc1.c	2011-12-14 20:05:17.000000000 +0100
+--- src/misc1.c	2011-12-14 20:16:43.000000000 +0100
+***************
+*** 4943,4949 ****
+  static int	cin_islinecomment __ARGS((char_u *));
+  static int	cin_isterminated __ARGS((char_u *, int, int));
+  static int	cin_isinit __ARGS((void));
+! static int	cin_isfuncdecl __ARGS((char_u **, linenr_T));
+  static int	cin_isif __ARGS((char_u *));
+  static int	cin_iselse __ARGS((char_u *));
+  static int	cin_isdo __ARGS((char_u *));
+--- 4943,4949 ----
+  static int	cin_islinecomment __ARGS((char_u *));
+  static int	cin_isterminated __ARGS((char_u *, int, int));
+  static int	cin_isinit __ARGS((void));
+! static int	cin_isfuncdecl __ARGS((char_u **, linenr_T, linenr_T, int, int));
+  static int	cin_isif __ARGS((char_u *));
+  static int	cin_iselse __ARGS((char_u *));
+  static int	cin_isdo __ARGS((char_u *));
+***************
+*** 5585,5605 ****
+   * "sp" points to a string with the line.  When looking at other lines it must
+   * be restored to the line.  When it's NULL fetch lines here.
+   * "lnum" is where we start looking.
+   */
+      static int
+! cin_isfuncdecl(sp, first_lnum)
+      char_u	**sp;
+      linenr_T	first_lnum;
+  {
+      char_u	*s;
+      linenr_T	lnum = first_lnum;
+      int		retval = FALSE;
+  
+      if (sp == NULL)
+  	s = ml_get(lnum);
+      else
+  	s = *sp;
+  
+      /* Ignore line starting with #. */
+      if (cin_ispreproc(s))
+  	return FALSE;
+--- 5585,5621 ----
+   * "sp" points to a string with the line.  When looking at other lines it must
+   * be restored to the line.  When it's NULL fetch lines here.
+   * "lnum" is where we start looking.
++  * "min_lnum" is the line before which we will not be looking.
+   */
+      static int
+! cin_isfuncdecl(sp, first_lnum, min_lnum, ind_maxparen, ind_maxcomment)
+      char_u	**sp;
+      linenr_T	first_lnum;
++     linenr_T	min_lnum;
++     int		ind_maxparen;
++     int		ind_maxcomment;
+  {
+      char_u	*s;
+      linenr_T	lnum = first_lnum;
+      int		retval = FALSE;
++     pos_T	*trypos;
++     int		just_started = TRUE;
+  
+      if (sp == NULL)
+  	s = ml_get(lnum);
+      else
+  	s = *sp;
+  
++     if (find_last_paren(s, '(', ')')
++ 	&& (trypos = find_match_paren(ind_maxparen, ind_maxcomment)) != NULL)
++     {
++ 	lnum = trypos->lnum;
++ 	if (lnum < min_lnum)
++ 	    return FALSE;
++ 
++ 	s = ml_get(lnum);
++     }
++ 
+      /* Ignore line starting with #. */
+      if (cin_ispreproc(s))
+  	return FALSE;
+***************
+*** 5650,5662 ****
+  	    /* 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);
+  	else
+  	    ++s;
+      }
+  
+  done:
+--- 5666,5682 ----
+  	    /* Require a comma at end of the line or a comma or ')' at the
+  	     * start of next line. */
+  	    s = skipwhite(s);
+! 	    if (!just_started && (!comma && *s != ',' && *s != ')'))
+  		break;
++ 	    just_started = FALSE;
+  	}
+  	else if (cin_iscomment(s))	/* ignore comments */
+  	    s = cin_skipcomment(s);
+  	else
++ 	{
+  	    ++s;
++ 	    just_started = FALSE;
++ 	}
+      }
+  
+  done:
+***************
+*** 7158,7164 ****
+  			 * (it's a variable declaration).
+  			 */
+  			if (start_brace != BRACE_IN_COL0
+! 				|| !cin_isfuncdecl(&l, curwin->w_cursor.lnum))
+  			{
+  			    /* if the line is terminated with another ','
+  			     * it is a continued variable initialization.
+--- 7178,7185 ----
+  			 * (it's a variable declaration).
+  			 */
+  			if (start_brace != BRACE_IN_COL0
+! 				|| !cin_isfuncdecl(&l, curwin->w_cursor.lnum,
+! 					     0, ind_maxparen, ind_maxcomment))
+  			{
+  			    /* if the line is terminated with another ','
+  			     * it is a continued variable initialization.
+***************
+*** 8019,8025 ****
+  		&& vim_strchr(theline, '}') == NULL
+  		&& !cin_ends_in(theline, (char_u *)":", NULL)
+  		&& !cin_ends_in(theline, (char_u *)",", NULL)
+! 		&& cin_isfuncdecl(NULL, cur_curpos.lnum + 1)
+  		&& !cin_isterminated(theline, FALSE, TRUE))
+  	{
+  	    amount = ind_func_type;
+--- 8040,8048 ----
+  		&& vim_strchr(theline, '}') == NULL
+  		&& !cin_ends_in(theline, (char_u *)":", NULL)
+  		&& !cin_ends_in(theline, (char_u *)",", NULL)
+! 		&& cin_isfuncdecl(NULL, cur_curpos.lnum + 1,
+! 				  cur_curpos.lnum + 1,
+! 				  ind_maxparen, ind_maxcomment)
+  		&& !cin_isterminated(theline, FALSE, TRUE))
+  	{
+  	    amount = ind_func_type;
+***************
+*** 8125,8131 ****
+  		 * If the line looks like a function declaration, and we're
+  		 * not in a comment, put it the left margin.
+  		 */
+! 		if (cin_isfuncdecl(NULL, cur_curpos.lnum))  /* XXX */
+  		    break;
+  		l = ml_get_curline();
+  
+--- 8148,8155 ----
+  		 * If the line looks like a function declaration, and we're
+  		 * not in a comment, put it the left margin.
+  		 */
+! 		if (cin_isfuncdecl(NULL, cur_curpos.lnum, 0,
+! 				   ind_maxparen, ind_maxcomment))  /* XXX */
+  		    break;
+  		l = ml_get_curline();
+  
+***************
+*** 8173,8179 ****
+  		 * line (and the ones that follow) needs to be indented as
+  		 * parameters.
+  		 */
+! 		if (cin_isfuncdecl(&l, curwin->w_cursor.lnum))
+  		{
+  		    amount = ind_param;
+  		    break;
+--- 8197,8204 ----
+  		 * line (and the ones that follow) needs to be indented as
+  		 * parameters.
+  		 */
+! 		if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0,
+! 				   ind_maxparen, ind_maxcomment))
+  		{
+  		    amount = ind_param;
+  		    break;
+*** ../vim-7.3.379/src/testdir/test3.in	2011-12-14 20:05:17.000000000 +0100
+--- src/testdir/test3.in	2011-12-14 20:11:24.000000000 +0100
+***************
+*** 1429,1435 ****
+  
+  STARTTEST
+  :set cino&
+! 2kdd=4][
+  ENDTEST
+  
+  void func(void)
+--- 1429,1435 ----
+  
+  STARTTEST
+  :set cino&
+! 2kdd=7][
+  ENDTEST
+  
+  void func(void)
+***************
+*** 1478,1484 ****
+  	3, 4,
+  	5, 6};
+  
+! printf("Don't you dare indent this line incorrectly!\n);
+  }
+  
+  STARTTEST
+--- 1478,1506 ----
+  	3, 4,
+  	5, 6};
+  
+! printf("Don't you dare indent this line incorrectly!\n");
+! }
+! 
+! void
+! func4(a, b,
+! 		c)
+! int a;
+! int b;
+! int c;
+! {
+! }
+! 
+! void
+! func5(
+! 		int a,
+! 		int b)
+! {
+! }
+! 
+! void
+! func6(
+! 		int a)
+! {
+  }
+  
+  STARTTEST
+*** ../vim-7.3.379/src/testdir/test3.ok	2011-12-14 20:05:17.000000000 +0100
+--- src/testdir/test3.ok	2011-12-14 20:11:24.000000000 +0100
+***************
+*** 1331,1337 ****
+  		3, 4,
+  		5, 6};
+  
+! 	printf("Don't you dare indent this line incorrectly!\n);
+  }
+  
+  
+--- 1331,1359 ----
+  		3, 4,
+  		5, 6};
+  
+! 	printf("Don't you dare indent this line incorrectly!\n");
+! }
+! 
+! 	void
+! func4(a, b,
+! 		c)
+! 	int a;
+! 	int b;
+! 	int c;
+! {
+! }
+! 
+! 	void
+! func5(
+! 		int a,
+! 		int b)
+! {
+! }
+! 
+! 	void
+! func6(
+! 		int a)
+! {
+  }
+  
+  
+*** ../vim-7.3.379/src/version.c	2011-12-14 20:05:17.000000000 +0100
+--- src/version.c	2011-12-14 20:20:50.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+  {   /* Add new patch number below this line */
++ /**/
++     380,
+  /**/
+
+-- 
+"Intelligence has much less practical application than you'd think."
+		  -- Scott Adams, Dilbert.
+
+ /// Bram Moolenaar -- Bram at 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    ///


More information about the scm-commits mailing list