aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index b5efadb554..faa80ed0fa 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -11914,15 +11914,10 @@ static void f_resolve(typval_T *argvars, typval_T *rettv)
* concatenate the remainders. */
q = path_next_component(vim_ispathsep(*buf) ? buf + 1 : buf);
if (*q != NUL) {
- if (remain == NULL)
- remain = vim_strsave(q - 1);
- else {
- cpy = concat_str(q - 1, remain);
- if (cpy != NULL) {
- free(remain);
- remain = cpy;
- }
- }
+ cpy = remain;
+ remain = remain ?
+ concat_str(q - 1, remain) : (char_u *) xstrdup((char *)q - 1);
+ free(cpy);
q[-1] = NUL;
}
@@ -11978,10 +11973,8 @@ static void f_resolve(typval_T *argvars, typval_T *rettv)
|| vim_ispathsep(p[2])))))) {
/* Prepend "./". */
cpy = concat_str((char_u *)"./", p);
- if (cpy != NULL) {
- free(p);
- p = cpy;
- }
+ free(p);
+ p = cpy;
} else if (!is_relative_to_current) {
/* Strip leading "./". */
q = p;