summaryrefslogtreecommitdiff
path: root/src/quickfix.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-11-06 14:46:44 +0100
committerBram Moolenaar <Bram@vim.org>2016-11-06 14:46:44 +0100
commit21662be2211675824df1771c7f169948ede40c41 (patch)
tree581e7302d5aea00e6112561751222bd3b37a2efa /src/quickfix.c
parent98500fdc6119eb5f02d7a52ab6ffcac3085181be (diff)
downloadvim-git-21662be2211675824df1771c7f169948ede40c41.tar.gz
patch 8.0.0068v8.0.0068
Problem: Checking did_throw after executing autocommands is wrong. (Daniel Hahler) Solution: Call aborting() instead, and only when autocommands were executed.
Diffstat (limited to 'src/quickfix.c')
-rw-r--r--src/quickfix.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/quickfix.c b/src/quickfix.c
index 5bd125720..c3def1bc0 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -3446,12 +3446,11 @@ ex_make(exarg_T *eap)
case CMD_lgrepadd: au_name = (char_u *)"lgrepadd"; break;
default: break;
}
- if (au_name != NULL)
+ if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
+ curbuf->b_fname, TRUE, curbuf))
{
- apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
- curbuf->b_fname, TRUE, curbuf);
# ifdef FEAT_EVAL
- if (did_throw || force_abort)
+ if (aborting())
return;
# endif
}
@@ -3970,12 +3969,13 @@ ex_vimgrep(exarg_T *eap)
case CMD_lgrepadd: au_name = (char_u *)"lgrepadd"; break;
default: break;
}
- if (au_name != NULL)
+ if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
+ curbuf->b_fname, TRUE, curbuf))
{
- apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
- curbuf->b_fname, TRUE, curbuf);
- if (did_throw || force_abort)
+# ifdef FEAT_EVAL
+ if (aborting())
return;
+# endif
}
#endif
@@ -4875,12 +4875,11 @@ ex_cbuffer(exarg_T *eap)
case CMD_laddbuffer: au_name = (char_u *)"laddbuffer"; break;
default: break;
}
- if (au_name != NULL)
+ if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
+ curbuf->b_fname, TRUE, curbuf))
{
- apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
- curbuf->b_fname, TRUE, curbuf);
# ifdef FEAT_EVAL
- if (did_throw || force_abort)
+ if (aborting())
return;
# endif
}
@@ -4966,12 +4965,11 @@ ex_cexpr(exarg_T *eap)
case CMD_laddexpr: au_name = (char_u *)"laddexpr"; break;
default: break;
}
- if (au_name != NULL)
+ if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
+ curbuf->b_fname, TRUE, curbuf))
{
- apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
- curbuf->b_fname, TRUE, curbuf);
# ifdef FEAT_EVAL
- if (did_throw || force_abort)
+ if (aborting())
return;
# endif
}
@@ -5042,12 +5040,13 @@ ex_helpgrep(exarg_T *eap)
case CMD_lhelpgrep: au_name = (char_u *)"lhelpgrep"; break;
default: break;
}
- if (au_name != NULL)
+ if (au_name != NULL && apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
+ curbuf->b_fname, TRUE, curbuf))
{
- apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
- curbuf->b_fname, TRUE, curbuf);
- if (did_throw || force_abort)
+# ifdef FEAT_EVAL
+ if (aborting())
return;
+# endif
}
#endif