home *** CD-ROM | disk | FTP | other *** search
- To: vim-dev@vim.org
- Subject: Patch 6.0.113
- 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.113
- Problem: ":edit ~/fname" doesn't work if $HOME includes a space. Also,
- expanding wildcards with the shell may fail. (John Daniel)
- Solution: Escape spaces with a backslash when needed.
- Files: src/ex_docmd.c, src/misc1.c, src/proto/misc1.pro, src/os_unix.c
-
-
- *** ../vim60.112/src/ex_docmd.c Sat Dec 15 21:56:10 2001
- --- src/ex_docmd.c Mon Dec 31 17:28:09 2001
- ***************
- *** 3297,3303 ****
- if (vim_strchr(eap->arg, '$') != NULL
- || vim_strchr(eap->arg, '~') != NULL)
- {
- ! expand_env(eap->arg, NameBuff, MAXPATHL);
- has_wildcards = mch_has_wildcard(NameBuff);
- p = NameBuff;
- }
- --- 3297,3303 ----
- if (vim_strchr(eap->arg, '$') != NULL
- || vim_strchr(eap->arg, '~') != NULL)
- {
- ! expand_env_esc(eap->arg, NameBuff, MAXPATHL, TRUE);
- has_wildcards = mch_has_wildcard(NameBuff);
- p = NameBuff;
- }
- *** ../vim60.112/src/misc1.c Tue Nov 6 19:43:29 2001
- --- src/misc1.c Mon Dec 31 17:46:07 2001
- ***************
- *** 2834,2839 ****
- --- 2834,2849 ----
- char_u *dst; /* where to put the result */
- int dstlen; /* maximum length of the result */
- {
- + expand_env_esc(src, dst, dstlen, FALSE);
- + }
- +
- + void
- + expand_env_esc(src, dst, dstlen, esc)
- + char_u *src; /* input string e.g. "$HOME/vim.hlp" */
- + char_u *dst; /* where to put the result */
- + int dstlen; /* maximum length of the result */
- + int esc; /* escape spaces in expanded variables */
- + {
- char_u *tail;
- int c;
- char_u *var;
- ***************
- *** 2999,3004 ****
- --- 3009,3029 ----
- var = NULL;
- tail = (char_u *)""; /* for gcc */
- #endif /* UNIX || VMS */
- + }
- +
- + /* If "var" contains white space, escape it with a backslash.
- + * Required for ":e ~/tt" $HOME includes a space. */
- + if (esc && var != NULL && vim_strpbrk(var, (char_u *)" \t") != NULL)
- + {
- + char_u *p = vim_strsave_escaped(var, (char_u *)" \t");
- +
- + if (p != NULL)
- + {
- + if (mustfree)
- + vim_free(var);
- + var = p;
- + mustfree = TRUE;
- + }
- }
-
- if (var != NULL && *var != NUL
- *** ../vim60.112/src/proto/misc1.pro Tue Sep 25 21:49:20 2001
- --- src/proto/misc1.pro Mon Dec 31 17:26:25 2001
- ***************
- *** 46,51 ****
- --- 46,52 ----
- void vim_beep __ARGS((void));
- void init_homedir __ARGS((void));
- void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
- + void expand_env_esc __ARGS((char_u *src, char_u *dst, int dstlen, int esc));
- char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
- char_u *expand_env_save __ARGS((char_u *src));
- void vim_setenv __ARGS((char_u *name, char_u *val));
- *** ../vim60.112/src/os_unix.c Wed Oct 31 14:21:02 2001
- --- src/os_unix.c Mon Dec 31 17:41:29 2001
- ***************
- *** 4277,4289 ****
- if (shell_style != STYLE_BT)
- for (i = 0; i < num_pat; ++i)
- {
- ! #ifdef USE_SYSTEM
- ! STRCAT(command, " \""); /* need extra quotes because we */
- ! STRCAT(command, pat[i]); /* start the shell twice */
- ! STRCAT(command, "\"");
- ! #else
- ! STRCAT(command, " ");
- ! STRCAT(command, pat[i]);
- #endif
- }
- if (flags & EW_SILENT)
- --- 4277,4299 ----
- if (shell_style != STYLE_BT)
- for (i = 0; i < num_pat; ++i)
- {
- ! /* When using system() always add extra quotes, because the shell
- ! * is started twice. Otherwise it's only needed when the pattern
- ! * includes spaces or single quotes. */
- ! #ifndef USE_SYSTEM
- ! if (vim_strpbrk(pat[i], " '") != NULL)
- ! #endif
- ! {
- ! STRCAT(command, " \"");
- ! STRCAT(command, pat[i]);
- ! STRCAT(command, "\"");
- ! }
- ! #ifndef USE_SYSTEM
- ! else
- ! {
- ! STRCAT(command, " ");
- ! STRCAT(command, pat[i]);
- ! }
- #endif
- }
- if (flags & EW_SILENT)
- *** ../vim60.112/src/version.c Mon Dec 31 16:49:06 2001
- --- src/version.c Mon Dec 31 17:43:12 2001
- ***************
- *** 608,609 ****
- --- 608,611 ----
- { /* Add new patch number below this line */
- + /**/
- + 113,
- /**/
-
- --
- Microsoft: "Windows NT 4.0 now has the same user-interface as Windows 95"
- Windows 95: "Press CTRL-ALT-DEL to reboot"
- Windows NT 4.0: "Press CTRL-ALT-DEL to login"
-
- /// 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 ///
-