=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/window-copy.c,v retrieving revision 1.18 retrieving revision 1.19 diff -c -r1.18 -r1.19 *** src/usr.bin/tmux/window-copy.c 2009/08/13 19:35:20 1.18 --- src/usr.bin/tmux/window-copy.c 2009/08/13 22:11:43 1.19 *************** *** 1,4 **** ! /* $OpenBSD: window-copy.c,v 1.18 2009/08/13 19:35:20 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: window-copy.c,v 1.19 2009/08/13 22:11:43 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 130,140 **** { struct window_copy_mode_data *data = wp->modedata; struct screen *s = &data->screen; ! if (data->oy + screen_size_y(s) > screen_hsize(&wp->base)) data->oy = screen_hsize(&wp->base); else ! data->oy += screen_size_y(s); window_copy_update_selection(wp); window_copy_redraw_screen(wp); } --- 130,144 ---- { struct window_copy_mode_data *data = wp->modedata; struct screen *s = &data->screen; + u_int n; ! n = 1; ! if (screen_size_y(s) > 2) ! n = screen_size_y(s) - 2; ! if (data->oy + n > screen_hsize(&wp->base)) data->oy = screen_hsize(&wp->base); else ! data->oy += n; window_copy_update_selection(wp); window_copy_redraw_screen(wp); } *************** *** 167,172 **** --- 171,177 ---- { struct window_copy_mode_data *data = wp->modedata; struct screen *s = &data->screen; + u_int n; switch (mode_key_lookup(&data->mdata, key)) { case MODEKEYCOPY_CANCEL: *************** *** 188,197 **** window_copy_pageup(wp); break; case MODEKEYCOPY_NEXTPAGE: ! if (data->oy < screen_size_y(s)) data->oy = 0; else ! data->oy -= screen_size_y(s); window_copy_update_selection(wp); window_copy_redraw_screen(wp); break; --- 193,205 ---- window_copy_pageup(wp); break; case MODEKEYCOPY_NEXTPAGE: ! n = 1; ! if (screen_size_y(s) > 2) ! n = screen_size_y(s) - 2; ! if (data->oy < n) data->oy = 0; else ! data->oy -= n; window_copy_update_selection(wp); window_copy_redraw_screen(wp); break;