summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1140
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1140')
-rw-r--r--data/vim/patches/8.1.1140408
1 files changed, 0 insertions, 408 deletions
diff --git a/data/vim/patches/8.1.1140 b/data/vim/patches/8.1.1140
deleted file mode 100644
index bb8f23751..000000000
--- a/data/vim/patches/8.1.1140
+++ /dev/null
@@ -1,408 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.1140
-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.1140
-Problem: Not easy to find out what neighbors a window has.
-Solution: Add more arguments to winnr(). (Yegappan Lakshmanan, closes #3993)
-Files: runtime/doc/eval.txt, src/evalfunc.c, src/proto/window.pro,
- src/testdir/test_window_cmd.vim, src/window.c
-
-
-*** ../vim-8.1.1139/runtime/doc/eval.txt 2019-04-06 13:18:06.733335092 +0200
---- runtime/doc/eval.txt 2019-04-08 19:56:34.570615478 +0200
-***************
-*** 10139,10155 ****
- *winnr()*
- winnr([{arg}]) The result is a Number, which is the number of the current
- window. The top window has number 1.
-! When the optional argument is "$", the number of the
-! last window is returned (the window count). >
-! let window_count = winnr('$')
-! < When the optional argument is "#", the number of the last
-! accessed window is returned (where |CTRL-W_p| goes to).
-! If there is no previous window or it is in another tab page 0
-! is returned.
- The number can be used with |CTRL-W_w| and ":wincmd w"
- |:wincmd|.
- Also see |tabpagewinnr()| and |win_getid()|.
-!
- *winrestcmd()*
- winrestcmd() Returns a sequence of |:resize| commands that should restore
- the current window sizes. Only works properly when no windows
---- 10198,10227 ----
- *winnr()*
- winnr([{arg}]) The result is a Number, which is the number of the current
- window. The top window has number 1.
-!
-! The optional argument {arg} supports the following values:
-! $ the number of the last window (the window
-! count).
-! # the number of the last accessed window (where
-! |CTRL-W_p| goes to). If there is no previous
-! window or it is in another tab page 0 is
-! returned.
-! {N}j the number of the Nth window below the
-! current window (where |CTRL-W_j| goes to).
-! {N}k the number of the Nth window above the current
-! window (where |CTRL-W_k| goes to).
-! {N}h the number of the Nth window left of the
-! current window (where |CTRL-W_h| goes to).
-! {N}l the number of the Nth window right of the
-! current window (where |CTRL-W_l| goes to).
- The number can be used with |CTRL-W_w| and ":wincmd w"
- |:wincmd|.
- Also see |tabpagewinnr()| and |win_getid()|.
-! Examples: >
-! let window_count = winnr('$')
-! let prev_window = winnr('#')
-! let wnum = winnr('3k')
-! <
- *winrestcmd()*
- winrestcmd() Returns a sequence of |:resize| commands that should restore
- the current window sizes. Only works properly when no windows
-*** ../vim-8.1.1139/src/evalfunc.c 2019-04-07 14:21:26.230339328 +0200
---- src/evalfunc.c 2019-04-08 19:53:26.131435229 +0200
-***************
-*** 13982,13987 ****
---- 13982,13989 ----
- twin = (tp == curtab) ? curwin : tp->tp_curwin;
- if (argvar->v_type != VAR_UNKNOWN)
- {
-+ int invalid_arg = FALSE;
-+
- arg = tv_get_string_chk(argvar);
- if (arg == NULL)
- nr = 0; /* type error; errmsg already given */
-***************
-*** 13995,14000 ****
---- 13997,14028 ----
- }
- else
- {
-+ long count;
-+ char_u *endp;
-+
-+ // Extract the window count (if specified). e.g. winnr('3j')
-+ count = strtol((char *)arg, (char **)&endp, 10);
-+ if (count <= 0)
-+ count = 1; // if count is not specified, default to 1
-+ if (endp != NULL && *endp != '\0')
-+ {
-+ if (STRCMP(endp, "j") == 0)
-+ twin = win_vert_neighbor(tp, twin, FALSE, count);
-+ else if (STRCMP(endp, "k") == 0)
-+ twin = win_vert_neighbor(tp, twin, TRUE, count);
-+ else if (STRCMP(endp, "h") == 0)
-+ twin = win_horz_neighbor(tp, twin, TRUE, count);
-+ else if (STRCMP(endp, "l") == 0)
-+ twin = win_horz_neighbor(tp, twin, FALSE, count);
-+ else
-+ invalid_arg = TRUE;
-+ }
-+ else
-+ invalid_arg = TRUE;
-+ }
-+
-+ if (invalid_arg)
-+ {
- semsg(_(e_invexpr2), arg);
- nr = 0;
- }
-*** ../vim-8.1.1139/src/proto/window.pro 2019-02-13 22:45:21.512636158 +0100
---- src/proto/window.pro 2019-04-08 19:53:26.131435229 +0200
-***************
-*** 37,42 ****
---- 37,44 ----
- void win_goto(win_T *wp);
- win_T *win_find_nr(int winnr);
- tabpage_T *win_find_tabpage(win_T *win);
-+ win_T *win_vert_neighbor(tabpage_T *tp, win_T *wp, int up, long count);
-+ win_T *win_horz_neighbor(tabpage_T *tp, win_T * wp, int left, long count);
- void win_enter(win_T *wp, int undo_sync);
- win_T *buf_jump_open_win(buf_T *buf);
- win_T *buf_jump_open_tab(buf_T *buf);
-*** ../vim-8.1.1139/src/testdir/test_window_cmd.vim 2019-03-04 13:18:15.977053527 +0100
---- src/testdir/test_window_cmd.vim 2019-04-08 19:53:26.131435229 +0200
-***************
-*** 743,746 ****
---- 743,791 ----
- let &so = so_save
- endfunc
-
-+ " Tests for the winnr() function
-+ func Test_winnr()
-+ only | tabonly
-+ call assert_equal(1, winnr('j'))
-+ call assert_equal(1, winnr('k'))
-+ call assert_equal(1, winnr('h'))
-+ call assert_equal(1, winnr('l'))
-+
-+ " create a set of horizontally and vertically split windows
-+ leftabove new | wincmd p
-+ leftabove new | wincmd p
-+ rightbelow new | wincmd p
-+ rightbelow new | wincmd p
-+ leftabove vnew | wincmd p
-+ leftabove vnew | wincmd p
-+ rightbelow vnew | wincmd p
-+ rightbelow vnew | wincmd p
-+
-+ call assert_equal(8, winnr('j'))
-+ call assert_equal(2, winnr('k'))
-+ call assert_equal(4, winnr('h'))
-+ call assert_equal(6, winnr('l'))
-+ call assert_equal(9, winnr('2j'))
-+ call assert_equal(1, winnr('2k'))
-+ call assert_equal(3, winnr('2h'))
-+ call assert_equal(7, winnr('2l'))
-+
-+ " Error cases
-+ call assert_fails("echo winnr('0.2k')", 'E15:')
-+ call assert_equal(2, winnr('-2k'))
-+ call assert_fails("echo winnr('-2xj')", 'E15:')
-+ call assert_fails("echo winnr('j2j')", 'E15:')
-+ call assert_fails("echo winnr('ll')", 'E15:')
-+ call assert_fails("echo winnr('5')", 'E15:')
-+ call assert_equal(4, winnr('0h'))
-+
-+ tabnew
-+ call assert_equal(8, tabpagewinnr(1, 'j'))
-+ call assert_equal(2, tabpagewinnr(1, 'k'))
-+ call assert_equal(4, tabpagewinnr(1, 'h'))
-+ call assert_equal(6, tabpagewinnr(1, 'l'))
-+
-+ only | tabonly
-+ endfunc
-+
- " vim: shiftwidth=2 sts=2 expandtab
-*** ../vim-8.1.1139/src/window.c 2019-03-30 19:49:03.262806533 +0100
---- src/window.c 2019-04-08 19:58:55.705969739 +0200
-***************
-*** 4218,4235 ****
- #endif
-
- /*
-! * Move to window above or below "count" times.
- */
-! static void
-! win_goto_ver(
-! int up, /* TRUE to go to win above */
-! long count)
- {
- frame_T *fr;
- frame_T *nfr;
- frame_T *foundfr;
-
-! foundfr = curwin->w_frame;
- while (count--)
- {
- /*
---- 4218,4236 ----
- #endif
-
- /*
-! * Get the above or below neighbor window of the specified window.
-! * up - TRUE for the above neighbor
-! * count - nth neighbor window
-! * Returns the specified window if the neighbor is not found.
- */
-! win_T *
-! win_vert_neighbor(tabpage_T *tp, win_T *wp, int up, long count)
- {
- frame_T *fr;
- frame_T *nfr;
- frame_T *foundfr;
-
-! foundfr = wp->w_frame;
- while (count--)
- {
- /*
-***************
-*** 4239,4245 ****
- fr = foundfr;
- for (;;)
- {
-! if (fr == topframe)
- goto end;
- if (up)
- nfr = fr->fr_prev;
---- 4240,4246 ----
- fr = foundfr;
- for (;;)
- {
-! if (fr == tp->tp_topframe)
- goto end;
- if (up)
- nfr = fr->fr_prev;
-***************
-*** 4266,4272 ****
- /* Find the frame at the cursor row. */
- while (fr->fr_next != NULL
- && frame2win(fr)->w_wincol + fr->fr_width
-! <= curwin->w_wincol + curwin->w_wcol)
- fr = fr->fr_next;
- }
- if (nfr->fr_layout == FR_COL && up)
---- 4267,4273 ----
- /* Find the frame at the cursor row. */
- while (fr->fr_next != NULL
- && frame2win(fr)->w_wincol + fr->fr_width
-! <= wp->w_wincol + wp->w_wcol)
- fr = fr->fr_next;
- }
- if (nfr->fr_layout == FR_COL && up)
-***************
-*** 4276,4298 ****
- }
- }
- end:
-! if (foundfr != NULL)
-! win_goto(foundfr->fr_win);
- }
-
- /*
-! * Move to left or right window.
- */
- static void
-! win_goto_hor(
-! int left, /* TRUE to go to left win */
- long count)
- {
- frame_T *fr;
- frame_T *nfr;
- frame_T *foundfr;
-
-! foundfr = curwin->w_frame;
- while (count--)
- {
- /*
---- 4277,4314 ----
- }
- }
- end:
-! return foundfr != NULL ? foundfr->fr_win : NULL;
- }
-
- /*
-! * Move to window above or below "count" times.
- */
- static void
-! win_goto_ver(
-! int up, // TRUE to go to win above
- long count)
- {
-+ win_T *win;
-+
-+ win = win_vert_neighbor(curtab, curwin, up, count);
-+ if (win != NULL)
-+ win_goto(win);
-+ }
-+
-+ /*
-+ * Get the left or right neighbor window of the specified window.
-+ * left - TRUE for the left neighbor
-+ * count - nth neighbor window
-+ * Returns the specified window if the neighbor is not found.
-+ */
-+ win_T *
-+ win_horz_neighbor(tabpage_T *tp, win_T * wp, int left, long count)
-+ {
- frame_T *fr;
- frame_T *nfr;
- frame_T *foundfr;
-
-! foundfr = wp->w_frame;
- while (count--)
- {
- /*
-***************
-*** 4302,4308 ****
- fr = foundfr;
- for (;;)
- {
-! if (fr == topframe)
- goto end;
- if (left)
- nfr = fr->fr_prev;
---- 4318,4324 ----
- fr = foundfr;
- for (;;)
- {
-! if (fr == tp->tp_topframe)
- goto end;
- if (left)
- nfr = fr->fr_prev;
-***************
-*** 4329,4335 ****
- /* Find the frame at the cursor row. */
- while (fr->fr_next != NULL
- && frame2win(fr)->w_winrow + fr->fr_height
-! <= curwin->w_winrow + curwin->w_wrow)
- fr = fr->fr_next;
- }
- if (nfr->fr_layout == FR_ROW && left)
---- 4345,4351 ----
- /* Find the frame at the cursor row. */
- while (fr->fr_next != NULL
- && frame2win(fr)->w_winrow + fr->fr_height
-! <= wp->w_winrow + wp->w_wrow)
- fr = fr->fr_next;
- }
- if (nfr->fr_layout == FR_ROW && left)
-***************
-*** 4339,4346 ****
- }
- }
- end:
-! if (foundfr != NULL)
-! win_goto(foundfr->fr_win);
- }
-
- /*
---- 4355,4376 ----
- }
- }
- end:
-! return foundfr != NULL ? foundfr->fr_win : NULL;
-! }
-!
-! /*
-! * Move to left or right window.
-! */
-! static void
-! win_goto_hor(
-! int left, // TRUE to go to left win
-! long count)
-! {
-! win_T *win;
-!
-! win = win_horz_neighbor(curtab, curwin, left, count);
-! if (win != NULL)
-! win_goto(win);
- }
-
- /*
-*** ../vim-8.1.1139/src/version.c 2019-04-08 18:59:50.973019097 +0200
---- src/version.c 2019-04-08 20:00:11.881612574 +0200
-***************
-*** 773,774 ****
---- 773,776 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 1140,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-232. You start conversations with, "Have you gotten an ISDN line?"
-
- /// 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 ///