Ticket #2135: mc-down2.diff

File mc-down2.diff, 1.8 KB (added by gotar, 9 years ago)

mcview_move_down.patch

  • src/viewer/move.c

    diff -ur -ruNp mc-4.7.2.orig/src/viewer/move.c mc-4.7.2/src/viewer/move.c
    old new mcview_move_down (mcview_t * view, off_t 
    154154    else 
    155155    { 
    156156        off_t i; 
    157         off_t new_offset = 0; 
     157        off_t new_offset; 
    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 + view->data_area.width); 
    168166                view->dpy_end = new_offset; 
     167                if(view->dpy_end>=last_byte) lines=0; 
    169168 
    170169                new_offset = mcview_eol (view, view->dpy_start); 
    171170                if (view->text_wrap_mode) 
    172171                    new_offset = min (new_offset, view->dpy_start + view->data_area.width); 
    173                 view->dpy_start = new_offset; 
     172                if(new_offset<last_byte) view->dpy_start = new_offset; 
    174173            } 
    175             view->dpy_end = last_byte; 
    176174        } 
    177175        else 
    178176        { 
    179177 
    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 + view->data_area.width); 
    185                 view->dpy_start = new_offset; 
     183                if(new_offset<last_byte) view->dpy_start = new_offset; 
    186184            } 
    187185        } 
    188186    }