aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/ex_docmd.c26
-rw-r--r--test/functional/legacy/arglist_spec.lua4
2 files changed, 3 insertions, 27 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index c5625d7882..1ae5038325 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -3940,8 +3940,6 @@ int expand_filename(exarg_T *eap, char_u **cmdlinep, char_u **errormsgp)
* Don't do this for:
* - replacement that already has been escaped: "##"
* - shell commands (may have to use quotes instead).
- * - non-unix systems when there is a single argument (spaces don't
- * separate arguments then).
*/
if (!eap->usefilter
&& !escaped
@@ -3952,9 +3950,7 @@ int expand_filename(exarg_T *eap, char_u **cmdlinep, char_u **errormsgp)
&& eap->cmdidx != CMD_lgrep
&& eap->cmdidx != CMD_grepadd
&& eap->cmdidx != CMD_lgrepadd
-#ifndef UNIX
&& !(eap->argt & NOSPC)
-#endif
) {
char_u *l;
#ifdef BACKSLASH_IN_FILENAME
@@ -4016,28 +4012,6 @@ int expand_filename(exarg_T *eap, char_u **cmdlinep, char_u **errormsgp)
}
}
- // Replace any other wildcards, remove backslashes.
-#ifdef UNIX
- /*
- * Only for Unix we check for more than one file name.
- * For other systems spaces are considered to be part
- * of the file name.
- * Only check here if there is no wildcard, otherwise
- * ExpandOne() will check for errors. This allows
- * ":e `ls ve*.c`" on Unix.
- */
- if (!has_wildcards)
- for (p = eap->arg; *p; ++p) {
- /* skip escaped characters */
- if (p[1] && (*p == '\\' || *p == Ctrl_V))
- ++p;
- else if (ascii_iswhite(*p)) {
- *errormsgp = (char_u *)_("E172: Only one file name allowed");
- return FAIL;
- }
- }
-#endif
-
/*
* Halve the number of backslashes (this is Vi compatible).
* For Unix, when wildcards are expanded, this is
diff --git a/test/functional/legacy/arglist_spec.lua b/test/functional/legacy/arglist_spec.lua
index b86d3f0aea..f5e3522972 100644
--- a/test/functional/legacy/arglist_spec.lua
+++ b/test/functional/legacy/arglist_spec.lua
@@ -222,7 +222,6 @@ describe('argument list commands', function()
execute('argedit a')
eq({'a', 'b'}, eval('argv()'))
eq('a', eval('expand("%:t")'))
- assert_fails('argedit a b', 'E172:')
execute('argedit c')
eq({'a', 'c', 'b'}, eval('argv()'))
execute('0argedit x')
@@ -232,6 +231,9 @@ describe('argument list commands', function()
execute('argedit! y')
eq({'x', 'y', 'a', 'c', 'b'}, eval('argv()'))
execute('%argd')
+ -- Nvim allows unescaped spaces in filename on all platforms. #6010
+ execute('argedit a b')
+ eq({'a b'}, eval('argv()'))
end)
it('test for :argdelete command', function()