diff options
author | Bram Moolenaar <Bram@vim.org> | 2012-03-07 20:13:49 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2012-03-07 20:13:49 +0100 |
commit | 8ec1f8523b309aa9eb52e2854fc9a4b9559ebe80 (patch) | |
tree | f750ef454c0be79d5651167cfbea9d630a3f99c6 | |
parent | 917ba89f7f787873cbfc9ce2e8a20b948843f0ae (diff) |
updated for version 7.3.468v7.3.468
Problem: For some compilers the error file is not easily readable.
Solution: Use QuickFixCmdPre for more commands. (Marcin Szamotulski)
-rw-r--r-- | runtime/doc/autocmd.txt | 5 | ||||
-rw-r--r-- | src/quickfix.c | 31 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 36 insertions, 2 deletions
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt index d6338ee675..44d2d62c46 100644 --- a/runtime/doc/autocmd.txt +++ b/runtime/doc/autocmd.txt @@ -711,7 +711,10 @@ QuickFixCmdPre Before a quickfix command is run (|:make|, *QuickFixCmdPost* QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix command is run, before jumping to the first - location. See |QuickFixCmdPost-example|. + location. For |:cfile| and |:lfile| commands + it is run after error file is read and before + moving to the first error. + See |QuickFixCmdPost-example|. *RemoteReply* RemoteReply When a reply from a Vim that functions as server was received |server2client()|. The diff --git a/src/quickfix.c b/src/quickfix.c index 19eb0587a4..a581eb06c6 100644 --- a/src/quickfix.c +++ b/src/quickfix.c @@ -2995,11 +2995,28 @@ ex_cfile(eap) { win_T *wp = NULL; qf_info_T *qi = &ql_info; +#ifdef FEAT_AUTOCMD + char_u *au_name = NULL; +#endif if (eap->cmdidx == CMD_lfile || eap->cmdidx == CMD_lgetfile - || eap->cmdidx == CMD_laddfile) + || eap->cmdidx == CMD_laddfile) wp = curwin; +#ifdef FEAT_AUTOCMD + switch (eap->cmdidx) + { + case CMD_cfile: au_name = (char_u *)"cfile"; break; + case CMD_cgetfile: au_name = (char_u *)"cgetfile"; break; + case CMD_caddfile: au_name = (char_u *)"caddfile"; break; + case CMD_lfile: au_name = (char_u *)"lfile"; break; + case CMD_lgetfile: au_name = (char_u *)"lgetfile"; break; + case CMD_laddfile: au_name = (char_u *)"laddfile"; break; + default: break; + } + if (au_name != NULL) + apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name, NULL, FALSE, curbuf); +#endif #ifdef FEAT_BROWSE if (cmdmod.browse) { @@ -3031,10 +3048,22 @@ ex_cfile(eap) && (eap->cmdidx == CMD_cfile || eap->cmdidx == CMD_lfile)) { +#ifdef FEAT_AUTOCMD + if (au_name != NULL) + apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, NULL, FALSE, curbuf); +#endif if (wp != NULL) qi = GET_LOC_LIST(wp); qf_jump(qi, 0, 0, eap->forceit); /* display first error */ } + + else + { +#ifdef FEAT_AUTOCMD + if (au_name != NULL) + apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, NULL, FALSE, curbuf); +#endif + } } /* diff --git a/src/version.c b/src/version.c index 7a22e46cb6..65ad51df5a 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 */ /**/ + 468, +/**/ 467, /**/ 466, |