diff options
Diffstat (limited to 'data/vim/patches/8.1.1030')
-rw-r--r-- | data/vim/patches/8.1.1030 | 889 |
1 files changed, 889 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1030 b/data/vim/patches/8.1.1030 new file mode 100644 index 000000000..9f58124a9 --- /dev/null +++ b/data/vim/patches/8.1.1030 @@ -0,0 +1,889 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.1030 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.1030 +Problem: Quickfix function arguments are inconsistent. +Solution: Pass a list pointer instead of info and index. (Yegappan + Lakshmanan, closes #4135) +Files: src/quickfix.c + + +*** ../vim-8.1.1029/src/quickfix.c 2019-03-17 16:39:01.566006172 +0100 +--- src/quickfix.c 2019-03-21 21:09:35.184333803 +0100 +*************** +*** 160,169 **** + static efm_T *fmt_start = NULL; // cached across qf_parse_line() calls + + static void qf_new_list(qf_info_T *qi, char_u *qf_title); +! static int qf_add_entry(qf_info_T *qi, int qf_idx, char_u *dir, char_u *fname, char_u *module, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid); + static void qf_free(qf_list_T *qfl); + static char_u *qf_types(int, int); +! static int qf_get_fnum(qf_info_T *qi, int qf_idx, char_u *, char_u *); + static char_u *qf_push_dir(char_u *, struct dir_stack_T **, int is_file_stack); + static char_u *qf_pop_dir(struct dir_stack_T **); + static char_u *qf_guess_filepath(qf_list_T *qfl, char_u *); +--- 160,169 ---- + static efm_T *fmt_start = NULL; // cached across qf_parse_line() calls + + static void qf_new_list(qf_info_T *qi, char_u *qf_title); +! static int qf_add_entry(qf_list_T *qfl, char_u *dir, char_u *fname, char_u *module, int bufnum, char_u *mesg, long lnum, int col, int vis_col, char_u *pattern, int nr, int type, int valid); + static void qf_free(qf_list_T *qfl); + static char_u *qf_types(int, int); +! static int qf_get_fnum(qf_list_T *qfl, char_u *, char_u *); + static char_u *qf_push_dir(char_u *, struct dir_stack_T **, int is_file_stack); + static char_u *qf_pop_dir(struct dir_stack_T **); + static char_u *qf_guess_filepath(qf_list_T *qfl, char_u *); +*************** +*** 1322,1329 **** + */ + static int + qf_parse_multiline_pfx( +- qf_info_T *qi, +- int qf_idx, + int idx, + qf_list_T *qfl, + qffields_T *fields) +--- 1322,1327 ---- +*************** +*** 1361,1367 **** + qfprev->qf_col = fields->col; + qfprev->qf_viscol = fields->use_viscol; + if (!qfprev->qf_fnum) +! qfprev->qf_fnum = qf_get_fnum(qi, qf_idx, + qfl->qf_directory, + *fields->namebuf || qfl->qf_directory != NULL + ? fields->namebuf +--- 1359,1365 ---- + qfprev->qf_col = fields->col; + qfprev->qf_viscol = fields->use_viscol; + if (!qfprev->qf_fnum) +! qfprev->qf_fnum = qf_get_fnum(qfl, + qfl->qf_directory, + *fields->namebuf || qfl->qf_directory != NULL + ? fields->namebuf +*************** +*** 1381,1388 **** + */ + static int + qf_parse_line( +! qf_info_T *qi, +! int qf_idx, + char_u *linebuf, + int linelen, + efm_T *fmt_first, +--- 1379,1385 ---- + */ + static int + qf_parse_line( +! qf_list_T *qfl, + char_u *linebuf, + int linelen, + efm_T *fmt_first, +*************** +*** 1391,1397 **** + efm_T *fmt_ptr; + int idx = 0; + char_u *tail = NULL; +- qf_list_T *qfl = &qi->qf_lists[qf_idx]; + int status; + + restofline: +--- 1388,1393 ---- +*************** +*** 1450,1456 **** + } + else if (vim_strchr((char_u *)"CZ", idx) != NULL) + { // continuation of multi-line msg +! status = qf_parse_multiline_pfx(qi, qf_idx, idx, qfl, fields); + if (status != QF_OK) + return status; + } +--- 1446,1452 ---- + } + else if (vim_strchr((char_u *)"CZ", idx) != NULL) + { // continuation of multi-line msg +! status = qf_parse_multiline_pfx(idx, qfl, fields); + if (status != QF_OK) + return status; + } +*************** +*** 1485,1495 **** + * Returns TRUE if the specified quickfix/location list is empty. + */ + static int +! qf_list_empty(qf_info_T *qi, int qf_idx) + { +! if (qi == NULL || qf_idx < 0 || qf_idx >= LISTCOUNT) +! return TRUE; +! return qi->qf_lists[qf_idx].qf_count <= 0; + } + + /* +--- 1481,1498 ---- + * Returns TRUE if the specified quickfix/location list is empty. + */ + static int +! qf_list_empty(qf_list_T *qfl) +! { +! return qfl == NULL || qfl->qf_count <= 0; +! } +! +! /* +! * Return a pointer to a list in the specified quickfix stack +! */ +! static qf_list_T * +! qf_get_list(qf_info_T *qi, int idx) + { +! return &qi->qf_lists[idx]; + } + + /* +*************** +*** 1631,1641 **** + { + // Adding to existing list, use last entry. + adding = TRUE; +! if (!qf_list_empty(qi, qf_idx)) + old_last = qi->qf_lists[qf_idx].qf_last; + } + +! qfl = &qi->qf_lists[qf_idx]; + + // Use the local value of 'errorformat' if it's set. + if (errorformat == p_efm && tv == NULL && *buf->b_p_efm != NUL) +--- 1634,1644 ---- + { + // Adding to existing list, use last entry. + adding = TRUE; +! if (!qf_list_empty(qf_get_list(qi, qf_idx))) + old_last = qi->qf_lists[qf_idx].qf_last; + } + +! qfl = qf_get_list(qi, qf_idx); + + // Use the local value of 'errorformat' if it's set. + if (errorformat == p_efm && tv == NULL && *buf->b_p_efm != NUL) +*************** +*** 1675,1681 **** + if (status == QF_END_OF_INPUT) // end of input + break; + +! status = qf_parse_line(qi, qf_idx, state.linebuf, state.linelen, + fmt_first, &fields); + if (status == QF_FAIL) + goto error2; +--- 1678,1684 ---- + if (status == QF_END_OF_INPUT) // end of input + break; + +! status = qf_parse_line(qfl, state.linebuf, state.linelen, + fmt_first, &fields); + if (status == QF_FAIL) + goto error2; +*************** +*** 1684,1691 **** + if (status == QF_IGNORE_LINE) + continue; + +! if (qf_add_entry(qi, +! qf_idx, + qfl->qf_directory, + (*fields.namebuf || qfl->qf_directory != NULL) + ? fields.namebuf +--- 1687,1693 ---- + if (status == QF_IGNORE_LINE) + continue; + +! if (qf_add_entry(qfl, + qfl->qf_directory, + (*fields.namebuf || qfl->qf_directory != NULL) + ? fields.namebuf +*************** +*** 1808,1814 **** + static qf_list_T * + qf_get_curlist(qf_info_T *qi) + { +! return &qi->qf_lists[qi->qf_curlist]; + } + + /* +--- 1810,1816 ---- + static qf_list_T * + qf_get_curlist(qf_info_T *qi) + { +! return qf_get_list(qi, qi->qf_curlist); + } + + /* +*************** +*** 1924,1930 **** + wipe_qf_buffer(qi); + + for (i = 0; i < qi->qf_listcount; ++i) +! qf_free(&qi->qf_lists[i]); + vim_free(qi); + } + } +--- 1926,1932 ---- + wipe_qf_buffer(qi); + + for (i = 0; i < qi->qf_listcount; ++i) +! qf_free(qf_get_list(qi, i)); + vim_free(qi); + } + } +*************** +*** 1947,1953 **** + else + // quickfix list + for (i = 0; i < qi->qf_listcount; ++i) +! qf_free(&qi->qf_lists[i]); + } + + /* +--- 1949,1955 ---- + else + // quickfix list + for (i = 0; i < qi->qf_listcount; ++i) +! qf_free(qf_get_list(qi, i)); + } + + /* +*************** +*** 2010,2017 **** + */ + static int + qf_add_entry( +! qf_info_T *qi, // quickfix list +! int qf_idx, // list index + char_u *dir, // optional directory name + char_u *fname, // file name or NULL + char_u *module, // module name or NULL +--- 2012,2018 ---- + */ + static int + qf_add_entry( +! qf_list_T *qfl, // quickfix list entry + char_u *dir, // optional directory name + char_u *fname, // file name or NULL + char_u *module, // module name or NULL +*************** +*** 2025,2031 **** + int type, // type character + int valid) // valid entry + { +- qf_list_T *qfl = &qi->qf_lists[qf_idx]; + qfline_T *qfp; + qfline_T **lastp; // pointer to qf_last or NULL + +--- 2026,2031 ---- +*************** +*** 2041,2047 **** + IS_QF_LIST(qfl) ? BUF_HAS_QF_ENTRY : BUF_HAS_LL_ENTRY; + } + else +! qfp->qf_fnum = qf_get_fnum(qi, qf_idx, dir, fname); + if ((qfp->qf_text = vim_strsave(mesg)) == NULL) + { + vim_free(qfp); +--- 2041,2047 ---- + IS_QF_LIST(qfl) ? BUF_HAS_QF_ENTRY : BUF_HAS_LL_ENTRY; + } + else +! qfp->qf_fnum = qf_get_fnum(qfl, dir, fname); + if ((qfp->qf_text = vim_strsave(mesg)) == NULL) + { + vim_free(qfp); +*************** +*** 2074,2080 **** + qfp->qf_valid = valid; + + lastp = &qfl->qf_last; +! if (qf_list_empty(qi, qf_idx)) // first element in the list + { + qfl->qf_start = qfp; + qfl->qf_ptr = qfp; +--- 2074,2080 ---- + qfp->qf_valid = valid; + + lastp = &qfl->qf_last; +! if (qf_list_empty(qfl)) // first element in the list + { + qfl->qf_start = qfp; + qfl->qf_ptr = qfp; +*************** +*** 2141,2147 **** + * Copy location list entries from 'from_qfl' to 'to_qfl'. + */ + static int +! copy_loclist_entries(qf_list_T *from_qfl, qf_list_T *to_qfl, qf_info_T *to_qi) + { + int i; + qfline_T *from_qfp; +--- 2141,2147 ---- + * Copy location list entries from 'from_qfl' to 'to_qfl'. + */ + static int +! copy_loclist_entries(qf_list_T *from_qfl, qf_list_T *to_qfl) + { + int i; + qfline_T *from_qfp; +*************** +*** 2152,2159 **** + i < from_qfl->qf_count && from_qfp != NULL; + ++i, from_qfp = from_qfp->qf_next) + { +! if (qf_add_entry(to_qi, +! to_qi->qf_curlist, + NULL, + NULL, + from_qfp->qf_module, +--- 2152,2158 ---- + i < from_qfl->qf_count && from_qfp != NULL; + ++i, from_qfp = from_qfp->qf_next) + { +! if (qf_add_entry(to_qfl, + NULL, + NULL, + from_qfp->qf_module, +*************** +*** 2185,2191 **** + * Copy the specified location list 'from_qfl' to 'to_qfl'. + */ + static int +! copy_loclist(qf_list_T *from_qfl, qf_list_T *to_qfl, qf_info_T *to_qi) + { + // Some of the fields are populated by qf_add_entry() + to_qfl->qfl_type = from_qfl->qfl_type; +--- 2184,2190 ---- + * Copy the specified location list 'from_qfl' to 'to_qfl'. + */ + static int +! copy_loclist(qf_list_T *from_qfl, qf_list_T *to_qfl) + { + // Some of the fields are populated by qf_add_entry() + to_qfl->qfl_type = from_qfl->qfl_type; +*************** +*** 2209,2215 **** + to_qfl->qf_ctx = NULL; + + if (from_qfl->qf_count) +! if (copy_loclist_entries(from_qfl, to_qfl, to_qi) == FAIL) + return FAIL; + + to_qfl->qf_index = from_qfl->qf_index; // current index in the list +--- 2208,2214 ---- + to_qfl->qf_ctx = NULL; + + if (from_qfl->qf_count) +! if (copy_loclist_entries(from_qfl, to_qfl) == FAIL) + return FAIL; + + to_qfl->qf_index = from_qfl->qf_index; // current index in the list +*************** +*** 2260,2267 **** + { + to->w_llist->qf_curlist = idx; + +! if (copy_loclist(&qi->qf_lists[idx], +! &to->w_llist->qf_lists[idx], to->w_llist) == FAIL) + { + qf_free_all(to); + return; +--- 2259,2266 ---- + { + to->w_llist->qf_curlist = idx; + +! if (copy_loclist(qf_get_list(qi, idx), +! qf_get_list(to->w_llist, idx)) == FAIL) + { + qf_free_all(to); + return; +*************** +*** 2276,2284 **** + * Also sets the b_has_qf_entry flag. + */ + static int +! qf_get_fnum(qf_info_T *qi, int qf_idx, char_u *directory, char_u *fname) + { +- qf_list_T *qfl = &qi->qf_lists[qf_idx]; + char_u *ptr = NULL; + buf_T *buf; + char_u *bufname; +--- 2275,2282 ---- + * Also sets the b_has_qf_entry flag. + */ + static int +! qf_get_fnum(qf_list_T *qfl, char_u *directory, char_u *fname) + { + char_u *ptr = NULL; + buf_T *buf; + char_u *bufname; +*************** +*** 2906,2912 **** + + // If the location list for the window is not set, then set it + // to the location list from the location window +! if (win->w_llist == NULL) + win_set_loclist(win, ll_ref); + } + +--- 2904,2910 ---- + + // If the location list for the window is not set, then set it + // to the location list from the location window +! if (win->w_llist == NULL && ll_ref != NULL) + win_set_loclist(win, ll_ref); + } + +*************** +*** 3312,3318 **** + if (qi == NULL) + qi = &ql_info; + +! if (qf_stack_empty(qi) || qf_list_empty(qi, qi->qf_curlist)) + { + emsg(_(e_quickfix)); + return; +--- 3310,3316 ---- + if (qi == NULL) + qi = &ql_info; + +! if (qf_stack_empty(qi) || qf_list_empty(qf_get_curlist(qi))) + { + emsg(_(e_quickfix)); + return; +*************** +*** 3506,3512 **** + } + } + +! if (qf_stack_empty(qi) || qf_list_empty(qi, qi->qf_curlist)) + { + emsg(_(e_quickfix)); + return; +--- 3504,3510 ---- + } + } + +! if (qf_stack_empty(qi) || qf_list_empty(qf_get_curlist(qi))) + { + emsg(_(e_quickfix)); + return; +*************** +*** 3790,3798 **** + } + + for (idx = 0; idx < qi->qf_listcount; ++idx) +! if (!qf_list_empty(qi, idx)) +! for (i = 0, qfp = qi->qf_lists[idx].qf_start; +! i < qi->qf_lists[idx].qf_count && qfp != NULL; + ++i, qfp = qfp->qf_next) + if (qfp->qf_fnum == curbuf->b_fnum) + { +--- 3788,3799 ---- + } + + for (idx = 0; idx < qi->qf_listcount; ++idx) +! { +! qf_list_T *qfl = qf_get_list(qi, idx); +! +! if (!qf_list_empty(qfl)) +! for (i = 0, qfp = qfl->qf_start; +! i < qfl->qf_count && qfp != NULL; + ++i, qfp = qfp->qf_next) + if (qfp->qf_fnum == curbuf->b_fnum) + { +*************** +*** 3807,3812 **** +--- 3808,3814 ---- + else if (amount_after && qfp->qf_lnum > line2) + qfp->qf_lnum += amount_after; + } ++ } + + if (!found_one) + curbuf->b_has_qf_entry &= ~buf_has_flag; +*************** +*** 3872,3878 **** + if (IS_LL_WINDOW(curwin)) + qi = GET_LOC_LIST(curwin); + +! if (qf_list_empty(qi, qi->qf_curlist)) + { + emsg(_(e_quickfix)); + return; +--- 3874,3880 ---- + if (IS_LL_WINDOW(curwin)) + qi = GET_LOC_LIST(curwin); + +! if (qf_list_empty(qf_get_curlist(qi))) + { + emsg(_(e_quickfix)); + return; +*************** +*** 3919,3925 **** + // it if we have errors; otherwise, leave it closed. + if (qf_stack_empty(qi) + || qfl->qf_nonevalid +! || qf_list_empty(qi, qi->qf_curlist)) + { + if (win != NULL) + ex_cclose(eap); +--- 3921,3927 ---- + // it if we have errors; otherwise, leave it closed. + if (qf_stack_empty(qi) + || qfl->qf_nonevalid +! || qf_list_empty(qf_get_curlist(qi))) + { + if (win != NULL) + ex_cclose(eap); +*************** +*** 4580,4586 **** + return; + + // Autocommands might have cleared the list, check for that. +! if (!qf_list_empty(qi, qi->qf_curlist)) + qf_jump(qi, 0, 0, forceit); + } + +--- 4582,4588 ---- + return; + + // Autocommands might have cleared the list, check for that. +! if (!qf_list_empty(qf_get_curlist(qi))) + qf_jump(qi, 0, 0, forceit); + } + +*************** +*** 5305,5312 **** + // Pass the buffer number so that it gets used even for a + // dummy buffer, unless duplicate_name is set, then the + // buffer will be wiped out below. +! if (qf_add_entry(qi, +! qi->qf_curlist, + NULL, // dir + fname, + NULL, +--- 5307,5313 ---- + // Pass the buffer number so that it gets used even for a + // dummy buffer, unless duplicate_name is set, then the + // buffer will be wiped out below. +! if (qf_add_entry(qf_get_curlist(qi), + NULL, // dir + fname, + NULL, +*************** +*** 5624,5630 **** + } + + // Jump to first match. +! if (!qf_list_empty(qi, qi->qf_curlist)) + { + if ((flags & VGR_NOJUMP) == 0) + vgr_jump_to_match(qi, eap->forceit, &redraw_for_dummy, +--- 5625,5631 ---- + } + + // Jump to first match. +! if (!qf_list_empty(qf_get_curlist(qi))) + { + if ((flags & VGR_NOJUMP) == 0) + vgr_jump_to_match(qi, eap->forceit, &redraw_for_dummy, +*************** +*** 5837,5842 **** +--- 5838,5844 ---- + get_errorlist(qf_info_T *qi_arg, win_T *wp, int qf_idx, list_T *list) + { + qf_info_T *qi = qi_arg; ++ qf_list_T *qfl; + dict_T *dict; + char_u buf[2]; + qfline_T *qfp; +*************** +*** 5857,5867 **** + if (qf_idx == INVALID_QFIDX) + qf_idx = qi->qf_curlist; + +! if (qf_idx >= qi->qf_listcount || qf_list_empty(qi, qf_idx)) + return FAIL; + +! qfp = qi->qf_lists[qf_idx].qf_start; +! for (i = 1; !got_int && i <= qi->qf_lists[qf_idx].qf_count; ++i) + { + // Handle entries with a non-existing buffer number. + bufnum = qfp->qf_fnum; +--- 5859,5873 ---- + if (qf_idx == INVALID_QFIDX) + qf_idx = qi->qf_curlist; + +! if (qf_idx >= qi->qf_listcount) +! return FAIL; +! +! qfl = qf_get_list(qi, qf_idx); +! if (qf_list_empty(qfl)) + return FAIL; + +! qfp = qfl->qf_start; +! for (i = 1; !got_int && i <= qfl->qf_count; ++i) + { + // Handle entries with a non-existing buffer number. + bufnum = qfp->qf_fnum; +*************** +*** 6215,6224 **** + * Return the current quickfix list index as 'idx' in retdict + */ + static int +! qf_getprop_idx(qf_info_T *qi, int qf_idx, dict_T *retdict) + { +! int curidx = qi->qf_lists[qf_idx].qf_index; +! if (qf_list_empty(qi, qf_idx)) + // For empty lists, current index is set to 0 + curidx = 0; + return dict_add_number(retdict, "idx", curidx); +--- 6221,6230 ---- + * Return the current quickfix list index as 'idx' in retdict + */ + static int +! qf_getprop_idx(qf_list_T *qfl, dict_T *retdict) + { +! int curidx = qfl->qf_index; +! if (qf_list_empty(qfl)) + // For empty lists, current index is set to 0 + curidx = 0; + return dict_add_number(retdict, "idx", curidx); +*************** +*** 6254,6260 **** + if (qf_stack_empty(qi) || qf_idx == INVALID_QFIDX) + return qf_getprop_defaults(qi, flags, wp != NULL, retdict); + +! qfl = &qi->qf_lists[qf_idx]; + + if (flags & QF_GETLIST_TITLE) + status = qf_getprop_title(qfl, retdict); +--- 6260,6266 ---- + if (qf_stack_empty(qi) || qf_idx == INVALID_QFIDX) + return qf_getprop_defaults(qi, flags, wp != NULL, retdict); + +! qfl = qf_get_list(qi, qf_idx); + + if (flags & QF_GETLIST_TITLE) + status = qf_getprop_title(qfl, retdict); +*************** +*** 6269,6275 **** + if ((status == OK) && (flags & QF_GETLIST_ID)) + status = dict_add_number(retdict, "id", qfl->qf_id); + if ((status == OK) && (flags & QF_GETLIST_IDX)) +! status = qf_getprop_idx(qi, qf_idx, retdict); + if ((status == OK) && (flags & QF_GETLIST_SIZE)) + status = dict_add_number(retdict, "size", qfl->qf_count); + if ((status == OK) && (flags & QF_GETLIST_TICK)) +--- 6275,6281 ---- + if ((status == OK) && (flags & QF_GETLIST_ID)) + status = dict_add_number(retdict, "id", qfl->qf_id); + if ((status == OK) && (flags & QF_GETLIST_IDX)) +! status = qf_getprop_idx(qfl, retdict); + if ((status == OK) && (flags & QF_GETLIST_SIZE)) + status = dict_add_number(retdict, "size", qfl->qf_count); + if ((status == OK) && (flags & QF_GETLIST_TICK)) +*************** +*** 6289,6296 **** + */ + static int + qf_add_entry_from_dict( +! qf_info_T *qi, +! int qf_idx, + dict_T *d, + int first_entry, + int *valid_entry) +--- 6295,6301 ---- + */ + static int + qf_add_entry_from_dict( +! qf_list_T *qfl, + dict_T *d, + int first_entry, + int *valid_entry) +*************** +*** 6337,6344 **** + if ((dict_find(d, (char_u *)"valid", -1)) != NULL) + valid = (int)dict_get_number(d, (char_u *)"valid"); + +! status = qf_add_entry(qi, +! qf_idx, + NULL, // dir + filename, + module, +--- 6342,6348 ---- + if ((dict_find(d, (char_u *)"valid", -1)) != NULL) + valid = (int)dict_get_number(d, (char_u *)"valid"); + +! status = qf_add_entry(qfl, + NULL, // dir + filename, + module, +*************** +*** 6376,6382 **** + char_u *title, + int action) + { +! qf_list_T *qfl = &qi->qf_lists[qf_idx]; + listitem_T *li; + dict_T *d; + qfline_T *old_last = NULL; +--- 6380,6386 ---- + char_u *title, + int action) + { +! qf_list_T *qfl = qf_get_list(qi, qf_idx); + listitem_T *li; + dict_T *d; + qfline_T *old_last = NULL; +*************** +*** 6388,6396 **** + // make place for a new list + qf_new_list(qi, title); + qf_idx = qi->qf_curlist; +! qfl = &qi->qf_lists[qf_idx]; + } +! else if (action == 'a' && !qf_list_empty(qi, qf_idx)) + // Adding to existing list, use last entry. + old_last = qfl->qf_last; + else if (action == 'r') +--- 6392,6400 ---- + // make place for a new list + qf_new_list(qi, title); + qf_idx = qi->qf_curlist; +! qfl = qf_get_list(qi, qf_idx); + } +! else if (action == 'a' && !qf_list_empty(qfl)) + // Adding to existing list, use last entry. + old_last = qfl->qf_last; + else if (action == 'r') +*************** +*** 6408,6414 **** + if (d == NULL) + continue; + +! retval = qf_add_entry_from_dict(qi, qf_idx, d, li == list->lv_first, + &valid_entry); + if (retval == FAIL) + break; +--- 6412,6418 ---- + if (d == NULL) + continue; + +! retval = qf_add_entry_from_dict(qfl, d, li == list->lv_first, + &valid_entry); + if (retval == FAIL) + break; +*************** +*** 6427,6433 **** + + // Update the current error index if not appending to the list or if the + // list was empty before and it is not empty now. +! if ((action != 'a' || qfl->qf_index == 0) && !qf_list_empty(qi, qf_idx)) + qfl->qf_index = 1; + + // Don't update the cursor in quickfix window when appending entries +--- 6431,6437 ---- + + // Update the current error index if not appending to the list or if the + // list was empty before and it is not empty now. +! if ((action != 'a' || qfl->qf_index == 0) && !qf_list_empty(qfl)) + qfl->qf_index = 1; + + // Don't update the cursor in quickfix window when appending entries +*************** +*** 6504,6510 **** + static int + qf_setprop_title(qf_info_T *qi, int qf_idx, dict_T *what, dictitem_T *di) + { +! qf_list_T *qfl = &qi->qf_lists[qf_idx]; + + if (di->di_tv.v_type != VAR_STRING) + return FAIL; +--- 6508,6514 ---- + static int + qf_setprop_title(qf_info_T *qi, int qf_idx, dict_T *what, dictitem_T *di) + { +! qf_list_T *qfl = qf_get_list(qi, qf_idx); + + if (di->di_tv.v_type != VAR_STRING) + return FAIL; +*************** +*** 6663,6669 **** + qf_idx = qi->qf_curlist; + } + +! qfl = &qi->qf_lists[qf_idx]; + if ((di = dict_find(what, (char_u *)"title", -1)) != NULL) + retval = qf_setprop_title(qi, qf_idx, what, di); + if ((di = dict_find(what, (char_u *)"items", -1)) != NULL) +--- 6667,6673 ---- + qf_idx = qi->qf_curlist; + } + +! qfl = qf_get_list(qi, qf_idx); + if ((di = dict_find(what, (char_u *)"title", -1)) != NULL) + retval = qf_setprop_title(qi, qf_idx, what, di); + if ((di = dict_find(what, (char_u *)"items", -1)) != NULL) +*************** +*** 7113,7120 **** + while (l > 0 && line[l - 1] <= ' ') + line[--l] = NUL; + +! if (qf_add_entry(qi, +! qi->qf_curlist, + NULL, // dir + fname, + NULL, +--- 7117,7123 ---- + while (l > 0 && line[l - 1] <= ' ') + line[--l] = NUL; + +! if (qf_add_entry(qf_get_curlist(qi), + NULL, // dir + fname, + NULL, +*************** +*** 7310,7316 **** + } + + // Jump to first match. +! if (!qf_list_empty(qi, qi->qf_curlist)) + qf_jump(qi, 0, 0, FALSE); + else + semsg(_(e_nomatch2), eap->arg); +--- 7313,7319 ---- + } + + // Jump to first match. +! if (!qf_list_empty(qf_get_curlist(qi))) + qf_jump(qi, 0, 0, FALSE); + else + semsg(_(e_nomatch2), eap->arg); +*** ../vim-8.1.1029/src/version.c 2019-03-21 20:50:08.868741864 +0100 +--- src/version.c 2019-03-21 21:11:51.083222658 +0100 +*************** +*** 781,782 **** +--- 781,784 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1030, + /**/ + +-- +I AM THANKFUL... +...for the taxes that I pay because it means that I am employed. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |