diff options
author | Bram Moolenaar <Bram@vim.org> | 2014-05-28 16:47:16 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2014-05-28 16:47:16 +0200 |
commit | 82c2585eb840a84240ef927c09df28d5a04302b1 (patch) | |
tree | dbe8f042b02eac6d5f8c2a61f2b741ce6b55098e /src/eval.c | |
parent | 493c178a2851587ca3f9deae3b41ae3acf5c900b (diff) | |
download | vim-git-82c2585eb840a84240ef927c09df28d5a04302b1.tar.gz |
updated for version 7.4.311v7.4.311
Problem: Can't use winrestview to only restore part of the view.
Solution: Handle missing items in the dict. (Christian Brabandt)
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/eval.c b/src/eval.c index 3d20d177b..d313c5d03 100644 --- a/src/eval.c +++ b/src/eval.c @@ -19231,20 +19231,30 @@ f_winrestview(argvars, rettv) EMSG(_(e_invarg)); else { - curwin->w_cursor.lnum = get_dict_number(dict, (char_u *)"lnum"); - curwin->w_cursor.col = get_dict_number(dict, (char_u *)"col"); + if (dict_find(dict, (char_u *)"lnum", -1) != NULL) + curwin->w_cursor.lnum = get_dict_number(dict, (char_u *)"lnum"); + if (dict_find(dict, (char_u *)"col", -1) != NULL) + curwin->w_cursor.col = get_dict_number(dict, (char_u *)"col"); #ifdef FEAT_VIRTUALEDIT - curwin->w_cursor.coladd = get_dict_number(dict, (char_u *)"coladd"); + if (dict_find(dict, (char_u *)"coladd", -1) != NULL) + curwin->w_cursor.coladd = get_dict_number(dict, (char_u *)"coladd"); #endif - curwin->w_curswant = get_dict_number(dict, (char_u *)"curswant"); - curwin->w_set_curswant = FALSE; + if (dict_find(dict, (char_u *)"curswant", -1) != NULL) + { + curwin->w_curswant = get_dict_number(dict, (char_u *)"curswant"); + curwin->w_set_curswant = FALSE; + } - set_topline(curwin, get_dict_number(dict, (char_u *)"topline")); + if (dict_find(dict, (char_u *)"topline", -1) != NULL) + set_topline(curwin, get_dict_number(dict, (char_u *)"topline")); #ifdef FEAT_DIFF - curwin->w_topfill = get_dict_number(dict, (char_u *)"topfill"); + if (dict_find(dict, (char_u *)"topfill", -1) != NULL) + curwin->w_topfill = get_dict_number(dict, (char_u *)"topfill"); #endif - curwin->w_leftcol = get_dict_number(dict, (char_u *)"leftcol"); - curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol"); + if (dict_find(dict, (char_u *)"leftcol", -1) != NULL) + curwin->w_leftcol = get_dict_number(dict, (char_u *)"leftcol"); + if (dict_find(dict, (char_u *)"skipcol", -1) != NULL) + curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol"); check_cursor(); win_new_height(curwin, curwin->w_height); |