--- rxvt-unicode/src/command.C 2005/12/18 00:59:42 1.208 +++ rxvt-unicode/src/command.C 2005/12/21 14:19:19 1.212 @@ -137,13 +137,13 @@ x = Pixel2Col (x); y = Pixel2Row (y); - if (x < 0 || x >= ncol - || y < 0 || y >= nrow) + if (!IN_RANGE_EXC (x, 0, ncol) + || !IN_RANGE_EXC (y, 0, nrow)) return; for (;;) { - const line_t &l = save[y + saveLines - view_start]; + const line_t &l = ROW(-view_start); text_t t = l.t[x]; @@ -156,7 +156,6 @@ x--; } - } #endif @@ -1037,7 +1036,7 @@ || mouse_slip_wheel_speed < 0 ? scr_page (DN, -mouse_slip_wheel_speed) : scr_page (UP, mouse_slip_wheel_speed)) { - if (view_start == nscrolled || + if (view_start == nsaved || view_start == 0) mouse_slip_wheel_speed = 0; @@ -1603,7 +1602,7 @@ scroll_selection_lines = Pixel2Height (dist) / SELECTION_SCROLL_LINE_SPEEDUP + 1; - MIN_IT (scroll_selection_lines, + min_it (scroll_selection_lines, SELECTION_SCROLL_MAX_LINES); } else @@ -2454,8 +2453,8 @@ sy = 0; } - MIN_IT (nw, (unsigned int) (wrootattr.width - sx)); - MIN_IT (nh, (unsigned int) (wrootattr.height - sy)); + min_it (nw, (unsigned int) (wrootattr.width - sx)); + min_it (nh, (unsigned int) (wrootattr.height - sy)); XSync (disp, False); allowedxerror = -1; @@ -3354,7 +3353,7 @@ arg[0] = -arg[0]; /* FALLTHROUGH */ case CSI_SU: /* 8.3.148: (1) SCROLL UP */ - scr_scroll_text (screen.tscroll, screen.bscroll, arg[0], 0); + scr_scroll_text (screen.tscroll, screen.bscroll, arg[0]); break; case CSI_DA: /* 8.3.24: (0) DEVICE ATTRIBUTES */