aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/quickfix.c
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-09-08 20:50:44 -0400
committerJustin M. Keyes <justinkz@gmail.com>2014-09-08 20:50:44 -0400
commit9fa467a9b227243c9c534ae0df1bdaf8235551a0 (patch)
tree85449173705a443081b1189a9d1087df74030703 /src/nvim/quickfix.c
parent3f5482d3251b3bbdc7c4df8a8e64eb3af7e5922c (diff)
parentac0b9714edbb7697b8324f922024401baea8953b (diff)
downloadrneovim-9fa467a9b227243c9c534ae0df1bdaf8235551a0.tar.gz
rneovim-9fa467a9b227243c9c534ae0df1bdaf8235551a0.tar.bz2
rneovim-9fa467a9b227243c9c534ae0df1bdaf8235551a0.zip
Merge pull request #1096 from war1025/dev/local_for_all_windows
Convert FOR_ALL_WINDOWS to use a locally declared pointer
Diffstat (limited to 'src/nvim/quickfix.c')
-rw-r--r--src/nvim/quickfix.c79
1 files changed, 43 insertions, 36 deletions
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c
index 876d4e73d1..ce2a80adaa 100644
--- a/src/nvim/quickfix.c
+++ b/src/nvim/quickfix.c
@@ -1294,7 +1294,7 @@ void qf_jump(qf_info_T *qi, int dir, int errornr, int forceit)
int len;
int old_KeyTyped = KeyTyped; /* getting file may reset it */
int ok = OK;
- int usable_win;
+ bool usable_win;
if (qi == NULL)
qi = &ql_info;
@@ -1379,14 +1379,16 @@ void qf_jump(qf_info_T *qi, int dir, int errornr, int forceit)
* For ":helpgrep" find a help window or open one.
*/
if (qf_ptr->qf_type == 1 && (!curwin->w_buffer->b_help || cmdmod.tab != 0)) {
- win_T *wp;
+ win_T *wp = NULL;
- if (cmdmod.tab != 0)
- wp = NULL;
- else
- for (wp = firstwin; wp != NULL; wp = wp->w_next)
- if (wp->w_buffer != NULL && wp->w_buffer->b_help)
+ if (cmdmod.tab == 0) {
+ FOR_ALL_WINDOWS(wp2) {
+ if (wp2->w_buffer != NULL && wp2->w_buffer->b_help) {
+ wp = wp2;
break;
+ }
+ }
+ }
if (wp != NULL && wp->w_buffer->b_nwindows > 0)
win_enter(wp, true);
else {
@@ -1433,26 +1435,29 @@ void qf_jump(qf_info_T *qi, int dir, int errornr, int forceit)
if (qf_ptr->qf_fnum == 0)
goto theend;
- usable_win = 0;
+ usable_win = false;
ll_ref = curwin->w_llist_ref;
if (ll_ref != NULL) {
/* Find a window using the same location list that is not a
* quickfix window. */
- FOR_ALL_WINDOWS(usable_win_ptr)
- if (usable_win_ptr->w_llist == ll_ref
- && usable_win_ptr->w_buffer->b_p_bt[0] != 'q') {
- usable_win = 1;
- break;
+ FOR_ALL_WINDOWS(wp) {
+ if (wp->w_llist == ll_ref
+ && wp->w_buffer->b_p_bt[0] != 'q') {
+ usable_win = true;
+ usable_win_ptr = wp;
+ break;
+ }
}
}
if (!usable_win) {
/* Locate a window showing a normal buffer */
- FOR_ALL_WINDOWS(win)
- if (win->w_buffer->b_p_bt[0] == NUL) {
- usable_win = 1;
- break;
+ FOR_ALL_WINDOWS(wp) {
+ if (wp->w_buffer->b_p_bt[0] == NUL) {
+ usable_win = true;
+ break;
+ }
}
}
@@ -1468,7 +1473,7 @@ void qf_jump(qf_info_T *qi, int dir, int errornr, int forceit)
{
if (wp->w_buffer->b_fnum == qf_ptr->qf_fnum) {
goto_tabpage_win(tp, wp);
- usable_win = 1;
+ usable_win = true;
goto win_found;
}
}
@@ -1501,9 +1506,12 @@ win_found:
win = usable_win_ptr;
if (win == NULL) {
/* Find the window showing the selected file */
- FOR_ALL_WINDOWS(win)
- if (win->w_buffer->b_fnum == qf_ptr->qf_fnum)
- break;
+ FOR_ALL_WINDOWS(wp) {
+ if (wp->w_buffer->b_fnum == qf_ptr->qf_fnum) {
+ win = wp;
+ break;
+ }
+ }
if (win == NULL) {
/* Find a previous usable window */
win = curwin;
@@ -2212,13 +2220,13 @@ static int is_qf_win(win_T *win, qf_info_T *qi)
*/
static win_T *qf_find_win(qf_info_T *qi)
{
- win_T *win;
-
- FOR_ALL_WINDOWS(win)
- if (is_qf_win(win, qi))
- break;
+ FOR_ALL_WINDOWS(win) {
+ if (is_qf_win(win, qi)) {
+ return win;
+ }
+ }
- return win;
+ return NULL;
}
/*
@@ -3478,7 +3486,6 @@ void ex_helpgrep(exarg_T *eap)
char_u *lang;
qf_info_T *qi = &ql_info;
int new_qi = FALSE;
- win_T *wp;
char_u *au_name = NULL;
/* Check for a specified language */
@@ -3501,16 +3508,16 @@ void ex_helpgrep(exarg_T *eap)
p_cpo = empty_option;
if (eap->cmdidx == CMD_lhelpgrep) {
- /* Find an existing help window */
- FOR_ALL_WINDOWS(wp)
- if (wp->w_buffer != NULL && wp->w_buffer->b_help)
- break;
+ qi = NULL;
- if (wp == NULL) /* Help window not found */
- qi = NULL;
- else
- qi = wp->w_llist;
+ /* Find an existing help window */
+ FOR_ALL_WINDOWS(wp) {
+ if (wp->w_buffer != NULL && wp->w_buffer->b_help) {
+ qi = wp->w_llist;
+ }
+ }
+ /* Help window not found */
if (qi == NULL) {
/* Allocate a new location list for help text matches */
qi = ll_new_list();