diff options
-rw-r--r-- | src/nvim/ex_docmd.c | 14 | ||||
-rw-r--r-- | src/nvim/testdir/test_expand_func.vim | 3 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c index f9055a0e8b..e8860ff0d4 100644 --- a/src/nvim/ex_docmd.c +++ b/src/nvim/ex_docmd.c @@ -6891,12 +6891,14 @@ char_u *eval_vars(char_u *src, char_u *srcstart, size_t *usedlen, linenr_T *lnum } } - if (empty_is_error && (resultlen == 0 || valid != VALID_HEAD + VALID_PATH)) { - if (valid != VALID_HEAD + VALID_PATH) { - // xgettext:no-c-format - *errormsg = _("E499: Empty file name for '%' or '#', only works with \":p:h\""); - } else { - *errormsg = _("E500: Evaluates to an empty string"); + if (resultlen == 0 || valid != VALID_HEAD + VALID_PATH) { + if (empty_is_error) { + if (valid != VALID_HEAD + VALID_PATH) { + // xgettext:no-c-format + *errormsg = _("E499: Empty file name for '%' or '#', only works with \":p:h\""); + } else { + *errormsg = _("E500: Evaluates to an empty string"); + } } result = NULL; } else { diff --git a/src/nvim/testdir/test_expand_func.vim b/src/nvim/testdir/test_expand_func.vim index dfe4ce105c..80bfdb8553 100644 --- a/src/nvim/testdir/test_expand_func.vim +++ b/src/nvim/testdir/test_expand_func.vim @@ -107,7 +107,7 @@ endfunc func Test_expand() new - call assert_equal("''", expand('%:S')) + call assert_equal("", expand('%:S')) call assert_equal('3', '<slnum>'->expand()) call assert_equal(['4'], expand('<slnum>', v:false, v:true)) " Don't add any line above this, otherwise <slnum> will change. @@ -115,6 +115,7 @@ func Test_expand() set verbose=1 call assert_equal("", expand('%')) set verbose=0 + call assert_equal("", expand('%:p')) quit endfunc |