aboutsummaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c13
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;
+ }
}
/*