diff --git a/main.cpp b/main.cpp index f1ed4cb..6882b0c 100644 --- a/main.cpp +++ b/main.cpp @@ -191,17 +191,17 @@ void move_cursor(char ch) { break; } } -// Jump to line +// Jump to line FIXME void jump(count_type r) { if(r >= get_size()) r = get_size()-1; + else if(r < 0) r = 0; - if(r - file_offset > LINES || r < file_offset) - file_offset = max(0, min(get_size()-LINES, r)); + if(r < file_offset) + file_offset = r; + else if(r > file_offset + LINES) + file_offset = r - LINES; - else if(file_offset + LINES > get_size() && get_size() > LINES) - file_offset = get_size() - LINES; - - cur.r = max(0, r - file_offset); + cur.r = r - file_offset; jump_line_end(); } // Jump to position