Patch 7.3.608
Problem:    winrestview() does not always restore the view correctly.
Solution:   Call win_new_height() and win_new_width(). (Lech Lorens)
Files:      src/eval.c, src/proto/window.pro, src/window.c


*** ../vim-7.3.607/src/eval.c   2012-07-16 19:27:25.000000000 +0200
--- src/eval.c  2012-07-19 17:50:16.000000000 +0200
***************
*** 18601,18606 ****
--- 18601,18610 ----
        curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
  
        check_cursor();
+       win_new_height(curwin, curwin->w_height);
+ # ifdef FEAT_VERTSPLIT
+       win_new_width(curwin, W_WIDTH(curwin));
+ # endif
        changed_window_setting();
  
        if (curwin->w_topline == 0)
*** ../vim-7.3.607/src/proto/window.pro 2012-06-13 14:28:16.000000000 +0200
--- src/proto/window.pro        2012-07-19 18:05:10.000000000 +0200
***************
*** 51,56 ****
--- 51,58 ----
  void win_setminheight __ARGS((void));
  void win_drag_status_line __ARGS((win_T *dragwin, int offset));
  void win_drag_vsep_line __ARGS((win_T *dragwin, int offset));
+ void win_new_height __ARGS((win_T *wp, int height));
+ void win_new_width __ARGS((win_T *wp, int width));
  void win_comp_scroll __ARGS((win_T *wp));
  void command_height __ARGS((void));
  void last_status __ARGS((int morewin));
*** ../vim-7.3.607/src/window.c 2012-07-16 17:31:48.000000000 +0200
--- src/window.c        2012-07-19 18:05:18.000000000 +0200
***************
*** 54,60 ****
  static void frame_insert __ARGS((frame_T *before, frame_T *frp));
  static void frame_remove __ARGS((frame_T *frp));
  #ifdef FEAT_VERTSPLIT
- static void win_new_width __ARGS((win_T *wp, int width));
  static void win_goto_ver __ARGS((int up, long count));
  static void win_goto_hor __ARGS((int left, long count));
  #endif
--- 54,59 ----
***************
*** 71,77 ****
  
  static win_T *win_alloc __ARGS((win_T *after, int hidden));
  static void set_fraction __ARGS((win_T *wp));
- static void win_new_height __ARGS((win_T *wp, int height));
  
  #define URL_SLASH     1               /* path_is_url() has found "://" */
  #define URL_BACKSLASH 2               /* path_is_url() has found ":\\" */
--- 70,75 ----
***************
*** 5557,5563 ****
   * This takes care of the things inside the window, not what happens to the
   * window position, the frame or to other windows.
   */
!     static void
  win_new_height(wp, height)
      win_T     *wp;
      int               height;
--- 5555,5561 ----
   * This takes care of the things inside the window, not what happens to the
   * window position, the frame or to other windows.
   */
!     void
  win_new_height(wp, height)
      win_T     *wp;
      int               height;
***************
*** 5697,5703 ****
  /*
   * Set the width of a window.
   */
!     static void
  win_new_width(wp, width)
      win_T     *wp;
      int               width;
--- 5695,5701 ----
  /*
   * Set the width of a window.
   */
!     void
  win_new_width(wp, width)
      win_T     *wp;
      int               width;
*** ../vim-7.3.607/src/version.c        2012-07-19 17:39:01.000000000 +0200
--- src/version.c       2012-07-19 17:53:37.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     608,
  /**/

-- 
Although the scythe isn't pre-eminent among the weapons of war, anyone who
has been on the wrong end of, say, a peasants' revolt will know that in
skilled hands it is fearsome.
                                        -- (Terry Pratchett, Mort)

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui