diff options
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/eval.c b/src/eval.c index 94eca72b4e..75245fc148 100644 --- a/src/eval.c +++ b/src/eval.c @@ -12329,13 +12329,14 @@ static void f_remove(typval_T *argvars, typval_T *rettv) */ static void f_rename(typval_T *argvars, typval_T *rettv) { - char_u buf[NUMBUFLEN]; - - if (check_restricted() || check_secure()) + if (check_restricted() || check_secure()) { rettv->vval.v_number = -1; - else - rettv->vval.v_number = vim_rename(get_tv_string(&argvars[0]), - get_tv_string_buf(&argvars[1], buf)); + } else { + char_u buf[NUMBUFLEN]; + char_u *from = get_tv_string(&argvars[0]); + char_u *to = get_tv_string_buf(&argvars[1], buf); + rettv->vval.v_number = os_rename(from, to) == OK ? 0 : -1; + } } /* |