Problem: expand("%:p") is not empty when there is no buffer name.
Solution: When ignoring errors still return NULL. (closes #10311)
}
}
- if (empty_is_error && (resultlen == 0 || valid != VALID_HEAD + VALID_PATH))
+ if (resultlen == 0 || valid != VALID_HEAD + VALID_PATH)
{
- if (valid != VALID_HEAD + VALID_PATH)
- *errormsg = _(e_empty_file_name_for_percent_or_hash_only_works_with_ph);
- else
- *errormsg = _(e_evaluates_to_an_empty_string);
+ if (empty_is_error)
+ {
+ if (valid != VALID_HEAD + VALID_PATH)
+ *errormsg = _(e_empty_file_name_for_percent_or_hash_only_works_with_ph);
+ else
+ *errormsg = _(e_evaluates_to_an_empty_string);
+ }
result = NULL;
}
else
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.
set verbose=1
call assert_equal("", expand('%'))
set verbose=0
+ call assert_equal("", expand('%:p'))
quit
endfunc
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 4842,
/**/
4841,
/**/