diff options
author | Bram Moolenaar <Bram@vim.org> | 2006-03-29 21:18:24 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2006-03-29 21:18:24 +0000 |
commit | e2f98b95c8071f772695602cd4f714dc588eb8e7 (patch) | |
tree | 28442f952f7e5258e2addd8871a4a2930e768c0a /src/eval.c | |
parent | 86ca6e3b8c9c5d909421eb5abc2d81e02d402b49 (diff) |
updated for version 7.0c03v7.0c03
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/eval.c b/src/eval.c index 63abcbae24..4697e97f2e 100644 --- a/src/eval.c +++ b/src/eval.c @@ -6900,7 +6900,7 @@ static struct fst {"append", 2, 2, f_append}, {"argc", 0, 0, f_argc}, {"argidx", 0, 0, f_argidx}, - {"argv", 1, 1, f_argv}, + {"argv", 0, 1, f_argv}, {"browse", 4, 4, f_browse}, {"browsedir", 2, 2, f_browsedir}, {"bufexists", 1, 1, f_bufexists}, @@ -7651,12 +7651,19 @@ f_argv(argvars, rettv) { int idx; - idx = get_tv_number_chk(&argvars[0], NULL); - if (idx >= 0 && idx < ARGCOUNT) - rettv->vval.v_string = vim_strsave(alist_name(&ARGLIST[idx])); - else - rettv->vval.v_string = NULL; - rettv->v_type = VAR_STRING; + if (argvars[0].v_type != VAR_UNKNOWN) + { + idx = get_tv_number_chk(&argvars[0], NULL); + if (idx >= 0 && idx < ARGCOUNT) + rettv->vval.v_string = vim_strsave(alist_name(&ARGLIST[idx])); + else + rettv->vval.v_string = NULL; + rettv->v_type = VAR_STRING; + } + else if (rettv_list_alloc(rettv) == OK) + for (idx = 0; idx < ARGCOUNT; ++idx) + list_append_string(rettv->vval.v_list, + alist_name(&ARGLIST[idx]), -1); } /* |