comparison src/quickfix.c @ 12048:ebd313aa5a6c v8.0.0904

patch 8.0.0904: cannot set a location list from text commit https://github.com/vim/vim/commit/ae338338508ef42866204f90dca861ac555f4298 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Aug 11 20:25:26 2017 +0200 patch 8.0.0904: cannot set a location list from text Problem: Cannot set a location list from text. Solution: Add the "text" argument to setqflist(). (Yegappan Lakshmanan)
author Christian Brabandt <cb@256bit.org>
date Fri, 11 Aug 2017 20:30:05 +0200
parents 5ceaecedbad2
children 69ce6b3f0834
comparison
equal deleted inserted replaced
12047:005fcad44592 12048:ebd313aa5a6c
4883 4883
4884 return retval; 4884 return retval;
4885 } 4885 }
4886 4886
4887 static int 4887 static int
4888 qf_set_properties(qf_info_T *qi, dict_T *what, int action) 4888 qf_set_properties(qf_info_T *qi, dict_T *what, int action, char_u *title)
4889 { 4889 {
4890 dictitem_T *di; 4890 dictitem_T *di;
4891 int retval = FAIL; 4891 int retval = FAIL;
4892 int qf_idx; 4892 int qf_idx;
4893 int newlist = FALSE; 4893 int newlist = FALSE;
4927 return FAIL; 4927 return FAIL;
4928 } 4928 }
4929 4929
4930 if (newlist) 4930 if (newlist)
4931 { 4931 {
4932 qf_new_list(qi, NULL); 4932 qf_new_list(qi, title);
4933 qf_idx = qi->qf_curlist; 4933 qf_idx = qi->qf_curlist;
4934 } 4934 }
4935 4935
4936 if ((di = dict_find(what, (char_u *)"title", -1)) != NULL) 4936 if ((di = dict_find(what, (char_u *)"title", -1)) != NULL)
4937 { 4937 {
4953 4953
4954 retval = qf_add_entries(qi, qf_idx, di->di_tv.vval.v_list, 4954 retval = qf_add_entries(qi, qf_idx, di->di_tv.vval.v_list,
4955 title_save, action == ' ' ? 'a' : action); 4955 title_save, action == ' ' ? 'a' : action);
4956 vim_free(title_save); 4956 vim_free(title_save);
4957 } 4957 }
4958 }
4959
4960 if ((di = dict_find(what, (char_u *)"text", -1)) != NULL)
4961 {
4962 /* Only string and list values are supported */
4963 if ((di->di_tv.v_type == VAR_STRING && di->di_tv.vval.v_string != NULL)
4964 || (di->di_tv.v_type == VAR_LIST
4965 && di->di_tv.vval.v_list != NULL))
4966 {
4967 if (action == 'r')
4968 qf_free_items(qi, qf_idx);
4969 if (qf_init_ext(qi, qf_idx, NULL, NULL, &di->di_tv, p_efm,
4970 FALSE, (linenr_T)0, (linenr_T)0, NULL, NULL) > 0)
4971 retval = OK;
4972 }
4973 else
4974 return FAIL;
4958 } 4975 }
4959 4976
4960 if ((di = dict_find(what, (char_u *)"context", -1)) != NULL) 4977 if ((di = dict_find(what, (char_u *)"context", -1)) != NULL)
4961 { 4978 {
4962 typval_T *ctx; 4979 typval_T *ctx;
5068 { 5085 {
5069 /* Free the entire quickfix or location list stack */ 5086 /* Free the entire quickfix or location list stack */
5070 qf_free_stack(wp, qi); 5087 qf_free_stack(wp, qi);
5071 } 5088 }
5072 else if (what != NULL) 5089 else if (what != NULL)
5073 retval = qf_set_properties(qi, what, action); 5090 retval = qf_set_properties(qi, what, action, title);
5074 else 5091 else
5075 retval = qf_add_entries(qi, qi->qf_curlist, list, title, action); 5092 retval = qf_add_entries(qi, qi->qf_curlist, list, title, action);
5076 5093
5077 return retval; 5094 return retval;
5078 } 5095 }