summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0431
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0431')
-rw-r--r--data/vim/patches/8.1.0431562
1 files changed, 0 insertions, 562 deletions
diff --git a/data/vim/patches/8.1.0431 b/data/vim/patches/8.1.0431
deleted file mode 100644
index 3ccc35c90..000000000
--- a/data/vim/patches/8.1.0431
+++ /dev/null
@@ -1,562 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.0431
-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.0431
-Problem: The qf_jump() function is too long.
-Solution: Refactor to split it into several functions. (Yegappan Lakshmanan)
-Files: src/quickfix.c
-
-
-*** ../vim-8.1.0430/src/quickfix.c 2018-09-19 21:55:58.681068412 +0200
---- src/quickfix.c 2018-09-24 21:46:42.589868380 +0200
-***************
-*** 2521,2530 ****
- get_nth_valid_entry(
- qf_list_T *qfl,
- int errornr,
-! qfline_T *qf_ptr,
-! int *qf_index,
-! int dir)
- {
- qfline_T *prev_qf_ptr;
- int prev_index;
- static char_u *e_no_more_items = (char_u *)N_("E553: No more items");
---- 2521,2531 ----
- get_nth_valid_entry(
- qf_list_T *qfl,
- int errornr,
-! int dir,
-! int *new_qfidx)
- {
-+ qfline_T *qf_ptr = qfl->qf_ptr;
-+ int qf_idx = qfl->qf_index;
- qfline_T *prev_qf_ptr;
- int prev_index;
- static char_u *e_no_more_items = (char_u *)N_("E553: No more items");
-***************
-*** 2533,2548 ****
- while (errornr--)
- {
- prev_qf_ptr = qf_ptr;
-! prev_index = *qf_index;
-
- if (dir == FORWARD || dir == FORWARD_FILE)
-! qf_ptr = get_next_valid_entry(qfl, qf_ptr, qf_index, dir);
- else
-! qf_ptr = get_prev_valid_entry(qfl, qf_ptr, qf_index, dir);
- if (qf_ptr == NULL)
- {
- qf_ptr = prev_qf_ptr;
-! *qf_index = prev_index;
- if (err != NULL)
- {
- EMSG(_(err));
---- 2534,2549 ----
- while (errornr--)
- {
- prev_qf_ptr = qf_ptr;
-! prev_index = qf_idx;
-
- if (dir == FORWARD || dir == FORWARD_FILE)
-! qf_ptr = get_next_valid_entry(qfl, qf_ptr, &qf_idx, dir);
- else
-! qf_ptr = get_prev_valid_entry(qfl, qf_ptr, &qf_idx, dir);
- if (qf_ptr == NULL)
- {
- qf_ptr = prev_qf_ptr;
-! qf_idx = prev_index;
- if (err != NULL)
- {
- EMSG(_(err));
-***************
-*** 2554,2581 ****
- err = NULL;
- }
-
- return qf_ptr;
- }
-
- /*
-! * Get n'th (errornr) quickfix entry
- */
- static qfline_T *
-! get_nth_entry(
-! qf_list_T *qfl,
-! int errornr,
-! qfline_T *qf_ptr,
-! int *cur_qfidx)
- {
-! int qf_idx = *cur_qfidx;
-
-! /* New error number is less than the current error number */
- while (errornr < qf_idx && qf_idx > 1 && qf_ptr->qf_prev != NULL)
- {
- --qf_idx;
- qf_ptr = qf_ptr->qf_prev;
- }
-! /* New error number is greater than the current error number */
- while (errornr > qf_idx && qf_idx < qfl->qf_count &&
- qf_ptr->qf_next != NULL)
- {
---- 2555,2581 ----
- err = NULL;
- }
-
-+ *new_qfidx = qf_idx;
- return qf_ptr;
- }
-
- /*
-! * Get n'th (errornr) quickfix entry from the current entry in the quickfix
-! * list 'qfl'. Returns a pointer to the new entry and the index in 'new_qfidx'
- */
- static qfline_T *
-! get_nth_entry(qf_list_T *qfl, int errornr, int *new_qfidx)
- {
-! qfline_T *qf_ptr = qfl->qf_ptr;
-! int qf_idx = qfl->qf_index;
-
-! // New error number is less than the current error number
- while (errornr < qf_idx && qf_idx > 1 && qf_ptr->qf_prev != NULL)
- {
- --qf_idx;
- qf_ptr = qf_ptr->qf_prev;
- }
-! // New error number is greater than the current error number
- while (errornr > qf_idx && qf_idx < qfl->qf_count &&
- qf_ptr->qf_next != NULL)
- {
-***************
-*** 2583,2589 ****
- qf_ptr = qf_ptr->qf_next;
- }
-
-! *cur_qfidx = qf_idx;
- return qf_ptr;
- }
-
---- 2583,2615 ----
- qf_ptr = qf_ptr->qf_next;
- }
-
-! *new_qfidx = qf_idx;
-! return qf_ptr;
-! }
-!
-! /*
-! * Get a entry specied by 'errornr' and 'dir' from the current
-! * quickfix/location list. 'errornr' specifies the index of the entry and 'dir'
-! * specifies the direction (FORWARD/BACKWARD/FORWARD_FILE/BACKWARD_FILE).
-! * Returns a pointer to the entry and the index of the new entry is stored in
-! * 'new_qfidx'.
-! */
-! static qfline_T *
-! qf_get_entry(
-! qf_list_T *qfl,
-! int errornr,
-! int dir,
-! int *new_qfidx)
-! {
-! qfline_T *qf_ptr = qfl->qf_ptr;
-! int qfidx = qfl->qf_index;
-!
-! if (dir != 0) // next/prev valid entry
-! qf_ptr = get_nth_valid_entry(qfl, errornr, dir, &qfidx);
-! else if (errornr != 0) // go to specified number
-! qf_ptr = get_nth_entry(qfl, errornr, &qfidx);
-!
-! *new_qfidx = qfidx;
- return qf_ptr;
- }
-
-***************
-*** 2881,2886 ****
---- 2907,2915 ----
-
- /*
- * Edit the selected file or help file.
-+ * Returns OK if successfully edited the file, FAIL on failing to open the
-+ * buffer and NOTDONE if the quickfix/location list was freed by an autocmd
-+ * when opening the buffer.
- */
- static int
- qf_jump_edit_buffer(
-***************
-*** 2888,2895 ****
- qfline_T *qf_ptr,
- int forceit,
- win_T *oldwin,
-! int *opened_window,
-! int *abort)
- {
- qf_list_T *qfl = &qi->qf_lists[qi->qf_curlist];
- int retval = OK;
---- 2917,2923 ----
- qfline_T *qf_ptr,
- int forceit,
- win_T *oldwin,
-! int *opened_window)
- {
- qf_list_T *qfl = &qi->qf_lists[qi->qf_curlist];
- int retval = OK;
-***************
-*** 2925,2937 ****
- if (!win_valid_any_tab(oldwin))
- {
- EMSG(_("E924: Current window was closed"));
-- *abort = TRUE;
- *opened_window = FALSE;
- }
- else if (!qflist_valid(oldwin, save_qfid))
- {
- EMSG(_(e_loc_list_changed));
-! *abort = TRUE;
- }
- }
- else if (old_qf_curlist != qi->qf_curlist
---- 2953,2965 ----
- if (!win_valid_any_tab(oldwin))
- {
- EMSG(_("E924: Current window was closed"));
- *opened_window = FALSE;
-+ return NOTDONE;
- }
- else if (!qflist_valid(oldwin, save_qfid))
- {
- EMSG(_(e_loc_list_changed));
-! return NOTDONE;
- }
- }
- else if (old_qf_curlist != qi->qf_curlist
-***************
-*** 2941,2951 ****
- EMSG(_("E925: Current quickfix was changed"));
- else
- EMSG(_(e_loc_list_changed));
-! *abort = TRUE;
- }
--
-- if (*abort)
-- retval = FAIL;
- }
-
- return retval;
---- 2969,2976 ----
- EMSG(_("E925: Current quickfix was changed"));
- else
- EMSG(_(e_loc_list_changed));
-! return NOTDONE;
- }
- }
-
- return retval;
-***************
-*** 3066,3071 ****
---- 3091,3180 ----
- }
-
- /*
-+ * Find a usable window for opening a file from the quickfix/location list. If
-+ * a window is not found then open a new window.
-+ * Returns OK if successfully jumped or opened a window. Returns FAIL if not
-+ * able to jump/open a window. Returns NOTDONE if a file is not associated
-+ * with the entry.
-+ */
-+ static int
-+ qf_jump_open_window(qf_info_T *qi, qfline_T *qf_ptr, int *opened_window)
-+ {
-+ // For ":helpgrep" find a help window or open one.
-+ if (qf_ptr->qf_type == 1 && (!bt_help(curwin->w_buffer) || cmdmod.tab != 0))
-+ if (jump_to_help_window(qi, opened_window) == FAIL)
-+ return FAIL;
-+
-+ // If currently in the quickfix window, find another window to show the
-+ // file in.
-+ if (bt_quickfix(curbuf) && !*opened_window)
-+ {
-+ // If there is no file specified, we don't know where to go.
-+ // But do advance, otherwise ":cn" gets stuck.
-+ if (qf_ptr->qf_fnum == 0)
-+ return NOTDONE;
-+
-+ if (qf_jump_to_usable_window(qf_ptr->qf_fnum, opened_window) == FAIL)
-+ return FAIL;
-+ }
-+
-+ return OK;
-+ }
-+
-+ /*
-+ * Edit a selected file from the quickfix/location list and jump to a
-+ * particular line/column, adjust the folds and display a message about the
-+ * jump.
-+ * Returns OK on success and FAIL on failing to open the file/buffer. Returns
-+ * NOTDONE if the quickfix/location list is freed by an autocmd when opening
-+ * the file.
-+ */
-+ static int
-+ qf_jump_to_buffer(
-+ qf_info_T *qi,
-+ int qf_index,
-+ qfline_T *qf_ptr,
-+ int forceit,
-+ win_T *oldwin,
-+ int *opened_window,
-+ int openfold,
-+ int print_message)
-+ {
-+ buf_T *old_curbuf;
-+ linenr_T old_lnum;
-+ int retval = OK;
-+
-+ // If there is a file name, read the wanted file if needed, and check
-+ // autowrite etc.
-+ old_curbuf = curbuf;
-+ old_lnum = curwin->w_cursor.lnum;
-+
-+ if (qf_ptr->qf_fnum != 0)
-+ {
-+ retval = qf_jump_edit_buffer(qi, qf_ptr, forceit, oldwin,
-+ opened_window);
-+ if (retval != OK)
-+ return retval;
-+ }
-+
-+ // When not switched to another buffer, still need to set pc mark
-+ if (curbuf == old_curbuf)
-+ setpcmark();
-+
-+ qf_jump_goto_line(qf_ptr->qf_lnum, qf_ptr->qf_col, qf_ptr->qf_viscol,
-+ qf_ptr->qf_pattern);
-+
-+ #ifdef FEAT_FOLDING
-+ if ((fdo_flags & FDO_QUICKFIX) && openfold)
-+ foldOpenCursor();
-+ #endif
-+ if (print_message)
-+ qf_jump_print_msg(qi, qf_index, qf_ptr, old_curbuf, old_lnum);
-+
-+ return retval;
-+ }
-+
-+ /*
- * jump to a quickfix line
- * if dir == FORWARD go "errornr" valid entries forward
- * if dir == BACKWARD go "errornr" valid entries backward
-***************
-*** 3085,3099 ****
- qfline_T *old_qf_ptr;
- int qf_index;
- int old_qf_index;
-- buf_T *old_curbuf;
-- linenr_T old_lnum;
- char_u *old_swb = p_swb;
- unsigned old_swb_flags = swb_flags;
- int opened_window = FALSE;
- win_T *oldwin = curwin;
- int print_message = TRUE;
- #ifdef FEAT_FOLDING
-! int old_KeyTyped = KeyTyped; /* getting file may reset it */
- #endif
- int retval = OK;
-
---- 3194,3206 ----
- qfline_T *old_qf_ptr;
- int qf_index;
- int old_qf_index;
- char_u *old_swb = p_swb;
- unsigned old_swb_flags = swb_flags;
- int opened_window = FALSE;
- win_T *oldwin = curwin;
- int print_message = TRUE;
- #ifdef FEAT_FOLDING
-! int old_KeyTyped = KeyTyped; // getting file may reset it
- #endif
- int retval = OK;
-
-***************
-*** 3113,3208 ****
- old_qf_ptr = qf_ptr;
- qf_index = qfl->qf_index;
- old_qf_index = qf_index;
-! if (dir != 0) /* next/prev valid entry */
- {
-! qf_ptr = get_nth_valid_entry(qfl, errornr, qf_ptr, &qf_index, dir);
-! if (qf_ptr == NULL)
-! {
-! qf_ptr = old_qf_ptr;
-! qf_index = old_qf_index;
-! goto theend;
-! }
- }
-- else if (errornr != 0) /* go to specified number */
-- qf_ptr = get_nth_entry(qfl, errornr, qf_ptr, &qf_index);
-
- qfl->qf_index = qf_index;
- if (qf_win_pos_update(qi, old_qf_index))
-! /* No need to print the error message if it's visible in the error
-! * window */
- print_message = FALSE;
-
-! /*
-! * For ":helpgrep" find a help window or open one.
-! */
-! if (qf_ptr->qf_type == 1 && (!bt_help(curwin->w_buffer) || cmdmod.tab != 0))
-! if (jump_to_help_window(qi, &opened_window) == FAIL)
-! goto theend;
-!
-! /*
-! * If currently in the quickfix window, find another window to show the
-! * file in.
-! */
-! if (bt_quickfix(curbuf) && !opened_window)
-! {
-! /*
-! * If there is no file specified, we don't know where to go.
-! * But do advance, otherwise ":cn" gets stuck.
-! */
-! if (qf_ptr->qf_fnum == 0)
-! goto theend;
-!
-! if (qf_jump_to_usable_window(qf_ptr->qf_fnum, &opened_window) == FAIL)
-! goto failed;
- }
-
-! /*
-! * If there is a file name,
-! * read the wanted file if needed, and check autowrite etc.
-! */
-! old_curbuf = curbuf;
-! old_lnum = curwin->w_cursor.lnum;
-!
-! if (qf_ptr->qf_fnum != 0)
-! {
-! int abort = FALSE;
-!
-! retval = qf_jump_edit_buffer(qi, qf_ptr, forceit, oldwin,
-! &opened_window, &abort);
-! if (abort)
-! {
-! qi = NULL;
-! qf_ptr = NULL;
-! }
-! }
-!
-! if (retval == OK)
-! {
-! /* When not switched to another buffer, still need to set pc mark */
-! if (curbuf == old_curbuf)
-! setpcmark();
-!
-! if (qf_ptr != NULL)
-! qf_jump_goto_line(qf_ptr->qf_lnum, qf_ptr->qf_col,
-! qf_ptr->qf_viscol, qf_ptr->qf_pattern);
-!
-! #ifdef FEAT_FOLDING
-! if ((fdo_flags & FDO_QUICKFIX) && old_KeyTyped)
-! foldOpenCursor();
-! #endif
-! if (print_message)
-! qf_jump_print_msg(qi, qf_index, qf_ptr, old_curbuf, old_lnum);
-! }
-! else
- {
- if (opened_window)
-! win_close(curwin, TRUE); /* Close opened window */
- if (qf_ptr != NULL && qf_ptr->qf_fnum != 0)
- {
-! /*
-! * Couldn't open file, so put index back where it was. This could
-! * happen if the file was readonly and we changed something.
-! */
- failed:
- qf_ptr = old_qf_ptr;
- qf_index = old_qf_index;
---- 3220,3263 ----
- old_qf_ptr = qf_ptr;
- qf_index = qfl->qf_index;
- old_qf_index = qf_index;
-!
-! qf_ptr = qf_get_entry(qfl, errornr, dir, &qf_index);
-! if (qf_ptr == NULL)
- {
-! qf_ptr = old_qf_ptr;
-! qf_index = old_qf_index;
-! goto theend;
- }
-
- qfl->qf_index = qf_index;
- if (qf_win_pos_update(qi, old_qf_index))
-! // No need to print the error message if it's visible in the error
-! // window
- print_message = FALSE;
-
-! retval = qf_jump_open_window(qi, qf_ptr, &opened_window);
-! if (retval == FAIL)
-! goto failed;
-! if (retval == NOTDONE)
-! goto theend;
-!
-! retval = qf_jump_to_buffer(qi, qf_index, qf_ptr, forceit, oldwin,
-! &opened_window, old_KeyTyped, print_message);
-! if (retval == NOTDONE)
-! {
-! // Quickfix/location list is freed by an autocmd
-! qi = NULL;
-! qf_ptr = NULL;
- }
-
-! if (retval != OK)
- {
- if (opened_window)
-! win_close(curwin, TRUE); // Close opened window
- if (qf_ptr != NULL && qf_ptr->qf_fnum != 0)
- {
-! // Couldn't open file, so put index back where it was. This could
-! // happen if the file was readonly and we changed something.
- failed:
- qf_ptr = old_qf_ptr;
- qf_index = old_qf_index;
-***************
-*** 3216,3223 ****
- }
- if (p_swb != old_swb && opened_window)
- {
-! /* Restore old 'switchbuf' value, but not when an autocommand or
-! * modeline has changed the value. */
- if (p_swb == empty_option)
- {
- p_swb = old_swb;
---- 3271,3278 ----
- }
- if (p_swb != old_swb && opened_window)
- {
-! // Restore old 'switchbuf' value, but not when an autocommand or
-! // modeline has changed the value.
- if (p_swb == empty_option)
- {
- p_swb = old_swb;
-*** ../vim-8.1.0430/src/version.c 2018-09-24 21:32:07.321727079 +0200
---- src/version.c 2018-09-24 21:47:33.241429809 +0200
-***************
-*** 796,797 ****
---- 796,799 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 431,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-92. It takes you two hours to check all 14 of your mailboxes.
-
- /// 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 ///