Ticket #2135: mc-down3.diff

File mc-down3.diff, 1.8 KB (added by andrew_b, 8 years ago)
  • src/viewer/move.c

    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) 
    158158 
    159159        if (view->dpy_end - view->dpy_start > last_byte - view->dpy_end) 
    160160        { 
    161             i = 0; 
    162             new_offset = view->dpy_end; 
    163             while (view->dpy_end < last_byte && lines-- > 0) 
     161            while (lines-- > 0) 
    164162            { 
    165163                new_offset = mcview_eol (view, view->dpy_end); 
    166164                if (view->text_wrap_mode) 
    167165                    new_offset = min (new_offset, view->dpy_end + (off_t) view->data_area.width); 
    168166                view->dpy_end = new_offset; 
    169  
    170167                new_offset = mcview_eol (view, view->dpy_start); 
    171168                if (view->text_wrap_mode) 
    172169                    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; 
    174174            } 
    175             view->dpy_end = last_byte; 
    176175        } 
    177176        else 
    178177        { 
    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++) 
    181179            { 
    182180                new_offset = mcview_eol (view, view->dpy_start); 
    183181                if (view->text_wrap_mode) 
    184182                    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; 
    186185            } 
    187186        } 
    188187    }