Patch 7.3.399
Problem:    ":cd" doesn't work when the path contains wildcards. (Yukihiro
            Nakadaira)
Solution:   Ignore wildcard errors when the EW_NOTWILD flag is used.
Files:      src/misc1.c


*** ../vim-7.3.398/src/misc1.c  2011-12-14 20:21:29.000000000 +0100
--- src/misc1.c 2012-01-10 17:57:42.000000000 +0100
***************
*** 9103,9117 ****
      }
  
      /* compile the regexp into a program */
!     if (flags & EW_NOERROR)
        ++emsg_silent;
      regmatch.rm_ic = TRUE;            /* Always ignore case */
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
!     if (flags & EW_NOERROR)
        --emsg_silent;
      vim_free(pat);
  
!     if (regmatch.regprog == NULL)
      {
        vim_free(buf);
        return 0;
--- 9103,9117 ----
      }
  
      /* compile the regexp into a program */
!     if (flags & (EW_NOERROR | EW_NOTWILD))
        ++emsg_silent;
      regmatch.rm_ic = TRUE;            /* Always ignore case */
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
!     if (flags & (EW_NOERROR | EW_NOTWILD))
        --emsg_silent;
      vim_free(pat);
  
!     if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
      {
        vim_free(buf);
        return 0;
***************
*** 9179,9185 ****
         * all entries found with "matchname". */
        if ((p[0] != '.' || starts_with_dot)
                && (matchname == NULL
!                 || vim_regexec(&regmatch, p, (colnr_T)0)
                  || ((flags & EW_NOTWILD)
                     && fnamencmp(path + (s - buf), p, e - s) == 0)))
        {
--- 9179,9186 ----
         * all entries found with "matchname". */
        if ((p[0] != '.' || starts_with_dot)
                && (matchname == NULL
!                 || (regmatch.regprog != NULL
!                                    && vim_regexec(&regmatch, p, (colnr_T)0))
                  || ((flags & EW_NOTWILD)
                     && fnamencmp(path + (s - buf), p, e - s) == 0)))
        {
***************
*** 9419,9428 ****
      else
        regmatch.rm_ic = FALSE;         /* Don't ignore case */
  #endif
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
      vim_free(pat);
  
!     if (regmatch.regprog == NULL)
      {
        vim_free(buf);
        return 0;
--- 9420,9433 ----
      else
        regmatch.rm_ic = FALSE;         /* Don't ignore case */
  #endif
+     if (flags & (EW_NOERROR | EW_NOTWILD))
+       ++emsg_silent;
      regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+     if (flags & (EW_NOERROR | EW_NOTWILD))
+       --emsg_silent;
      vim_free(pat);
  
!     if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
      {
        vim_free(buf);
        return 0;
***************
*** 9452,9458 ****
            if (dp == NULL)
                break;
            if ((dp->d_name[0] != '.' || starts_with_dot)
!                && (vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0)
                   || ((flags & EW_NOTWILD)
                     && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
            {
--- 9457,9464 ----
            if (dp == NULL)
                break;
            if ((dp->d_name[0] != '.' || starts_with_dot)
!                && ((regmatch.regprog != NULL && vim_regexec(&regmatch,
!                                            (char_u *)dp->d_name, (colnr_T)0))
                   || ((flags & EW_NOTWILD)
                     && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
            {
*** ../vim-7.3.398/src/version.c        2012-01-10 17:13:48.000000000 +0100
--- src/version.c       2012-01-10 18:21:05.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     399,
  /**/

-- 
Close your shells, or I'll kill -9 you
Tomorrow I'll quota you
Remember the disks'll always be full
And then while I'm away
I'll write ~ everyday
And I'll send-pr all my buggings to you.
    [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ]

 /// Bram Moolenaar -- [email protected] -- 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

Raspunde prin e-mail lui