diff options
| -rw-r--r-- | runtime/optwin.vim | 19 | ||||
| -rw-r--r-- | src/nvim/ex_cmds2.c | 1 | ||||
| -rw-r--r-- | src/nvim/memory.c | 4 | ||||
| -rw-r--r-- | src/nvim/screen.c | 2 | 
4 files changed, 13 insertions, 13 deletions
| diff --git a/runtime/optwin.vim b/runtime/optwin.vim index 81eb3f11fd..83c509b7cb 100644 --- a/runtime/optwin.vim +++ b/runtime/optwin.vim @@ -4,17 +4,14 @@  " Last Change:	2017 Oct 19  " 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 @@ while exists("b:current_syntax") && b:current_syntax == "help"    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/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c index c384d253b9..ab24b63110 100644 --- a/src/nvim/ex_cmds2.c +++ b/src/nvim/ex_cmds2.c @@ -2728,6 +2728,7 @@ void ex_packadd(exarg_T *eap)  /// ":options"  void ex_options(exarg_T *eap)  { +  vim_setenv("OPTWIN_CMD", cmdmod.tab ? "tab" : "");    cmd_source((char_u *)SYS_OPTWIN_FILE, NULL);  } diff --git a/src/nvim/memory.c b/src/nvim/memory.c index d3d0968a5c..8789075c44 100644 --- a/src/nvim/memory.c +++ b/src/nvim/memory.c @@ -619,7 +619,6 @@ void free_all_mem(void)    /* Obviously named calls. */    free_all_autocmds(); -  free_all_options();    free_all_marks();    alist_clear(&global_alist);    free_homedir(); @@ -657,6 +656,9 @@ void free_all_mem(void)    /* Destroy all windows.  Must come before freeing buffers. */    win_free_all(); +  // Free all option values.  Must come after closing windows. +  free_all_options(); +    free_cmdline_buf();    /* Clear registers. */ diff --git a/src/nvim/screen.c b/src/nvim/screen.c index 092820321c..c3996046e0 100644 --- a/src/nvim/screen.c +++ b/src/nvim/screen.c @@ -149,7 +149,7 @@ void redraw_later(int type)  void redraw_win_later(win_T *wp, int type)  { -  if (wp->w_redr_type < type) { +  if (!exiting && wp->w_redr_type < type) {      wp->w_redr_type = type;      if (type >= NOT_VALID)        wp->w_lines_valid = 0; | 
