diff options
-rw-r--r-- | src/nvim/version.c | 2 | ||||
-rw-r--r-- | src/nvim/window.c | 27 | ||||
-rw-r--r-- | test/functional/legacy/signs_spec.lua | 24 |
3 files changed, 39 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) { 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) |