patch 8.0.0900: :tab options doesn't open a new tab page
Problem: :tab options doesn't open a new tab page. (Aviany)
Solution: Support the :tab modifier. (closes #1960)
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index 1a9fa3a..52f987e 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,20 +1,17 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2017 Aug 01
+" Last Change: 2017 Aug 11
" If there already is an option window, jump to that one.
-if bufwinnr("option-window") > 0
- let s:thiswin = winnr()
- while 1
- if @% == "option-window"
+let buf = bufnr('option-window')
+if buf >= 0
+ let winids = win_findbuf(buf)
+ if len(winids) > 0
+ if win_gotoid(winids[0]) == 1
finish
endif
- wincmd w
- if s:thiswin == winnr()
- break
- endif
- endwhile
+ endif
endif
" Make sure the '<' flag is not included in 'cpoptions', otherwise <CR> would
@@ -141,8 +138,8 @@
endif
endwhile
-" Open the window
-new option-window
+" Open the window. $OPTWIN_CMD is set to "tab" for ":tab options".
+exe $OPTWIN_CMD . ' new option-window'
setlocal ts=15 tw=0 noro buftype=nofile
" Insert help and a "set" command for each option.
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 26b588c..8a11fbb 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -3749,6 +3749,7 @@
ex_options(
exarg_T *eap UNUSED)
{
+ vim_setenv((char_u *)"OPTWIN_CMD", (char_u *)(cmdmod.tab ? "tab" : ""));
cmd_source((char_u *)SYS_OPTWIN_FILE, NULL);
}
#endif
diff --git a/src/version.c b/src/version.c
index 707be4f..9e3764e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 900,
+/**/
899,
/**/
898,