Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044)
commit8dea6fe5b5bc2936b046e799ea61afc508e28752
authorAlain Schneble <a.s@realize.ch>
Fri, 25 Dec 2015 23:50:25 +0000 (26 00:50 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 26 Dec 2015 13:53:08 +0000 (26 14:53 +0100)
treec5c5651b6b5be2eba2001417c656ff39f79165af
parent4021027db72629b66c543be0f0e249ab3d6f3b00
Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044)

* test/lisp/url/url-parse-tests.el: Add tests covering url-generic-parse-url.
* test/lisp/url/url-expand-tests.el: Add tests covering url-expand-file-name.
* lisp/url/url-parse.el (url-generic-parse-url): Keep empty fragment
information in URL-struct.
* lisp/url/url-parse.el (url-path-and-query): Do not artificially turn empty
path and query into nil path and query, respectively.
* lisp/url/url-expand.el (url-expander-remove-relative-links): Do not turn
empty path into an absolute ("/") path.
* lisp/url/url-expand.el (url-expand-file-name): Properly resolve
fragment-only URIs. Do not just return them unchanged.
* lisp/url/url-expand.el (url-default-expander): An empty path in the relative
reference URI should not drop the last segment.

Backport:

(cherry picked from commit b792ecea1715e080ad8e232d3d154b8a25d2edfb)
lisp/url/url-expand.el
lisp/url/url-parse.el
test/lisp/url/url-expand-tests.el [new file with mode: 0644]