summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0307
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0307')
-rw-r--r--data/vim/patches/8.1.0307233
1 files changed, 0 insertions, 233 deletions
diff --git a/data/vim/patches/8.1.0307 b/data/vim/patches/8.1.0307
deleted file mode 100644
index 95342de6e..000000000
--- a/data/vim/patches/8.1.0307
+++ /dev/null
@@ -1,233 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.0307
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 8.1.0307
-Problem: There is no good way to get the window layout.
-Solution: Add the winlayout() function. (Yegappan Lakshmanan)
-Files: runtime/doc/eval.txt, src/evalfunc.c, src/proto/window.pro,
- src/window.c, src/testdir/test_window_id.vim
-
-
-*** ../vim-8.1.0306/runtime/doc/eval.txt 2018-07-29 15:34:20.864300100 +0200
---- runtime/doc/eval.txt 2018-08-21 16:35:43.299154086 +0200
-***************
-*** 2497,2502 ****
---- 2504,2510 ----
- winbufnr({nr}) Number buffer number of window {nr}
- wincol() Number window column of the cursor
- winheight({nr}) Number height of window {nr}
-+ winlayout([{tabnr}]) List layout of windows in tab {tabnr}
- winline() Number window line of the cursor
- winnr([{expr}]) Number number of current window
- winrestcmd() String returns command to restore window sizes
-***************
-*** 9087,9092 ****
---- 9096,9130 ----
- Examples: >
- :echo "The current window has " . winheight(0) . " lines."
- <
-+ winlayout([{tabnr}]) *winlayout()*
-+ The result is a nested List containing the layout of windows
-+ in a tabpage.
-+
-+ Without {tabnr} use the current tabpage, otherwise the tabpage
-+ with number {tabnr}. If the tabpage {tabnr} is not found,
-+ returns an empty list.
-+
-+ For a leaf window, it returns:
-+ ['leaf', {winid}]
-+ For horizontally split windows, which form a column, it
-+ returns:
-+ ['col', [{nested list of windows}]]
-+ For vertically split windows, which form a row, it returns:
-+ ['row', [{nested list of windows}]]
-+
-+ Example: >
-+ " Only one window in the tab page
-+ :echo winlayout()
-+ ['leaf', 1000]
-+ " Two horizontally split windows
-+ :echo winlayout()
-+ ['col', [['leaf', 1000], ['leaf', 1001]]]
-+ " Three horizontally split windows, with two
-+ " vertically split windows in the middle window
-+ :echo winlayout(2)
-+ ['col', [['leaf', 1002], ['row', ['leaf', 1003],
-+ ['leaf', 1001]]], ['leaf', 1000]]
-+ <
- *winline()*
- winline() The result is a Number, which is the screen line of the cursor
- in the window. This is counting screen lines from the top of
-*** ../vim-8.1.0306/src/evalfunc.c 2018-08-11 13:57:16.211969806 +0200
---- src/evalfunc.c 2018-08-21 16:19:29.914566586 +0200
-***************
-*** 463,468 ****
---- 463,469 ----
- static void f_winbufnr(typval_T *argvars, typval_T *rettv);
- static void f_wincol(typval_T *argvars, typval_T *rettv);
- static void f_winheight(typval_T *argvars, typval_T *rettv);
-+ static void f_winlayout(typval_T *argvars, typval_T *rettv);
- static void f_winline(typval_T *argvars, typval_T *rettv);
- static void f_winnr(typval_T *argvars, typval_T *rettv);
- static void f_winrestcmd(typval_T *argvars, typval_T *rettv);
-***************
-*** 952,957 ****
---- 953,959 ----
- {"winbufnr", 1, 1, f_winbufnr},
- {"wincol", 0, 0, f_wincol},
- {"winheight", 1, 1, f_winheight},
-+ {"winlayout", 0, 1, f_winlayout},
- {"winline", 0, 0, f_winline},
- {"winnr", 0, 1, f_winnr},
- {"winrestcmd", 0, 0, f_winrestcmd},
-***************
-*** 13743,13748 ****
---- 13745,13773 ----
- }
-
- /*
-+ * "winlayout()" function
-+ */
-+ static void
-+ f_winlayout(typval_T *argvars, typval_T *rettv)
-+ {
-+ tabpage_T *tp;
-+
-+ if (rettv_list_alloc(rettv) != OK)
-+ return;
-+
-+ if (argvars[0].v_type == VAR_UNKNOWN)
-+ tp = curtab;
-+ else
-+ {
-+ tp = find_tabpage((int)get_tv_number(&argvars[0]));
-+ if (tp == NULL)
-+ return;
-+ }
-+
-+ get_framelayout(tp->tp_topframe, rettv->vval.v_list, TRUE);
-+ }
-+
-+ /*
- * "winline()" function
- */
- static void
-*** ../vim-8.1.0306/src/proto/window.pro 2018-06-12 16:49:26.366028607 +0200
---- src/proto/window.pro 2018-08-21 16:38:15.282101882 +0200
-***************
-*** 94,97 ****
---- 94,98 ----
- win_T *win_id2wp(typval_T *argvars);
- int win_id2win(typval_T *argvars);
- void win_findbuf(typval_T *argvars, list_T *list);
-+ void get_framelayout(frame_T *fr, list_T *l, int topframe);
- /* vim: set ft=c : */
-*** ../vim-8.1.0306/src/window.c 2018-07-25 22:36:48.991518559 +0200
---- src/window.c 2018-08-21 16:43:30.963948179 +0200
-***************
-*** 7236,7239 ****
---- 7236,7288 ----
- list_append_number(list, wp->w_id);
- }
-
-+ /*
-+ * Get the layout of the given tab page for winlayout().
-+ */
-+ void
-+ get_framelayout(frame_T *fr, list_T *l, int outer)
-+ {
-+ frame_T *child;
-+ list_T *fr_list;
-+ list_T *win_list;
-+
-+ if (fr == NULL)
-+ return;
-+
-+ if (outer)
-+ // outermost call from f_winlayout()
-+ fr_list = l;
-+ else
-+ {
-+ fr_list = list_alloc();
-+ if (fr_list == NULL)
-+ return;
-+ list_append_list(l, fr_list);
-+ }
-+
-+ if (fr->fr_layout == FR_LEAF)
-+ {
-+ if (fr->fr_win != NULL)
-+ {
-+ list_append_string(fr_list, (char_u *)"leaf", -1);
-+ list_append_number(fr_list, fr->fr_win->w_id);
-+ }
-+ }
-+ else
-+ {
-+ list_append_string(fr_list,
-+ fr->fr_layout == FR_ROW ? (char_u *)"row" : (char_u *)"col", -1);
-+
-+ win_list = list_alloc();
-+ if (win_list == NULL)
-+ return;
-+ list_append_list(fr_list, win_list);
-+ child = fr->fr_child;
-+ while (child != NULL)
-+ {
-+ get_framelayout(child, win_list, FALSE);
-+ child = child->fr_next;
-+ }
-+ }
-+ }
- #endif
-*** ../vim-8.1.0306/src/testdir/test_window_id.vim 2016-11-13 14:25:47.000000000 +0100
---- src/testdir/test_window_id.vim 2018-08-21 16:47:00.102536647 +0200
-***************
-*** 101,103 ****
---- 101,123 ----
- call assert_equal(win_getid(1), win_getid(1, 1))
- tabclose!
- endfunc
-+
-+ func Test_winlayout()
-+ let w1 = win_getid()
-+ call assert_equal(['leaf', w1], winlayout())
-+
-+ split
-+ let w2 = win_getid()
-+ call assert_equal(['col', [['leaf', w2], ['leaf', w1]]], winlayout())
-+
-+ split
-+ let w3 = win_getid()
-+ call assert_equal(['col', [['leaf', w3], ['leaf', w2], ['leaf', w1]]], winlayout())
-+
-+ 2wincmd w
-+ vsplit
-+ let w4 = win_getid()
-+ call assert_equal(['col', [['leaf', w3], ['row', [['leaf', w4], ['leaf', w2]]], ['leaf', w1]]], winlayout())
-+
-+ only!
-+ endfunc
-*** ../vim-8.1.0306/src/version.c 2018-08-21 15:12:10.843801621 +0200
---- src/version.c 2018-08-21 16:54:45.515933731 +0200
-***************
-*** 796,797 ****
---- 796,799 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 307,
- /**/
-
---
-Friends? I have lots of friends! In fact, I have all episodes ever made.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 ///