Karsten Hopp 6fff82
To: vim_dev@googlegroups.com
Karsten Hopp 6fff82
Subject: Patch 7.3.399
Karsten Hopp 6fff82
Fcc: outbox
Karsten Hopp 6fff82
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp 6fff82
Mime-Version: 1.0
Karsten Hopp 6fff82
Content-Type: text/plain; charset=UTF-8
Karsten Hopp 6fff82
Content-Transfer-Encoding: 8bit
Karsten Hopp 6fff82
------------
Karsten Hopp 6fff82
Karsten Hopp 6fff82
Patch 7.3.399
Karsten Hopp 6fff82
Problem:    ":cd" doesn't work when the path contains wildcards. (Yukihiro
Karsten Hopp 6fff82
	    Nakadaira)
Karsten Hopp 6fff82
Solution:   Ignore wildcard errors when the EW_NOTWILD flag is used.
Karsten Hopp 6fff82
Files:	    src/misc1.c
Karsten Hopp 6fff82
Karsten Hopp 6fff82
Karsten Hopp 6fff82
*** ../vim-7.3.398/src/misc1.c	2011-12-14 20:21:29.000000000 +0100
Karsten Hopp 6fff82
--- src/misc1.c	2012-01-10 17:57:42.000000000 +0100
Karsten Hopp 6fff82
***************
Karsten Hopp 6fff82
*** 9103,9117 ****
Karsten Hopp 6fff82
      }
Karsten Hopp 6fff82
  
Karsten Hopp 6fff82
      /* compile the regexp into a program */
Karsten Hopp 6fff82
!     if (flags & EW_NOERROR)
Karsten Hopp 6fff82
  	++emsg_silent;
Karsten Hopp 6fff82
      regmatch.rm_ic = TRUE;		/* Always ignore case */
Karsten Hopp 6fff82
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
Karsten Hopp 6fff82
!     if (flags & EW_NOERROR)
Karsten Hopp 6fff82
  	--emsg_silent;
Karsten Hopp 6fff82
      vim_free(pat);
Karsten Hopp 6fff82
  
Karsten Hopp 6fff82
!     if (regmatch.regprog == NULL)
Karsten Hopp 6fff82
      {
Karsten Hopp 6fff82
  	vim_free(buf);
Karsten Hopp 6fff82
  	return 0;
Karsten Hopp 6fff82
--- 9103,9117 ----
Karsten Hopp 6fff82
      }
Karsten Hopp 6fff82
  
Karsten Hopp 6fff82
      /* compile the regexp into a program */
Karsten Hopp 6fff82
!     if (flags & (EW_NOERROR | EW_NOTWILD))
Karsten Hopp 6fff82
  	++emsg_silent;
Karsten Hopp 6fff82
      regmatch.rm_ic = TRUE;		/* Always ignore case */
Karsten Hopp 6fff82
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
Karsten Hopp 6fff82
!     if (flags & (EW_NOERROR | EW_NOTWILD))
Karsten Hopp 6fff82
  	--emsg_silent;
Karsten Hopp 6fff82
      vim_free(pat);
Karsten Hopp 6fff82
  
Karsten Hopp 6fff82
!     if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
Karsten Hopp 6fff82
      {
Karsten Hopp 6fff82
  	vim_free(buf);
Karsten Hopp 6fff82
  	return 0;
Karsten Hopp 6fff82
***************
Karsten Hopp 6fff82
*** 9179,9185 ****
Karsten Hopp 6fff82
  	 * all entries found with "matchname". */
Karsten Hopp 6fff82
  	if ((p[0] != '.' || starts_with_dot)
Karsten Hopp 6fff82
  		&& (matchname == NULL
Karsten Hopp 6fff82
! 		  || vim_regexec(&regmatch, p, (colnr_T)0)
Karsten Hopp 6fff82
  		  || ((flags & EW_NOTWILD)
Karsten Hopp 6fff82
  		     && fnamencmp(path + (s - buf), p, e - s) == 0)))
Karsten Hopp 6fff82
  	{
Karsten Hopp 6fff82
--- 9179,9186 ----
Karsten Hopp 6fff82
  	 * all entries found with "matchname". */
Karsten Hopp 6fff82
  	if ((p[0] != '.' || starts_with_dot)
Karsten Hopp 6fff82
  		&& (matchname == NULL
Karsten Hopp 6fff82
! 		  || (regmatch.regprog != NULL
Karsten Hopp 6fff82
! 				     && vim_regexec(&regmatch, p, (colnr_T)0))
Karsten Hopp 6fff82
  		  || ((flags & EW_NOTWILD)
Karsten Hopp 6fff82
  		     && fnamencmp(path + (s - buf), p, e - s) == 0)))
Karsten Hopp 6fff82
  	{
Karsten Hopp 6fff82
***************
Karsten Hopp 6fff82
*** 9419,9428 ****
Karsten Hopp 6fff82
      else
Karsten Hopp 6fff82
  	regmatch.rm_ic = FALSE;		/* Don't ignore case */
Karsten Hopp 6fff82
  #endif
Karsten Hopp 6fff82
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
Karsten Hopp 6fff82
      vim_free(pat);
Karsten Hopp 6fff82
  
Karsten Hopp 6fff82
!     if (regmatch.regprog == NULL)
Karsten Hopp 6fff82
      {
Karsten Hopp 6fff82
  	vim_free(buf);
Karsten Hopp 6fff82
  	return 0;
Karsten Hopp 6fff82
--- 9420,9433 ----
Karsten Hopp 6fff82
      else
Karsten Hopp 6fff82
  	regmatch.rm_ic = FALSE;		/* Don't ignore case */
Karsten Hopp 6fff82
  #endif
Karsten Hopp 6fff82
+     if (flags & (EW_NOERROR | EW_NOTWILD))
Karsten Hopp 6fff82
+ 	++emsg_silent;
Karsten Hopp 6fff82
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
Karsten Hopp 6fff82
+     if (flags & (EW_NOERROR | EW_NOTWILD))
Karsten Hopp 6fff82
+ 	--emsg_silent;
Karsten Hopp 6fff82
      vim_free(pat);
Karsten Hopp 6fff82
  
Karsten Hopp 6fff82
!     if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
Karsten Hopp 6fff82
      {
Karsten Hopp 6fff82
  	vim_free(buf);
Karsten Hopp 6fff82
  	return 0;
Karsten Hopp 6fff82
***************
Karsten Hopp 6fff82
*** 9452,9458 ****
Karsten Hopp 6fff82
  	    if (dp == NULL)
Karsten Hopp 6fff82
  		break;
Karsten Hopp 6fff82
  	    if ((dp->d_name[0] != '.' || starts_with_dot)
Karsten Hopp 6fff82
! 		 && (vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0)
Karsten Hopp 6fff82
  		   || ((flags & EW_NOTWILD)
Karsten Hopp 6fff82
  		     && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
Karsten Hopp 6fff82
  	    {
Karsten Hopp 6fff82
--- 9457,9464 ----
Karsten Hopp 6fff82
  	    if (dp == NULL)
Karsten Hopp 6fff82
  		break;
Karsten Hopp 6fff82
  	    if ((dp->d_name[0] != '.' || starts_with_dot)
Karsten Hopp 6fff82
! 		 && ((regmatch.regprog != NULL && vim_regexec(&regmatch,
Karsten Hopp 6fff82
! 					     (char_u *)dp->d_name, (colnr_T)0))
Karsten Hopp 6fff82
  		   || ((flags & EW_NOTWILD)
Karsten Hopp 6fff82
  		     && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
Karsten Hopp 6fff82
  	    {
Karsten Hopp 6fff82
*** ../vim-7.3.398/src/version.c	2012-01-10 17:13:48.000000000 +0100
Karsten Hopp 6fff82
--- src/version.c	2012-01-10 18:21:05.000000000 +0100
Karsten Hopp 6fff82
***************
Karsten Hopp 6fff82
*** 716,717 ****
Karsten Hopp 6fff82
--- 716,719 ----
Karsten Hopp 6fff82
  {   /* Add new patch number below this line */
Karsten Hopp 6fff82
+ /**/
Karsten Hopp 6fff82
+     399,
Karsten Hopp 6fff82
  /**/
Karsten Hopp 6fff82
Karsten Hopp 6fff82
-- 
Karsten Hopp 6fff82
Close your shells, or I'll kill -9 you
Karsten Hopp 6fff82
Tomorrow I'll quota you
Karsten Hopp 6fff82
Remember the disks'll always be full
Karsten Hopp 6fff82
And then while I'm away
Karsten Hopp 6fff82
I'll write ~ everyday
Karsten Hopp 6fff82
And I'll send-pr all my buggings to you.
Karsten Hopp 6fff82
    [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ]
Karsten Hopp 6fff82
Karsten Hopp 6fff82
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp 6fff82
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp 6fff82
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
Karsten Hopp 6fff82
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///