File 6.3.059 of Package kvim

To: vim-dev@vim.org
Subject: Patch 6.3.059
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------

Patch 6.3.059
Problem:    Crash when expanding an ":edit" command containing several spaces
	    with the shell. (Brian Hirt)
Solution:   Allocate enough space for the quotes.
Files:	    src/os_unix.c


*** ../vim-6.3.058/src/os_unix.c	Sat Sep 18 20:28:07 2004
--- src/os_unix.c	Sat Jan 29 15:07:53 2005
***************
*** 4735,4742 ****
  
      /* "unset nonomatch; print -N >" plus two is 29 */
      len = STRLEN(tempname) + 29;
!     for (i = 0; i < num_pat; ++i)	/* count the length of the patterns */
  	len += STRLEN(pat[i]) + 3;	/* add space and two quotes */
      command = alloc(len);
      if (command == NULL)
      {
--- 4735,4766 ----
  
      /* "unset nonomatch; print -N >" plus two is 29 */
      len = STRLEN(tempname) + 29;
!     for (i = 0; i < num_pat; ++i)
!     {
! 	/* Count the length of the patterns in the same way as they are put in
! 	 * "command" below. */
! #ifdef USE_SYSTEM
  	len += STRLEN(pat[i]) + 3;	/* add space and two quotes */
+ #else
+ 	++len;				/* add space */
+ 	for (j = 0; pat[i][j] != NUL; )
+ 	    if (vim_strchr((char_u *)" '", pat[i][j]) != NULL)
+ 	    {
+ 		len += 2;		/* add two quotes */
+ 		while (pat[i][j] != NUL
+ 			&& vim_strchr((char_u *)" '", pat[i][j]) != NULL)
+ 		{
+ 		    ++len;
+ 		    ++j;
+ 		}
+ 	    }
+ 	    else
+ 	    {
+ 		++len;
+ 		++j;
+ 	    }
+ #endif
+     }
      command = alloc(len);
      if (command == NULL)
      {
*** ../vim-6.3.058/src/version.c	Tue Jan 18 10:53:53 2005
--- src/version.c	Sat Jan 29 16:11:00 2005
***************
*** 643,644 ****
--- 643,646 ----
  {   /* Add new patch number below this line */
+ /**/
+     59,
  /**/

-- 
The budget process was invented by an alien race of sadistic beings who
resemble large cats.
				(Scott Adams - The Dilbert principle)

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\              Project leader for A-A-P -- http://www.A-A-P.org        ///
 \\\     Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html   ///
openSUSE Build Service is sponsored by