Commit Briefs
support completions in minibuffer + related interactive fns
* cmd.c (cmd_previous_completion): add previous-completion (cmd_next_completion): add next-completion (cmd_insert_current_candidate): add insert-current-candidate * minibuffer.c (enter_minibuffer): support completions in minibuffer
guard cmd_scroll_line_up against crashes
buffer->top_line could end up being NULL if we blindly TAILQ_PREV...
scroll one line more on page up/down
with the new implementation of redraw_window, we need to scroll a line more to "push" for a new page scroll.
introduce forward_line and don't touch curs_y anymore
redraw_window in ui.c already compute the curs_y by itself, so don't update it from here. Also, introduce forward_line: moves the cursor up/down n lines. It's amazing sometimes how a good interface can simplify a large chunk of code!
optimisation: cache the top_line vline
instead of using the line_off + vline_nth, cache the current top line.