Hi Bram and list,
2016-10-27(Thu) 21:50:11 UTC+9 Bram Moolenaar:
> Patch 8.0.0047
> Problem: Crash when using the preview window from an unnamed buffer.
> (lifepillar)
> Solution: Do not clear the wrong buffer. (closes #1200)
> Files: src/popupmnu.c
>
>
> *** ../vim-8.0.0046/src/popupmnu.c 2016-08-29 22:42:20.000000000 +0200
> --- src/popupmnu.c 2016-10-27 14:29:30.530187340 +0200
> ***************
> *** 582,588 ****
>
> if (curwin->w_p_pvw)
> {
> ! if (curbuf->b_fname == NULL
> && curbuf->b_p_bt[0] == 'n' && curbuf->b_p_bt[2] == 'f'
> && curbuf->b_p_bh[0] == 'w')
> {
> --- 582,590 ----
>
> if (curwin->w_p_pvw)
> {
> ! if (!resized
> ! && curbuf->b_nwindows == 1
> ! && curbuf->b_fname == NULL
> && curbuf->b_p_bt[0] == 'n' && curbuf->b_p_bt[2] == 'f'
> && curbuf->b_p_bh[0] == 'w')
> {
> *** ../vim-8.0.0046/src/version.c 2016-10-21 20:35:32.632943225 +0200
> --- src/version.c 2016-10-27 14:48:11.623357275 +0200
> ***************
> *** 766,767 ****
> --- 766,769 ----
> { /* Add new patch number below this line */
> + /**/
> + 47,
> /**/
Here is a test patch for this.
I confirmed fails unpatched my patch, and success patched one.
--
Best regards,
Hirohito Higashi (a.k.a. h_east)
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index cc93ff8..f1e2c98 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -378,7 +378,7 @@ func DummyCompleteFour(findstart, base)
endif
endfunc
-" Test that 'completefunc' works when it's OK.
+" Test that 'omnifunc' works when it's OK.
func Test_omnifunc_with_check()
new
setlocal omnifunc=DummyCompleteFour
@@ -437,5 +437,31 @@ func Test_complete_no_undo()
q!
endfunc
+function! DummyCompleteFive(findstart, base)
+ if a:findstart
+ return 0
+ else
+ return [
+ \ { 'word': 'January', 'info': "info1-1\n1-2\n1-3" },
+ \ { 'word': 'February', 'info': "info2-1\n2-2\n2-3" },
+ \ { 'word': 'March', 'info': "info3-1\n3-2\n3-3" },
+ \ { 'word': 'April', 'info': "info4-1\n4-2\n4-3" },
+ \ { 'word': 'May', 'info': "info5-1\n5-2\n5-3" },
+ \ ]
+ endif
+endfunc
+
+" Test that 'completefunc' on Scratch buffer with preview window works when
+" it's OK.
+func Test_completefunc_with_scratch_buffer()
+ new +setlocal\ buftype=nofile\ bufhidden=wipe\ noswapfile
+ set completeopt+=preview
+ setlocal completefunc=DummyCompleteFive
+ call feedkeys("A\<C-X>\<C-U>\<C-N>\<C-N>\<C-N>\<Esc>", "x")
+ call assert_equal(['April'], getline(1, '$'))
+ pclose
+ q!
+ set completeopt&
+endfunc
" vim: shiftwidth=2 sts=2 expandtab