Commit Briefs
drop the __attribute__
it causes various warnings when building on linux with GCC, and since also compat_ohash.h in mandoc is without the __attribute__ I can safely remove from here.
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!