Blob Blame History Raw
To: vim_dev@googlegroups.com
Subject: Patch 7.3.1297
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
------------

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 -- Bram@Moolenaar.net -- 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    ///