diff options
-rw-r--r-- | iri.c | 2 | ||||
-rw-r--r-- | regress/iri_test.c | 4 |
2 files changed, 6 insertions, 0 deletions
@@ -352,6 +352,8 @@ parse_path(struct parser *p) while (unreserved(*p->iri) || sub_delimiters(*p->iri) + || *p->iri == '@' + || *p->iri == ':' || *p->iri == '/' || parse_pct_encoded(p) || valid_multibyte_utf8(p)) diff --git a/regress/iri_test.c b/regress/iri_test.c index 6595f92..c6725b5 100644 --- a/regress/iri_test.c +++ b/regress/iri_test.c @@ -198,6 +198,10 @@ main(void) PASS, IRI("http", "a", "", "", "", ""), "avoid infinite loops (see v1.6.1)"); + TEST("gemini://example.com/@f:b!(z$&)/baz", + PASS, + IRI("gemini", "example.com", "", "@f:b!(z$&)/baz", "", ""), + "allow @, :, !, (), $ and & in paths"); /* query */ TEST("foo://example.com/foo/?gne", |