Mercurial > vim
diff src/eval.c @ 1533:8abc0abf8cbd v7.1.248
updated for version 7.1-248
author | vimboss |
---|---|
date | Wed, 13 Feb 2008 11:42:46 +0000 |
parents | dfcff6590aba |
children | 0d0bf7598dcb |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -14776,24 +14776,31 @@ f_setpos(argvars, rettv) int fnum; char_u *name; + rettv->vval.v_number = -1; name = get_tv_string_chk(argvars); if (name != NULL) { if (list2fpos(&argvars[1], &pos, &fnum) == OK) { --pos.col; - if (name[0] == '.') /* cursor */ - { + if (name[0] == '.' && name[1] == NUL) + { + /* set cursor */ if (fnum == curbuf->b_fnum) { curwin->w_cursor = pos; check_cursor(); + rettv->vval.v_number = 0; } else EMSG(_(e_invarg)); } - else if (name[0] == '\'') /* mark */ - (void)setmark_pos(name[1], &pos, fnum); + else if (name[0] == '\'' && name[1] != NUL && name[2] == NUL) + { + /* set mark */ + if (setmark_pos(name[1], &pos, fnum) == OK) + rettv->vval.v_number = 0; + } else EMSG(_(e_invarg)); }