Karsten Hopp f13cfa
To: vim-dev@vim.org
Karsten Hopp f13cfa
Subject: Patch 7.3.027
Karsten Hopp f13cfa
Fcc: outbox
Karsten Hopp f13cfa
From: Bram Moolenaar <Bram@moolenaar.net>
Karsten Hopp f13cfa
Mime-Version: 1.0
Karsten Hopp f13cfa
Content-Type: text/plain; charset=UTF-8
Karsten Hopp f13cfa
Content-Transfer-Encoding: 8bit
Karsten Hopp f13cfa
------------
Karsten Hopp f13cfa
Karsten Hopp f13cfa
Patch 7.3.027
Karsten Hopp f13cfa
Problem:    Opening a file on a network share is very slow.
Karsten Hopp f13cfa
Solution:   When fixing file name case append "\*" to directory, server and
Karsten Hopp f13cfa
	    network share names. (David Anderson, John Beckett)
Karsten Hopp f13cfa
Files:	    src/os_win32.c
Karsten Hopp f13cfa
Karsten Hopp f13cfa
Karsten Hopp f13cfa
*** ../vim-7.3.026/src/os_win32.c	2010-09-21 17:29:19.000000000 +0200
Karsten Hopp f13cfa
--- src/os_win32.c	2010-10-13 20:31:32.000000000 +0200
Karsten Hopp f13cfa
***************
Karsten Hopp f13cfa
*** 2308,2319 ****
Karsten Hopp f13cfa
--- 2308,2321 ----
Karsten Hopp f13cfa
      int		len)
Karsten Hopp f13cfa
  {
Karsten Hopp f13cfa
      char		szTrueName[_MAX_PATH + 2];
Karsten Hopp f13cfa
+     char		szTrueNameTemp[_MAX_PATH + 2];
Karsten Hopp f13cfa
      char		*ptrue, *ptruePrev;
Karsten Hopp f13cfa
      char		*porig, *porigPrev;
Karsten Hopp f13cfa
      int			flen;
Karsten Hopp f13cfa
      WIN32_FIND_DATA	fb;
Karsten Hopp f13cfa
      HANDLE		hFind;
Karsten Hopp f13cfa
      int			c;
Karsten Hopp f13cfa
+     int			slen;
Karsten Hopp f13cfa
  
Karsten Hopp f13cfa
      flen = (int)STRLEN(name);
Karsten Hopp f13cfa
      if (flen == 0 || flen > _MAX_PATH)
Karsten Hopp f13cfa
***************
Karsten Hopp f13cfa
*** 2358,2369 ****
Karsten Hopp f13cfa
  	}
Karsten Hopp f13cfa
  	*ptrue = NUL;
Karsten Hopp f13cfa
  
Karsten Hopp f13cfa
  	/* Skip "", "." and "..". */
Karsten Hopp f13cfa
  	if (ptrue > ptruePrev
Karsten Hopp f13cfa
  		&& (ptruePrev[0] != '.'
Karsten Hopp f13cfa
  		    || (ptruePrev[1] != NUL
Karsten Hopp f13cfa
  			&& (ptruePrev[1] != '.' || ptruePrev[2] != NUL)))
Karsten Hopp f13cfa
! 		&& (hFind = FindFirstFile(szTrueName, &fb))
Karsten Hopp f13cfa
  						      != INVALID_HANDLE_VALUE)
Karsten Hopp f13cfa
  	{
Karsten Hopp f13cfa
  	    c = *porig;
Karsten Hopp f13cfa
--- 2360,2378 ----
Karsten Hopp f13cfa
  	}
Karsten Hopp f13cfa
  	*ptrue = NUL;
Karsten Hopp f13cfa
  
Karsten Hopp f13cfa
+ 	/* To avoid a slow failure append "\*" when searching a directory,
Karsten Hopp f13cfa
+ 	 * server or network share. */
Karsten Hopp f13cfa
+ 	STRCPY(szTrueNameTemp, szTrueName);
Karsten Hopp f13cfa
+ 	slen = strlen(szTrueNameTemp);
Karsten Hopp f13cfa
+ 	if (*porig == psepc && slen + 2 < _MAX_PATH)
Karsten Hopp f13cfa
+ 	    STRCPY(szTrueNameTemp + slen, "\\*");
Karsten Hopp f13cfa
+ 
Karsten Hopp f13cfa
  	/* Skip "", "." and "..". */
Karsten Hopp f13cfa
  	if (ptrue > ptruePrev
Karsten Hopp f13cfa
  		&& (ptruePrev[0] != '.'
Karsten Hopp f13cfa
  		    || (ptruePrev[1] != NUL
Karsten Hopp f13cfa
  			&& (ptruePrev[1] != '.' || ptruePrev[2] != NUL)))
Karsten Hopp f13cfa
! 		&& (hFind = FindFirstFile(szTrueNameTemp, &fb))
Karsten Hopp f13cfa
  						      != INVALID_HANDLE_VALUE)
Karsten Hopp f13cfa
  	{
Karsten Hopp f13cfa
  	    c = *porig;
Karsten Hopp f13cfa
*** ../vim-7.3.026/src/version.c	2010-10-13 18:06:42.000000000 +0200
Karsten Hopp f13cfa
--- src/version.c	2010-10-13 20:37:00.000000000 +0200
Karsten Hopp f13cfa
***************
Karsten Hopp f13cfa
*** 716,717 ****
Karsten Hopp f13cfa
--- 716,719 ----
Karsten Hopp f13cfa
  {   /* Add new patch number below this line */
Karsten Hopp f13cfa
+ /**/
Karsten Hopp f13cfa
+     27,
Karsten Hopp f13cfa
  /**/
Karsten Hopp f13cfa
Karsten Hopp f13cfa
-- 
Karsten Hopp f13cfa
   A cow comes flying over the battlements,  lowing aggressively.  The cow
Karsten Hopp f13cfa
   lands on GALAHAD'S PAGE, squashing him completely.
Karsten Hopp f13cfa
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
Karsten Hopp f13cfa
Karsten Hopp f13cfa
 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
Karsten Hopp f13cfa
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
Karsten Hopp f13cfa
\\\        download, build and distribute -- http://www.A-A-P.org        ///
Karsten Hopp f13cfa
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///