patch 8.1.1870: using :pedit from a help file sets help filetype
Problem: Using :pedit from a help file sets the preview window to help
filetype. (Wang Shidong)
Solution: Do not set "keep_help_flag". (closes #3536)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index cea3936..941ad84 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -8612,16 +8612,16 @@
{
win_T *curwin_save = curwin;
+ // Open the preview window or popup and make it the current window.
g_do_tagpreview = p_pvh;
prepare_tagpreview(TRUE);
- keep_help_flag = bt_help(curwin_save->w_buffer);
+ // Edit the file.
do_exedit(eap, NULL);
- keep_help_flag = FALSE;
if (curwin != curwin_save && win_valid(curwin_save))
{
- /* Return cursor to where we were */
+ // Return cursor to where we were
validate_cursor();
redraw_later(VALID);
win_enter(curwin_save, TRUE);
diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim
index 7af7d07..9927e27 100644
--- a/src/testdir/test_window_cmd.vim
+++ b/src/testdir/test_window_cmd.vim
@@ -190,6 +190,21 @@
call assert_fails('wincmd P', 'E441:')
endfunc
+func Test_window_preview_from_help()
+ filetype on
+ call writefile(['/* some C code */'], 'Xpreview.c')
+ help
+ pedit Xpreview.c
+ wincmd P
+ call assert_equal(1, &previewwindow)
+ call assert_equal('c', &filetype)
+ wincmd z
+
+ filetype off
+ close
+ call delete('Xpreview.c')
+endfunc
+
func Test_window_exchange()
e Xa
@@ -582,6 +597,7 @@
endfunc
func Fun_RenewFile()
+ " Need to wait a bit for the timestamp to be older.
sleep 2
silent execute '!echo "1" > tmp.txt'
sp
@@ -599,7 +615,6 @@
call writefile(['2'], 'tmp.txt')
new tmp.txt
q
- " Need to wait a bit for the timestamp to be older.
call Fun_RenewFile()
call assert_equal(2, winnr())
wincmd p
diff --git a/src/version.c b/src/version.c
index cb59ef0..8e2ac30 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1870,
+/**/
1869,
/**/
1868,