Commit Briefs
retire restore_cursor and the force-redraw optimization (for now)
don't consider restore_cursor as a public interface and while there rename it as restore_curs_x, as it describes better the behaviour of the function. I have to disable the buffer->force-redraw optimization, at least from now, given that cmd.c don't update curs_y anymore, and with that optimisation in place the cursor y position doesn't get updated upon redraw. Add a comment as a future note though.
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!
erase buffer in load_page_from_str
possible leak? not confirmed, but this way it reads better.
handle the resize better
Try to preserve as much as possible the current_line and top_line during wrap_page. In redraw_window recompute the correct y position.
optimisation: cache the top_line vline
instead of using the line_off + vline_nth, cache the current top line.
move load_default_keys to defaults.c
free ui.c from (strictly) non-ui code
tagged 0.3 -- Spaceman (tags/0.3)