comparison src/quickfix.c @ 665:21ab9abf0f08

updated for version 7.0196
author vimboss
date Fri, 10 Feb 2006 23:20:28 +0000
parents e93a99ef31d0
children e649c78407e6
comparison
equal deleted inserted replaced
664:ce5a759cc907 665:21ab9abf0f08
123 #endif 123 #endif
124 static char_u *get_mef_name __ARGS((void)); 124 static char_u *get_mef_name __ARGS((void));
125 static buf_T *load_dummy_buffer __ARGS((char_u *fname)); 125 static buf_T *load_dummy_buffer __ARGS((char_u *fname));
126 static void wipe_dummy_buffer __ARGS((buf_T *buf)); 126 static void wipe_dummy_buffer __ARGS((buf_T *buf));
127 static void unload_dummy_buffer __ARGS((buf_T *buf)); 127 static void unload_dummy_buffer __ARGS((buf_T *buf));
128 static qf_info_T *ll_get_or_alloc_list __ARGS((win_T *));
128 129
129 /* Quickfix window check helper macro */ 130 /* Quickfix window check helper macro */
130 #define IS_QF_WINDOW(wp) (bt_quickfix(wp->w_buffer) && wp->w_llist_ref == NULL) 131 #define IS_QF_WINDOW(wp) (bt_quickfix(wp->w_buffer) && wp->w_llist_ref == NULL)
131 /* Location list window check helper macro */ 132 /* Location list window check helper macro */
132 #define IS_LL_WINDOW(wp) (bt_quickfix(wp->w_buffer) && wp->w_llist_ref != NULL) 133 #define IS_LL_WINDOW(wp) (bt_quickfix(wp->w_buffer) && wp->w_llist_ref != NULL)
152 153
153 if (efile == NULL) 154 if (efile == NULL)
154 return FAIL; 155 return FAIL;
155 156
156 if (wp != NULL) 157 if (wp != NULL)
157 qi = GET_LOC_LIST(wp); 158 {
159 qi = ll_get_or_alloc_list(wp);
160 if (qi == NULL)
161 return FAIL;
162 }
158 163
159 return qf_init_ext(qi, efile, curbuf, NULL, errorformat, newlist, 164 return qf_init_ext(qi, efile, curbuf, NULL, errorformat, newlist,
160 (linenr_T)0, (linenr_T)0); 165 (linenr_T)0, (linenr_T)0);
161 } 166 }
162 167
2626 return; 2631 return;
2627 } 2632 }
2628 2633
2629 if (eap->cmdidx == CMD_lmake || eap->cmdidx == CMD_lgrep 2634 if (eap->cmdidx == CMD_lmake || eap->cmdidx == CMD_lgrep
2630 || eap->cmdidx == CMD_lgrepadd) 2635 || eap->cmdidx == CMD_lgrepadd)
2631 {
2632 qi = ll_get_or_alloc_list(curwin);
2633 if (qi == NULL)
2634 return;
2635 wp = curwin; 2636 wp = curwin;
2636 }
2637 2637
2638 autowrite_all(); 2638 autowrite_all();
2639 fname = get_mef_name(); 2639 fname = get_mef_name();
2640 if (fname == NULL) 2640 if (fname == NULL)
2641 return; 2641 return;
2676 if (qf_init(wp, fname, (eap->cmdidx != CMD_make 2676 if (qf_init(wp, fname, (eap->cmdidx != CMD_make
2677 && eap->cmdidx != CMD_lmake) ? p_gefm : p_efm, 2677 && eap->cmdidx != CMD_lmake) ? p_gefm : p_efm,
2678 (eap->cmdidx != CMD_grepadd 2678 (eap->cmdidx != CMD_grepadd
2679 && eap->cmdidx != CMD_lgrepadd)) > 0 2679 && eap->cmdidx != CMD_lgrepadd)) > 0
2680 && !eap->forceit) 2680 && !eap->forceit)
2681 {
2682 if (wp != NULL)
2683 qi = GET_LOC_LIST(wp);
2681 qf_jump(qi, 0, 0, FALSE); /* display first error */ 2684 qf_jump(qi, 0, 0, FALSE); /* display first error */
2685 }
2682 2686
2683 mch_remove(fname); 2687 mch_remove(fname);
2684 vim_free(fname); 2688 vim_free(fname);
2685 vim_free(cmd); 2689 vim_free(cmd);
2686 2690
2830 win_T *wp = NULL; 2834 win_T *wp = NULL;
2831 qf_info_T *qi = &ql_info; 2835 qf_info_T *qi = &ql_info;
2832 2836
2833 if (eap->cmdidx == CMD_lfile || eap->cmdidx == CMD_lgetfile 2837 if (eap->cmdidx == CMD_lfile || eap->cmdidx == CMD_lgetfile
2834 || eap->cmdidx == CMD_laddfile) 2838 || eap->cmdidx == CMD_laddfile)
2835 {
2836 qi = ll_get_or_alloc_list(curwin);
2837 if (qi == NULL)
2838 return;
2839 wp = curwin; 2839 wp = curwin;
2840 }
2841 2840
2842 if (*eap->arg != NUL) 2841 if (*eap->arg != NUL)
2843 set_string_option_direct((char_u *)"ef", -1, eap->arg, OPT_FREE); 2842 set_string_option_direct((char_u *)"ef", -1, eap->arg, OPT_FREE);
2844 2843
2845 /* 2844 /*
2854 */ 2853 */
2855 if (qf_init(wp, p_ef, p_efm, (eap->cmdidx != CMD_caddfile 2854 if (qf_init(wp, p_ef, p_efm, (eap->cmdidx != CMD_caddfile
2856 && eap->cmdidx != CMD_laddfile)) > 0 2855 && eap->cmdidx != CMD_laddfile)) > 0
2857 && (eap->cmdidx == CMD_cfile 2856 && (eap->cmdidx == CMD_cfile
2858 || eap->cmdidx == CMD_lfile)) 2857 || eap->cmdidx == CMD_lfile))
2858 {
2859 if (wp != NULL)
2860 qi = GET_LOC_LIST(wp);
2859 qf_jump(qi, 0, 0, eap->forceit); /* display first error */ 2861 qf_jump(qi, 0, 0, eap->forceit); /* display first error */
2862 }
2860 } 2863 }
2861 2864
2862 /* 2865 /*
2863 * ":vimgrep {pattern} file(s)" 2866 * ":vimgrep {pattern} file(s)"
2864 * ":vimgrepadd {pattern} file(s)" 2867 * ":vimgrepadd {pattern} file(s)"
3515 if (tv != NULL) 3518 if (tv != NULL)
3516 { 3519 {
3517 if ((tv->v_type == VAR_STRING && tv->vval.v_string != NULL) 3520 if ((tv->v_type == VAR_STRING && tv->vval.v_string != NULL)
3518 || (tv->v_type == VAR_LIST && tv->vval.v_list != NULL)) 3521 || (tv->v_type == VAR_LIST && tv->vval.v_list != NULL))
3519 { 3522 {
3520 if (qf_init_ext(qi, NULL, NULL, tv, p_efm, 3523 int expr_cmd = (eap->cmdidx == CMD_cexpr
3521 (eap->cmdidx == CMD_cexpr 3524 || eap->cmdidx == CMD_lexpr);
3522 || eap->cmdidx == CMD_lexpr), 3525 if (qf_init_ext(qi, NULL, NULL, tv, p_efm, expr_cmd,
3523 (linenr_T)0, (linenr_T)0) > 0 3526 (linenr_T)0, (linenr_T)0) > 0
3524 && (eap->cmdidx == CMD_cexpr || eap->cmdidx == CMD_lexpr)) 3527 && expr_cmd)
3525 qf_jump(qi, 0, 0, eap->forceit); /* display first error */ 3528 qf_jump(qi, 0, 0, eap->forceit); /* display first error */
3526 } 3529 }
3527 else 3530 else
3528 EMSG(_("E777: String or List expected")); 3531 EMSG(_("E777: String or List expected"));
3529 free_tv(tv); 3532 free_tv(tv);