Mercurial > vim
diff src/window.c @ 6307:1f9577e9ef1b v7.4.487
updated for version 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)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Tue, 21 Oct 2014 20:57:15 +0200 |
parents | 521c49b6de9d |
children | 383cb9ddb561 |
line wrap: on
line diff
--- a/src/window.c +++ b/src/window.c @@ -4407,20 +4407,19 @@ win_enter_ext(wp, undo_sync, curwin_inva buf_jump_open_win(buf) buf_T *buf; { + win_T *wp = NULL; + + if (curwin->w_buffer == buf) + wp = curwin; # ifdef FEAT_WINDOWS - win_T *wp; - - for (wp = firstwin; wp != NULL; wp = wp->w_next) - if (wp->w_buffer == buf) - break; + else + for (wp = firstwin; wp != NULL; wp = wp->w_next) + if (wp->w_buffer == buf) + break; if (wp != NULL) win_enter(wp, FALSE); +# endif return wp; -# else - if (curwin->w_buffer == buf) - return curwin; - return NULL; -# endif } /* @@ -4432,12 +4431,10 @@ buf_jump_open_win(buf) buf_jump_open_tab(buf) buf_T *buf; { + win_T *wp = buf_jump_open_win(buf); # ifdef FEAT_WINDOWS - win_T *wp; tabpage_T *tp; - /* First try the current tab page. */ - wp = buf_jump_open_win(buf); if (wp != NULL) return wp; @@ -4455,13 +4452,8 @@ buf_jump_open_tab(buf) break; } } - +# endif return wp; -# else - if (curwin->w_buffer == buf) - return curwin; - return NULL; -# endif } #endif