line-based one.
The old method that packed text got from gemini stream in single event
was ugly and blocked the UI.
This version revert to a line by line rendering but it is optimized
and does not gets slow with the size of the text the window holds.
- added some messages to debug protocol;
- asking for query event got minimum priority to prevent being
hidden by informational messages on the command line (e.g the
message that inform the user that the client is going back in
history);
- always stream contents that are repsonses to a query;
- added gemini-client:request-dispatch and rewritten
gemini-client:slurp-gemini-url based on the former.
the implementation more or less follow
gemini://mozz.us/files/rfc_gemini_favicon.gmi but it does render the
first character of the file instead of checking for emoji
characters.
certificate/key pair.
The function to find a cached certificate/key or create a new pair
retuns a multiple value.
I was using multiple-value-list for getting the pairs certificate/key
from said functions. Then i was checking the results of
'multiple-value-list' for null values to get the non correct pair, but
that expression never return nil (was returning '(nil) instead).
This was breaking the client autentication.
the same time;
- [gemini] add a newline to data before parsing a gemini file only
when needed (thre is no one at the end);
- commented and improved some regular expressions for coloring.
Starting wrapping streaming of gemini's data using hi level
structures (this way we can associate a for aecha stream), this
could be useful to let the user start or stop the stream or open the
data downloaded so far.
way (in a different thread)
- [gemini] prevent links to be appended even when user is opening a new document;
- [gemini] added a notification when download of a gemini document has terminated.
thread) the contents of a gemini file parsed so far without waiting
for the whole document to be read from the socket.
This feature should prevent blocking the client when the server
never close the socket (i.e. for streamed contents).