Blob Blame History Raw
To: vim-dev@vim.org
Subject: patch 7.1.135
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------

Patch 7.1.135
Problem:    Win32: When editing a file c:\tmp\foo and c:\tmp\\foo we have two
	    buffers for the same file. (Suresh Govindachar)
Solution:   Invoke FullName_save() when a path contains "//" or "\\".
Files:	    src/buffer.c


*** ../vim-7.1.134/src/buffer.c	Sun Sep 30 14:00:41 2007
--- src/buffer.c	Wed Oct  3 14:24:52 2007
***************
*** 4175,4203 ****
       * mess up the full path name, even though it starts with a '/'.
       * Also expand when there is ".." in the file name, try to remove it,
       * because "c:/src/../README" is equal to "c:/README".
       * For MS-Windows also expand names like "longna~1" to "longname".
       */
  #ifdef UNIX
      return FullName_save(fname, TRUE);
  #else
!     if (!vim_isAbsName(fname) || strstr((char *)fname, "..") != NULL
! #if defined(MSWIN) || defined(DJGPP)
  	    || vim_strchr(fname, '~') != NULL
! #endif
  	    )
  	return FullName_save(fname, FALSE);
  
      fname = vim_strsave(fname);
  
! #ifdef USE_FNAME_CASE
! # ifdef USE_LONG_FNAME
      if (USE_LONG_FNAME)
! # endif
      {
  	if (fname != NULL)
  	    fname_case(fname, 0);	/* set correct case for file name */
      }
! #endif
  
      return fname;
  #endif
--- 4175,4209 ----
       * mess up the full path name, even though it starts with a '/'.
       * Also expand when there is ".." in the file name, try to remove it,
       * because "c:/src/../README" is equal to "c:/README".
+      * Similarly "c:/src//file" is equal to "c:/src/file".
       * For MS-Windows also expand names like "longna~1" to "longname".
       */
  #ifdef UNIX
      return FullName_save(fname, TRUE);
  #else
!     if (!vim_isAbsName(fname)
! 	    || strstr((char *)fname, "..") != NULL
! 	    || strstr((char *)fname, "//") != NULL
! # ifdef BACKSLASH_IN_FILENAME
! 	    || strstr((char *)fname, "\\\\") != NULL
! # endif
! # if defined(MSWIN) || defined(DJGPP)
  	    || vim_strchr(fname, '~') != NULL
! # endif
  	    )
  	return FullName_save(fname, FALSE);
  
      fname = vim_strsave(fname);
  
! # ifdef USE_FNAME_CASE
! #  ifdef USE_LONG_FNAME
      if (USE_LONG_FNAME)
! #  endif
      {
  	if (fname != NULL)
  	    fname_case(fname, 0);	/* set correct case for file name */
      }
! # endif
  
      return fname;
  #endif
*** ../vim-7.1.134/src/version.c	Wed Oct  3 13:28:40 2007
--- src/version.c	Wed Oct  3 14:26:54 2007
***************
*** 668,669 ****
--- 668,671 ----
  {   /* Add new patch number below this line */
+ /**/
+     135,
  /**/

-- 
   A village.  Sound of chanting of Latin canon, punctuated by short, sharp
   cracks.  It comes nearer.  We see it is a line of MONKS ala SEVENTH SEAL
   flagellation scene, chanting and banging themselves on the foreheads with
   wooden boards.
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///