After discussing on IRC (thanks!) i think is legit (according to the
specification) to have URL like that:
titan://invalid/path/to/script;mime=text/plain;size=1;token=foo?query=bar
Many thanks to Alex Schroeder for help and supporting!
- fixed building of URL composed of only a path component in 'render-iri';
- [GUI] remove standard port value before requesting an URL.
- [gemini] added a missing newline character in 'geminize-preformatted';
- [GUI] parsed standard colors for gemini window's text;
- [GUI] rendered the gemini protocol rerror responses to the gemtext
window instead of poppinu out a dialog window.
- [GUI] logged RPC request error instead of opening a dialog message when in debug mode;
- [GUI] added a draft of callback for opening a gemini address.
- [RPC] learnt that (error "string" arg1 arg2 ... argn), is similar to
(error (format nil "string" arg1 arg2 ... argn)) so (error (format
nil "~a" "~c")) is equal to (error "~c"); => format error (missing
argument for format string)!
parser state in 'sexp->text-rows';
- added 'add-metadata-to-parsed-gemini-lines'
This function will add attributes (like ':header-group-id') to the
sexp representation of a gemini stream (structure: (tag
((attribute-key attribute value)...) text line) )
- [JSON-RPC API] added a couple of public API function.
moreover used this slots when downloading a gemini stream
This changes means that the parsing of gemini stream is no more done
in program events but during the downloading thread.
See, for example the changes in: 'gemini-viewer:make-gemini-download-event'
- added a parameter to prevent notification when downloading a gemini stream
see 'gemini-viewer:request-stream-gemini-document-thread';
- added a more human friendly constants for each gemini status code
(e.g. +success+ for code 20).
- as the gemini parser has status added a parameter ('initialize-parser') to
'gemini-parser:parse-gemini-file' (default to nil, do not initialize);
- initialize the gemini parser when needed.
There is no sense to share it between multiple threads parsing a
gemini stream as the status of the parser (preformatted or not) from
one could leaks into another.
no string typed on the command line);
- fixed chrash when completing bookmark entry with non word character
(e.g. '[');
- added macro 'gemini-parser:with-initialized-parser';
- added source metadata (sourceline and source-line-id to results of
gemini parsing to IR (see: sexp->text-rows).