I just pushed a fairly invasive change which tries to separate out all the ui related code into a single file: ui-curses.c. The idea is that by implementing the interface of ui.h it should be possible to add a different user interface backend. This should also be useful if somebody finds the time and motivation to write unit tests with a dummy ui ...
However this is not yet complete, for example keyboard input is still handled directly in vis.c. There is also a slight regression in that the active mode is currently not displayed in the status bar of the window. I hope to fix this later by eliminating the remaining global state found in vis.c. Please let me know if something else is broken too. Further cleanup patches are always welcome! Another feature I would like to implement is the ":!" i.e. to filter text through an external command. In the long term I would also like to experiment with a client/server architecture where each window would be an independent process. These features require a proper mainloop and I'm considering using libuv. What is your opinion on libuv? Is there a better alternative I should look into? What would you use for communication purposes? Sending raw structs around or using something like msgpack? http://repo.or.cz/w/vis.git https://github.com/martanne/vis -- Marc André Tanner >< http://www.brain-dump.org/ >< GPG key: CF7D56C0