Karsten Hopp 3e4260
To: vim_dev@googlegroups.com
Karsten Hopp 3e4260
Subject: Patch 7.3.549
Karsten Hopp 3e4260
Fcc: outbox
Karsten Hopp 3e4260
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp 3e4260
Mime-Version: 1.0
Karsten Hopp 3e4260
Content-Type: text/plain; charset=UTF-8
Karsten Hopp 3e4260
Content-Transfer-Encoding: 8bit
Karsten Hopp 3e4260
------------
Karsten Hopp 3e4260
Karsten Hopp 3e4260
Patch 7.3.549
Karsten Hopp 3e4260
Problem:    In 'cinoptions' "0s" is interpreted as one shiftwidth. (David
Karsten Hopp 3e4260
	    Pineau)
Karsten Hopp 3e4260
Solution:   Use the zero as zero. (Lech Lorens)
Karsten Hopp 3e4260
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
Karsten Hopp 3e4260
Karsten Hopp 3e4260
Karsten Hopp 3e4260
*** ../vim-7.3.548/src/misc1.c	2012-06-06 16:12:54.000000000 +0200
Karsten Hopp 3e4260
--- src/misc1.c	2012-06-13 13:17:11.000000000 +0200
Karsten Hopp 3e4260
***************
Karsten Hopp 3e4260
*** 6635,6640 ****
Karsten Hopp 3e4260
--- 6635,6641 ----
Karsten Hopp 3e4260
      int		whilelevel;
Karsten Hopp 3e4260
      linenr_T	lnum;
Karsten Hopp 3e4260
      char_u	*options;
Karsten Hopp 3e4260
+     char_u	*digits;
Karsten Hopp 3e4260
      int		fraction = 0;	    /* init for GCC */
Karsten Hopp 3e4260
      int		divider;
Karsten Hopp 3e4260
      int		n;
Karsten Hopp 3e4260
***************
Karsten Hopp 3e4260
*** 6650,6655 ****
Karsten Hopp 3e4260
--- 6651,6657 ----
Karsten Hopp 3e4260
  	l = options++;
Karsten Hopp 3e4260
  	if (*options == '-')
Karsten Hopp 3e4260
  	    ++options;
Karsten Hopp 3e4260
+ 	digits = options;	    /* remember where the digits start */
Karsten Hopp 3e4260
  	n = getdigits(&options);
Karsten Hopp 3e4260
  	divider = 0;
Karsten Hopp 3e4260
  	if (*options == '.')	    /* ".5s" means a fraction */
Karsten Hopp 3e4260
***************
Karsten Hopp 3e4260
*** 6666,6672 ****
Karsten Hopp 3e4260
  	}
Karsten Hopp 3e4260
  	if (*options == 's')	    /* "2s" means two times 'shiftwidth' */
Karsten Hopp 3e4260
  	{
Karsten Hopp 3e4260
! 	    if (n == 0 && fraction == 0)
Karsten Hopp 3e4260
  		n = curbuf->b_p_sw;	/* just "s" is one 'shiftwidth' */
Karsten Hopp 3e4260
  	    else
Karsten Hopp 3e4260
  	    {
Karsten Hopp 3e4260
--- 6668,6674 ----
Karsten Hopp 3e4260
  	}
Karsten Hopp 3e4260
  	if (*options == 's')	    /* "2s" means two times 'shiftwidth' */
Karsten Hopp 3e4260
  	{
Karsten Hopp 3e4260
! 	    if (options == digits)
Karsten Hopp 3e4260
  		n = curbuf->b_p_sw;	/* just "s" is one 'shiftwidth' */
Karsten Hopp 3e4260
  	    else
Karsten Hopp 3e4260
  	    {
Karsten Hopp 3e4260
*** ../vim-7.3.548/src/testdir/test3.in	2012-04-05 17:17:38.000000000 +0200
Karsten Hopp 3e4260
--- src/testdir/test3.in	2012-06-13 13:17:31.000000000 +0200
Karsten Hopp 3e4260
***************
Karsten Hopp 3e4260
*** 977,982 ****
Karsten Hopp 3e4260
--- 977,1000 ----
Karsten Hopp 3e4260
  
Karsten Hopp 3e4260
  STARTTEST
Karsten Hopp 3e4260
  :set cin
Karsten Hopp 3e4260
+ :set cino=es,n0s
Karsten Hopp 3e4260
+ /main
Karsten Hopp 3e4260
+ =][
Karsten Hopp 3e4260
+ ENDTEST
Karsten Hopp 3e4260
+ 
Karsten Hopp 3e4260
+ main(void)
Karsten Hopp 3e4260
+ {
Karsten Hopp 3e4260
+ 	/* Make sure that cino=X0s is not parsed like cino=Xs. */
Karsten Hopp 3e4260
+ 	if (cond)
Karsten Hopp 3e4260
+ 		foo();
Karsten Hopp 3e4260
+ 	else
Karsten Hopp 3e4260
+ 	{
Karsten Hopp 3e4260
+ 		bar();
Karsten Hopp 3e4260
+ 	}
Karsten Hopp 3e4260
+ }
Karsten Hopp 3e4260
+ 
Karsten Hopp 3e4260
+ STARTTEST
Karsten Hopp 3e4260
+ :set cin
Karsten Hopp 3e4260
  :set cino=
Karsten Hopp 3e4260
  ]]=][
Karsten Hopp 3e4260
  ENDTEST
Karsten Hopp 3e4260
*** ../vim-7.3.548/src/testdir/test3.ok	2012-04-05 17:17:38.000000000 +0200
Karsten Hopp 3e4260
--- src/testdir/test3.ok	2012-06-13 13:17:31.000000000 +0200
Karsten Hopp 3e4260
***************
Karsten Hopp 3e4260
*** 940,945 ****
Karsten Hopp 3e4260
--- 940,957 ----
Karsten Hopp 3e4260
  }
Karsten Hopp 3e4260
  
Karsten Hopp 3e4260
  
Karsten Hopp 3e4260
+ main(void)
Karsten Hopp 3e4260
+ {
Karsten Hopp 3e4260
+ 	/* Make sure that cino=X0s is not parsed like cino=Xs. */
Karsten Hopp 3e4260
+ 	if (cond)
Karsten Hopp 3e4260
+ 		foo();
Karsten Hopp 3e4260
+ 	else
Karsten Hopp 3e4260
+ 	{
Karsten Hopp 3e4260
+ 		bar();
Karsten Hopp 3e4260
+ 	}
Karsten Hopp 3e4260
+ }
Karsten Hopp 3e4260
+ 
Karsten Hopp 3e4260
+ 
Karsten Hopp 3e4260
  {
Karsten Hopp 3e4260
  	do
Karsten Hopp 3e4260
  	{
Karsten Hopp 3e4260
*** ../vim-7.3.548/src/version.c	2012-06-07 21:09:35.000000000 +0200
Karsten Hopp 3e4260
--- src/version.c	2012-06-13 13:37:18.000000000 +0200
Karsten Hopp 3e4260
***************
Karsten Hopp 3e4260
*** 716,717 ****
Karsten Hopp 3e4260
--- 716,719 ----
Karsten Hopp 3e4260
  {   /* Add new patch number below this line */
Karsten Hopp 3e4260
+ /**/
Karsten Hopp 3e4260
+     549,
Karsten Hopp 3e4260
  /**/
Karsten Hopp 3e4260
Karsten Hopp 3e4260
-- 
Karsten Hopp 3e4260
hundred-and-one symptoms of being an internet addict:
Karsten Hopp 3e4260
29. Your phone bill comes to your doorstep in a box.
Karsten Hopp 3e4260
Karsten Hopp 3e4260
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp 3e4260
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp 3e4260
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
Karsten Hopp 3e4260
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///