updated for version 7.3.468
Problem:    For some compilers the error file is not easily readable.
Solution:   Use QuickFixCmdPre for more commands. (Marcin Szamotulski)
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index d6338ee..44d2d62 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -711,7 +711,10 @@
 							*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 19eb058..a581eb0 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -2995,11 +2995,28 @@
 {
     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 @@
 				  && (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 7a22e46..65ad51d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    468,
+/**/
     467,
 /**/
     466,