Mercurial > vim
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 } |