@@ -4055,6 +4055,7 @@ ex_cfile(exarg_T *eap)
40554055#ifdef FEAT_AUTOCMD
40564056 char_u * au_name = NULL ;
40574057#endif
4058+ int res ;
40584059
40594060 if (eap -> cmdidx == CMD_lfile || eap -> cmdidx == CMD_lgetfile
40604061 || eap -> cmdidx == CMD_laddfile )
@@ -4102,28 +4103,18 @@ ex_cfile(exarg_T *eap)
41024103 * :caddfile adds to an existing quickfix list. If there is no
41034104 * quickfix list then a new list is created.
41044105 */
4105- if (qf_init (wp , p_ef , p_efm , (eap -> cmdidx != CMD_caddfile
4106- && eap -> cmdidx != CMD_laddfile ),
4107- * eap -> cmdlinep , enc ) > 0
4108- && (eap -> cmdidx == CMD_cfile
4109- || eap -> cmdidx == CMD_lfile ))
4110- {
4106+ res = qf_init (wp , p_ef , p_efm , (eap -> cmdidx != CMD_caddfile
4107+ && eap -> cmdidx != CMD_laddfile ), * eap -> cmdlinep , enc );
41114108#ifdef FEAT_AUTOCMD
4112- if (au_name != NULL )
4113- apply_autocmds (EVENT_QUICKFIXCMDPOST , au_name , NULL , FALSE, curbuf );
4109+ if (au_name != NULL )
4110+ apply_autocmds (EVENT_QUICKFIXCMDPOST , au_name , NULL , FALSE, curbuf );
41144111#endif
4112+ if (res > 0 && (eap -> cmdidx == CMD_cfile || eap -> cmdidx == CMD_lfile ))
4113+ {
41154114 if (wp != NULL )
41164115 qi = GET_LOC_LIST (wp );
41174116 qf_jump (qi , 0 , 0 , eap -> forceit ); /* display first error */
41184117 }
4119-
4120- else
4121- {
4122- #ifdef FEAT_AUTOCMD
4123- if (au_name != NULL )
4124- apply_autocmds (EVENT_QUICKFIXCMDPOST , au_name , NULL , FALSE, curbuf );
4125- #endif
4126- }
41274118}
41284119
41294120/*
@@ -5450,6 +5441,7 @@ ex_cbuffer(exarg_T *eap)
54505441#ifdef FEAT_AUTOCMD
54515442 char_u * au_name = NULL ;
54525443#endif
5444+ int res ;
54535445
54545446 if (eap -> cmdidx == CMD_lbuffer || eap -> cmdidx == CMD_lgetbuffer
54555447 || eap -> cmdidx == CMD_laddbuffer )
@@ -5509,20 +5501,19 @@ ex_cbuffer(exarg_T *eap)
55095501 qf_title = IObuff ;
55105502 }
55115503
5512- if ( qf_init_ext (qi , qi -> qf_curlist , NULL , buf , NULL , p_efm ,
5504+ res = qf_init_ext (qi , qi -> qf_curlist , NULL , buf , NULL , p_efm ,
55135505 (eap -> cmdidx != CMD_caddbuffer
55145506 && eap -> cmdidx != CMD_laddbuffer ),
55155507 eap -> line1 , eap -> line2 ,
5516- qf_title , NULL ) > 0 )
5517- {
5508+ qf_title , NULL );
55185509#ifdef FEAT_AUTOCMD
5519- if (au_name != NULL )
5520- apply_autocmds (EVENT_QUICKFIXCMDPOST , au_name ,
5521- curbuf -> b_fname , TRUE, curbuf );
5510+ if (au_name != NULL )
5511+ apply_autocmds (EVENT_QUICKFIXCMDPOST , au_name ,
5512+ curbuf -> b_fname , TRUE, curbuf );
55225513#endif
5523- if (eap -> cmdidx == CMD_cbuffer || eap -> cmdidx == CMD_lbuffer )
5524- qf_jump ( qi , 0 , 0 , eap -> forceit ); /* display first error */
5525- }
5514+ if (res > 0 && ( eap -> cmdidx == CMD_cbuffer ||
5515+ eap -> cmdidx == CMD_lbuffer ))
5516+ qf_jump ( qi , 0 , 0 , eap -> forceit ); /* display first error */
55265517 }
55275518 }
55285519}
@@ -5540,6 +5531,7 @@ ex_cexpr(exarg_T *eap)
55405531#ifdef FEAT_AUTOCMD
55415532 char_u * au_name = NULL ;
55425533#endif
5534+ int res ;
55435535
55445536 if (eap -> cmdidx == CMD_lexpr || eap -> cmdidx == CMD_lgetexpr
55455537 || eap -> cmdidx == CMD_laddexpr )
@@ -5578,20 +5570,19 @@ ex_cexpr(exarg_T *eap)
55785570 if ((tv -> v_type == VAR_STRING && tv -> vval .v_string != NULL )
55795571 || (tv -> v_type == VAR_LIST && tv -> vval .v_list != NULL ))
55805572 {
5581- if ( qf_init_ext (qi , qi -> qf_curlist , NULL , NULL , tv , p_efm ,
5573+ res = qf_init_ext (qi , qi -> qf_curlist , NULL , NULL , tv , p_efm ,
55825574 (eap -> cmdidx != CMD_caddexpr
55835575 && eap -> cmdidx != CMD_laddexpr ),
55845576 (linenr_T )0 , (linenr_T )0 , * eap -> cmdlinep ,
5585- NULL ) > 0 )
5586- {
5577+ NULL );
55875578#ifdef FEAT_AUTOCMD
5588- if (au_name != NULL )
5589- apply_autocmds (EVENT_QUICKFIXCMDPOST , au_name ,
5590- curbuf -> b_fname , TRUE, curbuf );
5579+ if (au_name != NULL )
5580+ apply_autocmds (EVENT_QUICKFIXCMDPOST , au_name ,
5581+ curbuf -> b_fname , TRUE, curbuf );
55915582#endif
5592- if (eap -> cmdidx == CMD_cexpr || eap -> cmdidx == CMD_lexpr )
5593- qf_jump ( qi , 0 , 0 , eap -> forceit ); /* display first error */
5594- }
5583+ if (res > 0 && ( eap -> cmdidx == CMD_cexpr ||
5584+ eap -> cmdidx == CMD_lexpr ))
5585+ qf_jump ( qi , 0 , 0 , eap -> forceit ); /* display first error */
55955586 }
55965587 else
55975588 EMSG (_ ("E777: String or List expected" ));
0 commit comments