Commit Briefs
fix two related bug
Don't crash when there's a certificate mismatch and after saving the cert, before choosing to persist it, the page gets redirected; also, don't repeat the "Certificate mismatch" after the first yes, if there's a redirect. Now when the user accept a certificate, is treated as temporary saved for the whole session.
fix top_line/current_line wrt L_HIDDEN
this fixes some infinite loops that may happen if the first line is hidden, or things happens. The idea is to move the line forward/backward until a non-hidden one is found.
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.
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
keep the comment up-to-date
we don't use wscrl (even though redraw_window could gain some speed by calling wscrl in some contexts)