home *** CD-ROM | disk | FTP | other *** search
- To: vim-dev@vim.org
- Subject: Patch 6.0.042
- 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 6.0.042
- Problem: ":mksession" can't handle file names with a space.
- Solution: Escape special characters in file names with a backslash.
- Files: src/ex_docmd.c
-
-
- *** ../vim60.41/src/ex_docmd.c Sun Oct 28 21:23:45 2001
- --- src/ex_docmd.c Tue Oct 30 21:16:12 2001
- ***************
- *** 8417,8423 ****
-
- /*
- * Write a file name to the session file.
- ! * Takes care of the "slash" option in 'sessionoptions'.
- * Returns FAIL if writing fails.
- */
- static int
- --- 8417,8424 ----
-
- /*
- * Write a file name to the session file.
- ! * Takes care of the "slash" option in 'sessionoptions' and escapes special
- ! * characters.
- * Returns FAIL if writing fails.
- */
- static int
- ***************
- *** 8433,8451 ****
- sname = home_replace_save(NULL, name);
- if (sname != NULL)
- name = sname;
- ! if (*flagp & SSOP_SLASH)
- {
- ! while (*name)
- {
- ! c = *name++;
- ! if (c == '\\')
- ! c = '/';
- ! if (putc(c, fd) != c)
- retval = FAIL;
- }
- }
- - else if (fputs((char *)name, fd) < 0)
- - retval = FAIL;
- vim_free(sname);
- return retval;
- }
- --- 8434,8475 ----
- sname = home_replace_save(NULL, name);
- if (sname != NULL)
- name = sname;
- ! while (*name != NUL)
- {
- ! #ifdef FEAT_MBYTE
- {
- ! int l;
- !
- ! if (has_mbyte && (l = (*mb_ptr2len_check)(name)) > 1)
- ! {
- ! /* copy a multibyte char */
- ! while (--l >= 0)
- ! {
- ! if (putc(*name, fd) != *name)
- ! retval = FAIL;
- ! ++name;
- ! }
- ! continue;
- ! }
- ! }
- ! #endif
- ! c = *name++;
- ! if (c == '\\' && (*flagp & SSOP_SLASH))
- ! /* change a backslash to a forward slash */
- ! c = '/';
- ! else if (vim_strchr(escape_chars, c) != NULL
- ! #ifdef BACKSLASH_IN_FILENAME
- ! && c != '\\'
- ! #endif
- ! )
- ! {
- ! /* escape a special character with a backslash */
- ! if (putc('\\', fd) != '\\')
- retval = FAIL;
- }
- + if (putc(c, fd) != c)
- + retval = FAIL;
- }
- vim_free(sname);
- return retval;
- }
- *** ../vim60.41/src/version.c Tue Oct 30 20:43:43 2001
- --- src/version.c Tue Oct 30 20:59:56 2001
- ***************
- *** 608,609 ****
- --- 608,611 ----
- { /* Add new patch number below this line */
- + /**/
- + 42,
- /**/
-
- --
- ARTHUR: No, hang on! Just answer the five questions ...
- GALAHAD: Three questions ...
- ARTHUR: Three questions ... And we shall watch ... and pray.
- "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
-
- /// Bram Moolenaar -- Bram@moolenaar.net -- http://www.moolenaar.net \\\
- ((( Creator of Vim -- http://vim.sf.net -- ftp://ftp.vim.org/pub/vim )))
- \\\ Help me helping AIDS orphans in Uganda - http://iccf-holland.org ///
-