Commit Briefs
big refactor: introduce the window abstraction
- commands now take a struct window* instead of a raw tab - the struct ui_state is gone - using a window for the minibuffer too helps avoid code duplication - it will let us having more than one window on a tab! :DD It doesn't seem to have broken anything...
cursor handling with utf8 support
the code relative to the cursors movements now respects the width of the characters (zero, one or two cells).
fix compilation on glibc
glibc needs _GNU_SOURCE defined to make IOV_MAX visible. Use AC_USE_SYSTEM_EXTENSIONS and make sure to include compat.h before everything else. Found by cage_, thanks!
change default quote continuation prefix
using "> " as prefix for both first and continuation lines was a bit ambiguous.
fix a case of use-after-free in parser_set_buf
p->buf and buf almost always overlap. This means that once we free(p->buf), buf becomes invalid. It probably never crashed on memcpy since because the buffer is almost always quite small.
fixed strtonum prototype
found by cage_: thanks!