Patch 8.1.0187 (after 8.1.0184)
Problem:    getwininfo() and win_screenpos() return different numbers.
Solution:   Add one to "wincol" and "winrow" from getwininfo().
Files:      src/evalfunc.c, src/testdir/test_bufwintabinfo.vim,
            runtime/doc/eval.txt


*** ../vim-8.1.0186/src/evalfunc.c      Sat Jul 14 21:41:38 2018
--- src/evalfunc.c      Sun Jul 15 16:51:34 2018
***************
*** 5648,5659 ****
      dict_add_number(dict, "winnr", winnr);
      dict_add_number(dict, "winid", wp->w_id);
      dict_add_number(dict, "height", wp->w_height);
!     dict_add_number(dict, "winrow", wp->w_winrow);
  #ifdef FEAT_MENU
      dict_add_number(dict, "winbar", wp->w_winbar_height);
  #endif
      dict_add_number(dict, "width", wp->w_width);
!     dict_add_number(dict, "wincol", wp->w_wincol);
      dict_add_number(dict, "bufnr", wp->w_buffer->b_fnum);
  
  #ifdef FEAT_TERMINAL
--- 5648,5659 ----
      dict_add_number(dict, "winnr", winnr);
      dict_add_number(dict, "winid", wp->w_id);
      dict_add_number(dict, "height", wp->w_height);
!     dict_add_number(dict, "winrow", wp->w_winrow + 1);
  #ifdef FEAT_MENU
      dict_add_number(dict, "winbar", wp->w_winbar_height);
  #endif
      dict_add_number(dict, "width", wp->w_width);
!     dict_add_number(dict, "wincol", wp->w_wincol + 1);
      dict_add_number(dict, "bufnr", wp->w_buffer->b_fnum);
  
  #ifdef FEAT_TERMINAL
*** ../vim-8.1.0186/src/testdir/test_bufwintabinfo.vim  Sat Jul 14 22:23:44 2018
--- src/testdir/test_bufwintabinfo.vim  Sun Jul 15 16:57:49 2018
***************
*** 52,72 ****
      let winlist = getwininfo()
      call assert_equal(5, len(winlist))
      call assert_equal(winwidth(1), winlist[0].width)
!     call assert_equal(0, winlist[0].wincol)
!     let tablineheight = winlist[0].winrow == 1 ? 1 : 0
!     call assert_equal(tablineheight, winlist[0].winrow)  " tabline adds one
  
      call assert_equal(winbufnr(2), winlist[1].bufnr)
      call assert_equal(winheight(2), winlist[1].height)
!     call assert_equal(0, winlist[1].wincol)
!     call assert_equal(tablineheight + winheight(1) + 1, winlist[1].winrow)
  
      call assert_equal(1, winlist[2].winnr)
!     call assert_equal(tablineheight, winlist[2].winrow)
!     call assert_equal(0, winlist[2].wincol)
  
!     call assert_equal(winlist[2].width + 1, winlist[3].wincol)
!     call assert_equal(0, winlist[4].wincol)
  
      call assert_equal(1, winlist[0].tabnr)
      call assert_equal(1, winlist[1].tabnr)
--- 52,73 ----
      let winlist = getwininfo()
      call assert_equal(5, len(winlist))
      call assert_equal(winwidth(1), winlist[0].width)
!     call assert_equal(1, winlist[0].wincol)
!     " tabline adds one row in terminal, not in GUI
!     let tablineheight = winlist[0].winrow == 2 ? 1 : 0
!     call assert_equal(tablineheight + 1, winlist[0].winrow)
  
      call assert_equal(winbufnr(2), winlist[1].bufnr)
      call assert_equal(winheight(2), winlist[1].height)
!     call assert_equal(1, winlist[1].wincol)
!     call assert_equal(tablineheight + winheight(1) + 2, winlist[1].winrow)
  
      call assert_equal(1, winlist[2].winnr)
!     call assert_equal(tablineheight + 1, winlist[2].winrow)
!     call assert_equal(1, winlist[2].wincol)
  
!     call assert_equal(winlist[2].width + 2, winlist[3].wincol)
!     call assert_equal(1, winlist[4].wincol)
  
      call assert_equal(1, winlist[0].tabnr)
      call assert_equal(1, winlist[1].tabnr)
*** ../vim-8.1.0186/runtime/doc/eval.txt        Sat Jul 14 21:41:38 2018
--- runtime/doc/eval.txt        Sun Jul 15 16:54:29 2018
***************
*** 2196,2202 ****
                                any     variable {varname} in tab {nr} or {def}
  gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
                                any     {name} in {winnr} in tab page {tabnr}
! getwininfo([{winid}])         List    list of windows
  getwinpos([{timeout}])                List    X and Y coord in pixels of the 
Vim window
  getwinposx()                  Number  X coord in pixels of the Vim window
  getwinposy()                  Number  Y coord in pixels of the Vim window
--- 2196,2202 ----
                                any     variable {varname} in tab {nr} or {def}
  gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
                                any     {name} in {winnr} in tab page {tabnr}
! getwininfo([{winid}])         List    list of info about each window
  getwinpos([{timeout}])                List    X and Y coord in pixels of the 
Vim window
  getwinposx()                  Number  X coord in pixels of the Vim window
  getwinposy()                  Number  Y coord in pixels of the Vim window
***************
*** 4935,4940 ****
--- 4936,4976 ----
                        :let list_is_on = gettabwinvar(1, 2, '&list')
                        :echo "myvar = " . gettabwinvar(3, 1, 'myvar')
  <
+ getwininfo([{winid}])                                 *getwininfo()*
+               Returns information about windows as a List with Dictionaries.
+ 
+               If {winid} is given Information about the window with that ID
+               is returned.  If the window does not exist the result is an
+               empty list.
+ 
+               Without {winid} information about all the windows in all the
+               tab pages is returned.
+ 
+               Each List item is a Dictionary with the following entries:
+                       bufnr           number of buffer in the window
+                       height          window height (excluding winbar)
+                       winbar          1 if the window has a toolbar, 0
+                                       otherwise
+                       loclist         1 if showing a location list
+                                       {only with the +quickfix feature}
+                       quickfix        1 if quickfix or location list window
+                                       {only with the +quickfix feature}
+                       terminal        1 if a terminal window
+                                       {only with the +terminal feature}
+                       tabnr           tab page number
+                       variables       a reference to the dictionary with
+                                       window-local variables
+                       width           window width
+                       wincol          leftmost screen column of the window,
+                                       col from |win_screenpos()|
+                       winid           |window-ID|
+                       winnr           window number
+                       winrow          topmost screen column of the window,
+                                       row from |win_screenpos()|
+ 
+               To obtain all window-local variables use: >
+                       gettabwinvar({tabnr}, {winnr}, '&')
+ 
  getwinpos([{timeout}])                                        *getwinpos()*
                The result is a list with two numbers, the result of
                getwinposx() and getwinposy() combined: 
***************
*** 4968,5006 ****
                The result will be -1 if the information is not available.
                The value can be used with `:winpos`.
  
- getwininfo([{winid}])                                 *getwininfo()*
-               Returns information about windows as a List with Dictionaries.
- 
-               If {winid} is given Information about the window with that ID
-               is returned.  If the window does not exist the result is an
-               empty list.
- 
-               Without {winid} information about all the windows in all the
-               tab pages is returned.
- 
-               Each List item is a Dictionary with the following entries:
-                       bufnr           number of buffer in the window
-                       height          window height (excluding winbar)
-                       winbar          1 if the window has a toolbar, 0
-                                       otherwise
-                       loclist         1 if showing a location list
-                                       {only with the +quickfix feature}
-                       quickfix        1 if quickfix or location list window
-                                       {only with the +quickfix feature}
-                       terminal        1 if a terminal window
-                                       {only with the +terminal feature}
-                       tabnr           tab page number
-                       variables       a reference to the dictionary with
-                                       window-local variables
-                       width           window width
-                       wincol          leftmost screen column of the window
-                       winid           |window-ID|
-                       winnr           window number
-                       winrow          topmost screen column of the window
- 
-               To obtain all window-local variables use: >
-                       gettabwinvar({tabnr}, {winnr}, '&')
- 
  getwinvar({winnr}, {varname} [, {def}])                               
*getwinvar()*
                Like |gettabwinvar()| for the current tabpage.
                Examples: >
--- 5004,5009 ----
***************
*** 9047,9053 ****
  win_screenpos({nr})                                   *win_screenpos()*
                Return the screen position of window {nr} as a list with two
                numbers: [row, col].  The first window always has position
!               [1, 1].
                {nr} can be the window number or the |window-ID|.
                Return [0, 0] if the window cannot be found in the current
                tabpage.
--- 9051,9057 ----
  win_screenpos({nr})                                   *win_screenpos()*
                Return the screen position of window {nr} as a list with two
                numbers: [row, col].  The first window always has position
!               [1, 1], unless there is a tabline, then it is [2, 1].
                {nr} can be the window number or the |window-ID|.
                Return [0, 0] if the window cannot be found in the current
                tabpage.
*** ../vim-8.1.0186/src/version.c       Sat Jul 14 22:23:44 2018
--- src/version.c       Sun Jul 15 17:00:11 2018
***************
*** 791,792 ****
--- 791,794 ----
  {   /* Add new patch number below this line */
+ /**/
+     187,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
251. You've never seen your closest friends who usually live WAY too far away.

 /// 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

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui