To: vim-dev@vim.org Subject: patch 7.1.135 Fcc: outbox From: Bram Moolenaar 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 ///