Commits


start to refactor the rendering Previously each vline (visual line) had a full copy of its associated string, this changes it so it only slices a part of the parent line. Reduces significantly the memory usage. This actually worsen the emojify-link glitch reported by Freezr after the some recent refactoring in the wrapping code. Not a big deal since I'm about to restructure the whole rendering bit by bit (hopefully!)


account for the prefix width when wrapping lines


remove wrap_one, use an extra parameter for wrap_text


use libgrapheme for text reflowing unlike the previous hack, libgrapheme is UNICODE 15.0 compliant (at the time of writing) and provides some nice API. While here, drop the hard wrap method for preformatted blocks: always use the normal wrapping. Since libgrapheme is not yet widely available, future commits will probably add a bundled version to ease packaging. I'll also start to replace various home-grown UNICODE/utf8 handling routines with functions from libgrapheme.


move some unicode-related code in u/