Commits


make clear to which struct every L_* flag is supposed to belong to


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!)


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.


garbage collect even more IMSG types these are unused after the fs/ui merge.


s/IMSG_GET_RAW/IMSG_GET and gc unused IMSG_GET_FILE


garbage collect `dequeue_first_download'


drop the `buffer' flag for enqueue_download it's unused as write_buffer now writes a buffer to the disk.


merge update_cert and tofu_update into tofu_update_persist


merge tofu_add and save_cert into tofu_save


move bookmark_page off fs.c


merge the fs into the ui process The previous separation between the fs and ui process wasn't that good. The idea was to have a `ui' process tightly sandboxed, but it was a lie actually. `ui' was one imsg away from making internet connections and accessing data on the disk, so it wasn't really limited in (almost) any way. Furthermore, having to serialize data to/from the fs proc started to become not really maneagable. As a first step to fix this situation, join the fs and ui process.


partial revert of "abstract over evbuffers" partial revert of commit d54dd8160b88709f3d243e1410a781e5de7fc187. We don't really need an abstraction over "printf-like" things. I can just use plain old FILEs. open_memstream (which conforms to POSIX.1) is what I should have used from the beginning in my mcache implementation.


add write-buffer saves a page to the disk. Also, changes the order of the downloads so the new one is always at the top.


parser/serialize: abstract over evbuffers the serialize "method" will soon be used in other context where using evbuffers would be awkward. Introduce a small abstraction over it: a printfn (print function) fprintf-like.