Hi Bram,
2016-11-6(Sun) 23:26:05 UTC+9 Bram Moolenaar:
> Patch 8.0.0069
> Problem:Compiler warning for self-comparison.
> Solution: Define ONE_WINDOW and add #ifdef.
> Files: src/globals.h, src/buffer.c, src/ex_docmd.c, src/move.c,
> src/screen.c, src/quickfix.c, src/window.c
>
>
> *** ../vim-8.0.0068/src/globals.h 2016-08-29 22:42:20.0 +0200
> --- src/globals.h 2016-11-06 15:18:10.068418172 +0100
> ***
> *** 546,551
> --- 546,552
> 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,568
> --- 564,570
> #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;)
> *** ../vim-8.0.0068/src/buffer.c 2016-10-30 21:57:48.070395594 +0100
> --- src/buffer.c 2016-11-06 15:20:32.491532716 +0100
> ***
> *** 4935,4941
> }
> #ifdef FEAT_WINDOWS
> /* don't close last window */
> ! if (firstwin == lastwin
> && (first_tabpage->tp_next == NULL || !had_tab))
> #endif
> use_firstwin = TRUE;
> --- 4935,4941
> }
> #ifdef FEAT_WINDOWS
> /* don't close last window */
> ! if (ONE_WINDOW
> && (first_tabpage->tp_next == NULL || !had_tab))
> #endif
> use_firstwin = TRUE;
> *** ../vim-8.0.0068/src/ex_docmd.c2016-10-15 15:39:34.685059653 +0200
> --- src/ex_docmd.c2016-11-06 15:21:01.243353096 +0100
> ***
> *** 7239,7245
>* :h|wincmd w|1q - don't quit
>* :h|wincmd w|q - quit
>*/
> ! if (only_one_window() && (firstwin == lastwin || eap->addr_count == 0))
> #endif
> getout(0);
> #ifdef FEAT_WINDOWS
> --- 7239,7245
>* :h|wincmd w|1q - don't quit
>* :h|wincmd w|q - quit
>*/
> ! if (only_one_window() && (ONE_WINDOW || eap->addr_count == 0))
> #endif
> getout(0);
> #ifdef FEAT_WINDOWS
> *** ../vim-8.0.0068/src/move.c2016-10-18 14:50:14.731694041 +0200
> --- src/move.c2016-11-06 15:18:38.896239173 +0100
> ***
> *** 2311,2317
> #endif
> if (dir == FORWARD)
> {
> ! if (firstwin == lastwin && p_window > 0 && p_window < Rows - 1)
> {
> /* Vi compatible scrolling */
> if (p_window <= 2)
> --- 2311,2317
> #endif
> if (dir == FORWARD)
> {
> ! if (ONE_WINDOW && p_window > 0 && p_window < Rows - 1)
> {
> /* Vi compatible scrolling */
> if (p_window <= 2)
> ***
> *** 2361,2367
> continue;
> }
> #endif
> ! if (firstwin == lastwin && p_window > 0 && p_window < Rows - 1)
> {
> /* Vi compatible scrolling (sort of) */
> if (p_window <= 2)
> --- 2361,2367
> continue;
> }
> #endif
> ! if (ONE_WINDOW && p_window > 0 && p_window < Rows - 1)
> {
> /* Vi compatible scrolling (sort of) */
> if (p_window <= 2)
> *** ../vim-8.0.0068/src/screen.c 2016-10-27 17:27:38.265074170 +0200
> --- src/screen.c 2016-11-06 15:21:34.503145348 +0100
> ***
> *** 1510,1516
> if (mid_start == 0)
> {
> mid_end = wp->w_height;
> ! if (lastwin == firstwin)
> {
> /* Clear the screen when it was not done by win_del_lines() or
>* win_ins_lines() above, "screen_cleared" is FALSE or MAYBE
> --- 1510,1516
> if (mid_start == 0)
> {
> mid_end = wp->w_height;
> ! 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,5676
> #ifdef FEAT_DIFF
>&& filler_todo <= 0
> #endif
> ! && W_WIDTH(wp) == Columns)
> {
> /* Remember that the line wraps, used for modeless copy. */
> LineWraps[screen_row - 1] = TRUE;
> --- 5670,5679
> #ifdef FEAT_DIFF
>&& filler_todo <= 0
> #endif
> ! #ifdef FEAT_WINDOWS
> ! && W_WIDTH(wp) == Columns
> ! #endif
> !