summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYegappan Lakshmanan <yegappan@yahoo.com>2021-07-31 12:43:23 +0200
committerBram Moolenaar <Bram@vim.org>2021-07-31 12:43:23 +0200
commit28d8421bfb3327d7a5e81369977e8fc108b0229e (patch)
tree520f67d2496e3b19eda8593e614d3e8c38cd13e0
parent890ee4e2be1dca0c07a91f836e26baead952ae7c (diff)
downloadvim-git-28d8421bfb3327d7a5e81369977e8fc108b0229e.tar.gz
patch 8.2.3254: win_gettype() does not recognize a quickfix windowv8.2.3254
Problem: win_gettype() does not recognize a quickfix window. Solution: Add "quickfix" and "loclist". (Yegappan Lakshmanan, closes #8676)
-rw-r--r--runtime/doc/eval.txt6
-rw-r--r--src/evalwindow.c6
-rw-r--r--src/misc2.c6
-rw-r--r--src/testdir/test_quickfix.vim17
-rw-r--r--src/version.c2
5 files changed, 32 insertions, 5 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 5054904db..5f047e6bd 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -11661,10 +11661,12 @@ win_gettype([{nr}]) *win_gettype()*
Return the type of the window:
"autocmd" autocommand window. Temporary window
used to execute autocommands.
- "popup" popup window |popup|
- "preview" preview window |preview-window|
"command" command-line window |cmdwin|
(empty) normal window
+ "loclist" |location-list-window|
+ "popup" popup window |popup|
+ "preview" preview window |preview-window|
+ "quickfix" |quickfix-window|
"unknown" window {nr} not found
When {nr} is omitted return the type of the current window.
diff --git a/src/evalwindow.c b/src/evalwindow.c
index 737ca7dbd..f043c6f4d 100644
--- a/src/evalwindow.c
+++ b/src/evalwindow.c
@@ -953,6 +953,12 @@ f_win_gettype(typval_T *argvars, typval_T *rettv)
else if (wp == curwin && cmdwin_type != 0)
rettv->vval.v_string = vim_strsave((char_u *)"command");
#endif
+#ifdef FEAT_QUICKFIX
+ else if (bt_quickfix(wp->w_buffer))
+ rettv->vval.v_string = vim_strsave((char_u *)
+ (wp->w_llist_ref != NULL ? "loclist" : "quickfix"));
+#endif
+
}
/*
diff --git a/src/misc2.c b/src/misc2.c
index bbf55bb00..2e83d2dd1 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -1574,10 +1574,10 @@ ga_concat_len(garray_T *gap, char_u *s, size_t len)
{
if (s == NULL || *s == NUL)
return;
- if (ga_grow(gap, len) == OK)
+ if (ga_grow(gap, (int)len) == OK)
{
- mch_memmove((char *)gap->ga_data + gap->ga_len, s, (size_t)len);
- gap->ga_len += len;
+ mch_memmove((char *)gap->ga_data + gap->ga_len, s, len);
+ gap->ga_len += (int)len;
}
}
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index e5a6d6cdb..e22f6b28d 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -5587,4 +5587,21 @@ func Test_locationlist_open_in_newtab()
%bwipe!
endfunc
+" Test for win_gettype() in quickfix and location list windows
+func Test_win_gettype()
+ copen
+ call assert_equal("quickfix", win_gettype())
+ let wid = win_getid()
+ wincmd p
+ call assert_equal("quickfix", win_gettype(wid))
+ cclose
+ lexpr ''
+ lopen
+ call assert_equal("loclist", win_gettype())
+ let wid = win_getid()
+ wincmd p
+ call assert_equal("loclist", win_gettype(wid))
+ lclose
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index b01127c34..c901996df 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3254,
+/**/
3253,
/**/
3252,