diff --git a/url.bs b/url.bs index de68c188..47aeb5a8 100644 --- a/url.bs +++ b/url.bs @@ -1716,12 +1716,16 @@ string input, optionally with a base URL base, opti
If c is U+002F (/), then set state to relative slash state. + +
Otherwise, if url is special and c is U+005C (\), + validation error, set state to relative slash state. +
Switch on c: +
Otherwise: -
Set url's username to +
Set url's username to base's username, url's password to base's password, @@ -1734,62 +1738,23 @@ string input, optionally with a base URL base, opti url's query to base's query. -
Set state to relative slash state. - -
Set url's username to - base's username, - url's password to - base's password, - url's host to - base's host, - url's port to - base's port, - url's path to a clone of - base's path, - url's query to the empty string, and - state to query state. - -
Set url's username to - base's username, - url's password to - base's password, - url's host to - base's host, - url's port to - base's port, - url's path to a clone of - base's path, - url's query to - base's query, - url's fragment to the empty string, and - state to fragment state. +
If c is U+003F (?), then set url's query to the empty + string, and state to query state. -
If url is special and c is U+005C (\), validation error, - set state to relative slash state. +
Otherwise, if c is U+0023 (#), set url's fragment to + the empty string and state to fragment state. -
Otherwise, run these steps: +
Otherwise, if c is not the EOF code point:
Set url's username to - base's username, - url's password to - base's password, - url's host to - base's host, - url's port to - base's port, - url's path to a clone of - base's path, and then remove - url's path's last item, if any. +
Set url's query to null. + +
Set state to path state and decrease pointer by 1.