Patch 7.3.1297
Problem:    findfile() directory matching does not work when a star follows
            text. (Markus Braun)
Solution:   Make a wildcard work properly. (Christian Brabandt)
Files:      src/misc2.c, src/testdir/test89.in, src/testdir/test89.ok


*** ../vim-7.3.1296/src/misc2.c 2013-06-08 18:19:40.000000000 +0200
--- src/misc2.c 2013-07-03 17:09:52.000000000 +0200
***************
*** 4679,4686 ****
      }
      STRCPY(ff_expand_buffer, search_ctx->ffsc_start_dir);
      add_pathsep(ff_expand_buffer);
!     STRCAT(ff_expand_buffer, search_ctx->ffsc_fix_path);
!     add_pathsep(ff_expand_buffer);
  
      sptr = ff_create_stack_element(ff_expand_buffer,
  #ifdef FEAT_PATH_EXTRA
--- 4679,4736 ----
      }
      STRCPY(ff_expand_buffer, search_ctx->ffsc_start_dir);
      add_pathsep(ff_expand_buffer);
!     {
!       char_u *buf = alloc(STRLEN(ff_expand_buffer)
!                                        + STRLEN(search_ctx->ffsc_fix_path));
! 
!       STRCPY(buf, ff_expand_buffer);
!       STRCAT(buf, search_ctx->ffsc_fix_path);
!       if (mch_isdir(buf))
!       {
!           STRCAT(ff_expand_buffer, search_ctx->ffsc_fix_path);
!           add_pathsep(ff_expand_buffer);
!       }
! #ifdef FEAT_PATH_EXTRA
!       else
!       {
!           char_u *p =  vim_strrchr(search_ctx->ffsc_fix_path, PATHSEP);
!           char_u *wc_path = NUL;
!           char_u *temp = NUL;
!           int    len = 0;
! 
!           if (p != NULL)
!           {
!               len = p - search_ctx->ffsc_fix_path;
!               STRNCAT(ff_expand_buffer, search_ctx->ffsc_fix_path, len);
!               add_pathsep(ff_expand_buffer);
!           }
!           else
!               len = STRLEN(search_ctx->ffsc_fix_path);
! 
!           if (search_ctx->ffsc_wc_path != NULL)
!           {
!               wc_path = vim_strsave(search_ctx->ffsc_wc_path);
!               temp = alloc(STRLEN(search_ctx->ffsc_wc_path)
!                                + (STRLEN(search_ctx->ffsc_fix_path) - len));
!           }
! 
!           if (temp == NULL || wc_path == NULL)
!           {
!               vim_free(buf);
!               vim_free(temp);
!               vim_free(wc_path);
!               goto error_return;
!           }
! 
!           STRCPY(temp, search_ctx->ffsc_fix_path + len);
!           STRCAT(temp, search_ctx->ffsc_wc_path);
!           vim_free(search_ctx->ffsc_wc_path);
!           vim_free(wc_path);
!           search_ctx->ffsc_wc_path = temp;
!       }
! #endif
!       vim_free(buf);
!     }
  
      sptr = ff_create_stack_element(ff_expand_buffer,
  #ifdef FEAT_PATH_EXTRA
*** ../vim-7.3.1296/src/testdir/test89.in       2013-06-04 22:13:45.000000000 
+0200
--- src/testdir/test89.in       2013-07-03 17:06:20.000000000 +0200
***************
*** 1,6 ****
! Some tests for setting 'number' and 'relativenumber'
! This is not all that useful now that the options are no longer reset when
! setting the other.
  
  STARTTEST
  :so small.vim
--- 1,7 ----
! - Some tests for setting 'number' and 'relativenumber'
!   This is not all that useful now that the options are no longer reset when
!   setting the other.
! - Some tests for findfile() function
  
  STARTTEST
  :so small.vim
***************
*** 49,54 ****
--- 50,66 ----
  :$put g
  :$put h
  :"
+ :let cwd=getcwd()
+ :cd ../..
+ :$put =''
+ :$put ='Testing findfile'
+ :$put =''
+ :$put =findfile('test19.in','src/test*')
+ :exe "cd" cwd
+ :cd ..
+ :$put =findfile('test19.in','test*')
+ :$put =findfile('test19.in','testdir')
+ :exe "cd" cwd
  :/^results/,$w! test.out
  :q!
  ENDTEST
*** ../vim-7.3.1296/src/testdir/test89.ok       2013-06-04 22:13:45.000000000 
+0200
--- src/testdir/test89.ok       2013-07-03 17:06:20.000000000 +0200
***************
*** 20,22 ****
--- 20,28 ----
    number
  
    relativenumber
+ 
+ Testing findfile
+ 
+ src/testdir/test19.in
+ testdir/test19.in
+ testdir/test19.in
*** ../vim-7.3.1296/src/version.c       2013-07-03 16:58:40.000000000 +0200
--- src/version.c       2013-07-03 17:02:56.000000000 +0200
***************
*** 730,731 ****
--- 730,733 ----
  {   /* Add new patch number below this line */
+ /**/
+     1297,
  /**/

-- 
Michael: There is no such thing as a dump question.
Bernard: Sure there is.  For example "what is a core dump?"

 /// 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

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Raspunde prin e-mail lui