Commits


iri: fix path check path should *start* with "/" to enter that branch, not be exactly "/".


iri: fix logic in iri_unparse make sure path starts with "/" only when there's an authority part, not when it's not there!


iri: drop extraneous cpfields(IH_QUERY)


iri: set some flags as defined only when actually copying


iri: draft iri_unparse


iri: avoid unpleasant infinite loop in remove_dot_segments need to copy until the *next* path segment, otherwise we loop indefinitely if *p == '/'.


iri: catch remove_dot_segments/mergepath failures and set errno


iri: first try at remove_dot_segments and mergepath


iri: lowercase scheme and host (part of URI normalization)


use the new iri parser in ir_select_gemini While here also add some error checking.


use the new iri parser in parse.y for proxy validation


hook iri.[ch] into the build


draft of the new iri parser for the moment is just a URI (RFC3986) parser, and not even a complete one, but I like it much more than phos_uri. It's more gentle in the memory consumption and has a cleaner API. It's not complete, some parts are still stubbed or completely to implement, but it's the start. It compiles. Step-by-step integration of it in telescope and testing will come later.


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