summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2010-11-24 16:32:05 +0100
committerBram Moolenaar <Bram@vim.org>2010-11-24 16:32:05 +0100
commit0785ccf99523b07cf4edd34ba685310d069631f4 (patch)
treec8a7bdd7effb59afa358eefa7ca7e7c262388b71
parent4dbbff57baebde02a8bdb26a25947c3964ec6198 (diff)
downloadvim-git-0785ccf99523b07cf4edd34ba685310d069631f4.tar.gz
updated for version 7.3.066v7.3.066
Problem: Crash when changing to another window while in a :vimgrep command. (Christian Brabandt) Solution: When wiping out the dummy before, remove it from aucmd_win.
-rw-r--r--src/quickfix.c11
-rw-r--r--src/version.c2
2 files changed, 10 insertions, 3 deletions
diff --git a/src/quickfix.c b/src/quickfix.c
index 024952379..5060675fd 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -3432,6 +3432,7 @@ load_dummy_buffer(fname)
char_u *fname;
{
buf_T *newbuf;
+ buf_T *newbuf_to_wipe = NULL;
int failed = TRUE;
aco_save_T aco;
@@ -3468,15 +3469,19 @@ load_dummy_buffer(fname)
failed = FALSE;
if (curbuf != newbuf)
{
- /* Bloody autocommands changed the buffer! */
- if (buf_valid(newbuf))
- wipe_buffer(newbuf, FALSE);
+ /* Bloody autocommands changed the buffer! Can happen when
+ * using netrw and editing a remote file. Use the current
+ * buffer instead, delete the dummy one after restoring the
+ * window stuff. */
+ newbuf_to_wipe = newbuf;
newbuf = curbuf;
}
}
/* restore curwin/curbuf and a few other things */
aucmd_restbuf(&aco);
+ if (newbuf_to_wipe != NULL && buf_valid(newbuf_to_wipe))
+ wipe_buffer(newbuf_to_wipe, FALSE);
}
if (!buf_valid(newbuf))
diff --git a/src/version.c b/src/version.c
index e334d0a36..95c026284 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 66,
+/**/
65,
/**/
64,