From ec615012a702dac26cfb685901c32d5bde6bc4de Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sat, 27 Dec 2014 16:36:58 -0500 Subject: vim-patch:6a598be test for 7.4.487 https://code.google.com/p/vim/source/detail?r=6a598be6d4e8 --- test/functional/legacy/signs_spec.lua | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 test/functional/legacy/signs_spec.lua diff --git a/test/functional/legacy/signs_spec.lua b/test/functional/legacy/signs_spec.lua new file mode 100644 index 0000000000..89b2bf3b73 --- /dev/null +++ b/test/functional/legacy/signs_spec.lua @@ -0,0 +1,24 @@ +-- Tests for signs + +local helpers = require('test.functional.helpers') +local feed, insert, source = helpers.feed, helpers.insert, helpers.source +local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect + +describe('signs', function() + setup(clear) + + it('is working', function() + execute('sign define JumpSign text=x') + execute([[exe 'sign place 42 line=2 name=JumpSign buffer=' . bufnr('')]]) + -- Split the window to the bottom to verify :sign-jump will stay in the current + -- window if the buffer is displayed there. + execute('bot split') + execute([[exe 'sign jump 42 buffer=' . bufnr('')]]) + execute([[call append(line('$'), winnr())]]) + + -- Assert buffer contents. + expect([[ + + 2]]) + end) +end) -- cgit From bb1be08bae200bbc6b297c2d926fa8565fd42b5c Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 29 Dec 2014 00:17:46 -0500 Subject: vim-patch:7.4.487 Problem: ":sign jump" may use another window even though the file is already edited in the current window. Solution: First check if the file is in the current window. (James McCoy) https://code.google.com/p/vim/source/detail?r=v7-4-487 --- src/nvim/version.c | 2 +- src/nvim/window.c | 27 ++++++++++++++------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/nvim/version.c b/src/nvim/version.c index 4d0e950b24..f0f1db506d 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -251,7 +251,7 @@ static int included_patches[] = { //490, 489, 488, - //487, + 487, 486, 485, //484 NA diff --git a/src/nvim/window.c b/src/nvim/window.c index 1a102cf069..ed4a8d8e7a 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -3543,27 +3543,28 @@ static void win_enter_ext(win_T *wp, bool undo_sync, int curwin_invalid, int tri } -/* - * Jump to the first open window that contains buffer "buf", if one exists. - * Returns a pointer to the window found, otherwise NULL. - */ +/// Jump to the first open window that contains buffer "buf", if one exists. +/// Returns a pointer to the window found, otherwise NULL. win_T *buf_jump_open_win(buf_T *buf) { - FOR_ALL_WINDOWS_IN_TAB(wp, curtab) { - if (wp->w_buffer == buf) { - win_enter(wp, false); - return wp; + if (curwin->w_buffer == buf) { + win_enter(curwin, false); + return curwin; + } else { + FOR_ALL_WINDOWS_IN_TAB(wp, curtab) { + if (wp->w_buffer == buf) { + win_enter(wp, false); + return wp; + } } } return NULL; } -/* - * Jump to the first open window in any tab page that contains buffer "buf", - * if one exists. - * Returns a pointer to the window found, otherwise NULL. - */ +/// Jump to the first open window in any tab page that contains buffer "buf", +/// if one exists. +/// @return the found window, or NULL. win_T *buf_jump_open_tab(buf_T *buf) { -- cgit