# HG changeset patch # User Christian Brabandt # Date 1478442605 -3600 # Node ID cf988222b1503a594b4ff70acefe4ff75db0ad9e # Parent c78513465e6e425a5e0ec652cb8107bbaf2b71ec commit https://github.com/vim/vim/commit/a1f4cb93ba50ea9e40cd4b1f5592b8a6d1398660 Author: Bram Moolenaar Date: Sun Nov 6 15:25:42 2016 +0100 patch 8.0.0069 Problem: Compiler warning for self-comparison. Solution: Define ONE_WINDOW and add #ifdef. diff --git a/src/buffer.c b/src/buffer.c --- a/src/buffer.c +++ b/src/buffer.c @@ -4935,7 +4935,7 @@ do_arg_all( } #ifdef FEAT_WINDOWS /* don't close last window */ - if (firstwin == lastwin + if (ONE_WINDOW && (first_tabpage->tp_next == NULL || !had_tab)) #endif use_firstwin = TRUE; diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -7239,7 +7239,7 @@ ex_quit(exarg_T *eap) * :h|wincmd w|1q - don't quit * :h|wincmd w|q - quit */ - if (only_one_window() && (firstwin == lastwin || eap->addr_count == 0)) + if (only_one_window() && (ONE_WINDOW || eap->addr_count == 0)) #endif getout(0); #ifdef FEAT_WINDOWS diff --git a/src/globals.h b/src/globals.h --- a/src/globals.h +++ b/src/globals.h @@ -546,6 +546,7 @@ EXTERN int clip_unnamed_saved INIT(= 0); EXTERN win_T *firstwin; /* first window */ EXTERN win_T *lastwin; /* last window */ EXTERN win_T *prevwin INIT(= NULL); /* previous window */ +# define ONE_WINDOW (firstwin == lastwin) # define W_NEXT(wp) ((wp)->w_next) # define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next) # define FOR_ALL_TABPAGES(tp) for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) @@ -563,6 +564,7 @@ EXTERN win_T *prevwin INIT(= NULL); /* p #else # define firstwin curwin # define lastwin curwin +# define ONE_WINDOW 1 # define W_NEXT(wp) NULL # define FOR_ALL_WINDOWS(wp) wp = curwin; # define FOR_ALL_TABPAGES(tp) for (;FALSE;) diff --git a/src/move.c b/src/move.c --- a/src/move.c +++ b/src/move.c @@ -2311,7 +2311,7 @@ onepage(int dir, long count) #endif if (dir == FORWARD) { - if (firstwin == lastwin && p_window > 0 && p_window < Rows - 1) + if (ONE_WINDOW && p_window > 0 && p_window < Rows - 1) { /* Vi compatible scrolling */ if (p_window <= 2) @@ -2361,7 +2361,7 @@ onepage(int dir, long count) continue; } #endif - if (firstwin == lastwin && p_window > 0 && p_window < Rows - 1) + if (ONE_WINDOW && p_window > 0 && p_window < Rows - 1) { /* Vi compatible scrolling (sort of) */ if (p_window <= 2) diff --git a/src/quickfix.c b/src/quickfix.c --- a/src/quickfix.c +++ b/src/quickfix.c @@ -2137,7 +2137,7 @@ win_found: * If there is only one window and it is the quickfix window, create a * new one above the quickfix window. */ - if (((firstwin == lastwin) && bt_quickfix(curbuf)) || !usable_win) + if ((ONE_WINDOW && bt_quickfix(curbuf)) || !usable_win) { flags = WSP_ABOVE; if (ll_ref != NULL) diff --git a/src/screen.c b/src/screen.c --- a/src/screen.c +++ b/src/screen.c @@ -1510,7 +1510,7 @@ win_update(win_T *wp) if (mid_start == 0) { mid_end = wp->w_height; - if (lastwin == firstwin) + if (ONE_WINDOW) { /* Clear the screen when it was not done by win_del_lines() or * win_ins_lines() above, "screen_cleared" is FALSE or MAYBE @@ -5670,7 +5670,10 @@ win_line( #ifdef FEAT_DIFF && filler_todo <= 0 #endif - && W_WIDTH(wp) == Columns) +#ifdef FEAT_WINDOWS + && W_WIDTH(wp) == Columns +#endif + ) { /* Remember that the line wraps, used for modeless copy. */ LineWraps[screen_row - 1] = TRUE; @@ -10524,7 +10527,7 @@ fillchar_status(int *attr, int is_curwin * window differs, or the fillchars differ, or this is not the * current window */ if (*attr != 0 && ((hl_attr(HLF_S) != hl_attr(HLF_SNC) - || !is_curwin || firstwin == lastwin) + || !is_curwin || ONE_WINDOW) || (fill_stl != fill_stlnc))) return fill; if (is_curwin) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 69, +/**/ 68, /**/ 67, diff --git a/src/window.c b/src/window.c --- a/src/window.c +++ b/src/window.c @@ -234,7 +234,7 @@ newwindow: /* cursor to previous window with wrap around */ case 'W': CHECK_CMDWIN - if (firstwin == lastwin && Prenum != 1) /* just one window */ + if (ONE_WINDOW && Prenum != 1) /* just one window */ beep_flush(); else { @@ -1593,7 +1593,7 @@ win_rotate(int upwards, int count) frame_T *frp; int n; - if (firstwin == lastwin) /* nothing to do */ + if (ONE_WINDOW) /* nothing to do */ { beep_flush(); return; @@ -2206,7 +2206,7 @@ one_window(void) } return TRUE; #else - return firstwin == lastwin; + return ONE_WINDOW; #endif } @@ -2220,7 +2220,7 @@ close_last_window_tabpage( int free_buf, tabpage_T *prev_curtab) { - if (firstwin == lastwin) + if (ONE_WINDOW) { #ifdef FEAT_AUTOCMD buf_T *old_curbuf = curbuf; @@ -2625,7 +2625,7 @@ winframe_remove( /* * If there is only one window there is nothing to remove. */ - if (tp == NULL ? firstwin == lastwin : tp->tp_firstwin == tp->tp_lastwin) + if (tp == NULL ? ONE_WINDOW : tp->tp_firstwin == tp->tp_lastwin) return NULL; /* @@ -2780,7 +2780,7 @@ win_altframe( frame_T *frp; int b; - if (tp == NULL ? firstwin == lastwin : tp->tp_firstwin == tp->tp_lastwin) + if (tp == NULL ? ONE_WINDOW : tp->tp_firstwin == tp->tp_lastwin) /* Last window in this tab page, will go to next tab page. */ return alt_tabpage()->tp_curwin->w_frame;