diff --git a/src/viewer/move.c b/src/viewer/move.c
index 2296ff4..1a3d0ec 100644
a
|
b
|
mcview_move_down (mcview_t * view, off_t lines) |
158 | 158 | |
159 | 159 | if (view->dpy_end - view->dpy_start > last_byte - view->dpy_end) |
160 | 160 | { |
161 | | i = 0; |
162 | | new_offset = view->dpy_end; |
163 | | while (view->dpy_end < last_byte && lines-- > 0) |
| 161 | while (lines-- > 0) |
164 | 162 | { |
165 | 163 | new_offset = mcview_eol (view, view->dpy_end); |
166 | 164 | if (view->text_wrap_mode) |
167 | 165 | new_offset = min (new_offset, view->dpy_end + (off_t) view->data_area.width); |
168 | 166 | view->dpy_end = new_offset; |
169 | | |
170 | 167 | new_offset = mcview_eol (view, view->dpy_start); |
171 | 168 | if (view->text_wrap_mode) |
172 | 169 | new_offset = min (new_offset, view->dpy_start + (off_t) view->data_area.width); |
173 | | view->dpy_start = new_offset; |
| 170 | if (new_offset < last_byte) |
| 171 | view->dpy_start = new_offset; |
| 172 | if (view->dpy_end >= last_byte) |
| 173 | break; |
174 | 174 | } |
175 | | view->dpy_end = last_byte; |
176 | 175 | } |
177 | 176 | else |
178 | 177 | { |
179 | | |
180 | | for (i = 0; i < lines && view->dpy_end < last_byte && new_offset < last_byte; i++) |
| 178 | for (i = 0; i < lines && new_offset < last_byte; i++) |
181 | 179 | { |
182 | 180 | new_offset = mcview_eol (view, view->dpy_start); |
183 | 181 | if (view->text_wrap_mode) |
184 | 182 | new_offset = min (new_offset, view->dpy_start + (off_t) view->data_area.width); |
185 | | view->dpy_start = new_offset; |
| 183 | if (new_offset < last_byte) |
| 184 | view->dpy_start = new_offset; |
186 | 185 | } |
187 | 186 | } |
188 | 187 | } |