To: vim-dev@vim.org Subject: patch 5.5.066 Fcc: outbox From: Bram Moolenaar ------------ Patch 5.5.066 Problem: For systems with backslash in file name: Setting a file name option to a value starting with "\\machine" removed a backslash. Solution: Keep the double backslash for "\\machine", but do change "\\\\machine" to "\\machine" for backwards compatibility. Files: src/option.c, runtime/doc/options.txt *** ../vim-5.5.65/src/option.c Sun Oct 17 16:44:57 1999 --- src/option.c Wed Dec 8 16:04:18 1999 *************** *** 2435,2441 **** /* * Copy the string, skip over escaped chars. * For MS-DOS and WIN32 backslashes before normal ! * file name characters are not removed. */ while (*arg && !vim_iswhite(*arg)) { --- 2435,2443 ---- /* * Copy the string, skip over escaped chars. * For MS-DOS and WIN32 backslashes before normal ! * file name characters are not removed, and keep ! * backslash at start, for "\\machine\path", but ! * do remove it for "\\\\machine\\path". */ while (*arg && !vim_iswhite(*arg)) { *************** *** 2443,2449 **** #ifdef BACKSLASH_IN_FILENAME && !((flags & P_EXPAND) && vim_isfilec(arg[1]) ! && arg[1] != '\\') #endif ) ++arg; --- 2445,2453 ---- #ifdef BACKSLASH_IN_FILENAME && !((flags & P_EXPAND) && vim_isfilec(arg[1]) ! && (arg[1] != '\\' ! || (s == newval ! && arg[2] != '\\'))) #endif ) ++arg; *** ../vim-5.5.65/runtime/doc/options.txt Wed Dec 8 12:52:43 1999 --- runtime/doc/options.txt Wed Dec 8 16:19:26 1999 *************** *** 137,142 **** --- 137,150 ---- variables are expanded) a backslash before a normal file name character is not removed. But a backslash before a special character (space, backslash, comma, etc.) is used like explained above. + There is one special situation, when the value starts with "\\": + > :set dir=\\machine\path results in "\\machine\path" + > :set dir=\\\\machine\\path results in "\\machine\path" + > :set dir=\\path\\file results in "\\path\file" (wrong!) + For the first one the start is kept, but for the second one the backslashes + are halved. This makes sure it works both when you expect backslashes to be + halved and when you expect the backslashes to be kept. The third gives a + result which is probably not what you want. Avoid it. *add-option-flags* *remove-option-flags* Some options are a list of flags. When you want to add a flag to such an *** ../vim-5.5.65/src/version.c Wed Dec 8 12:52:43 1999 --- src/version.c Wed Dec 8 16:19:37 1999 *************** *** 420,420 **** --- 420,421 ---- { /* Add new patch number below this line */ + 66, -- Eight Megabytes And Continually Swapping. --/-/---- Bram Moolenaar ---- Bram@moolenaar.net ---- Bram@vim.org ---\-\-- \ \ www.vim.org/iccf www.moolenaar.net www.vim.org / /