* [x] If the output exceeds the height of the terminal, and the user scrolls back, things are pretty messed up. * [x] If the output exceeds the width of the terminal, we don't clear enough lines. * [x] If the terminal width increases, so that a line which previously wrapped no longer wraps, we clear too many lines in the next redraw. * [ ] If the user shrinks the height of the terminal, some junk will be left in the scrollback buffer. (There's no issue with increasing the height.) We could fix this by using the alternate screen, but that's not as good when we're not using the full height. * [ ] Support more efficient redraw (for geometry-only changes). * [x] Account for width of non-roman characters. * [x] Account for control characters. * [ ] Figure out some way to test this library. * [ ] Make print() return a token which can be used to clear the text. (I think this would be a less confusing API.) * [x] Return concrete errors. * [ ] There's something not quite right about the new VTE-based soft-breaker. See the failing unit tests for details.