summaryrefslogtreecommitdiff
path: root/src/ex_getln.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2008-08-08 10:59:17 +0000
committerBram Moolenaar <Bram@vim.org>2008-08-08 10:59:17 +0000
commit1b24e4b59901627fb6ac0303dd27b94f8bb2c396 (patch)
tree4bab71d94c65884f78990dceaa26e773ac36176a /src/ex_getln.c
parentdc9cf9cd6d48ad9c6e25427f958401adc4a913ac (diff)
downloadvim-git-1b24e4b59901627fb6ac0303dd27b94f8bb2c396.tar.gz
updated for version 7.2c-002v7.2c.002
Diffstat (limited to 'src/ex_getln.c')
-rw-r--r--src/ex_getln.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c
index c9760d1db..994fe2aa3 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -3717,7 +3717,7 @@ vim_strsave_fnameescape(fname, shell)
if ((*p != '[' && *p != '{') || !vim_isfilec(*p))
buf[j++] = *p;
buf[j] = NUL;
- return vim_strsave_escaped(fname, buf);
+ p = vim_strsave_escaped(fname, buf);
#else
p = vim_strsave_escaped(fname, shell ? SHELL_ESC_CHARS : PATH_ESC_CHARS);
if (shell && csh_like_shell() && p != NULL)
@@ -3730,8 +3730,14 @@ vim_strsave_fnameescape(fname, shell)
vim_free(p);
p = s;
}
- return p;
#endif
+
+ /* '>' and '+' are special at the start of some commands, e.g. ":edit" and
+ * ":write". "cd -" has a special meaning. */
+ if (*p == '>' || *p == '+' || (*p == '-' && p[1] == NUL))
+ escape_fname(&p);
+
+ return p;
}
/*