mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
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 b792ecea17)
This commit is contained in:
parent
4021027db7
commit
8dea6fe5b5
3 changed files with 142 additions and 44 deletions
|
|
@ -59,8 +59,6 @@ where each of PATH and QUERY are strings or nil."
|
|||
(setq path (substring name 0 (match-beginning 0))
|
||||
query (substring name (match-end 0)))
|
||||
(setq path name)))
|
||||
(if (equal path "") (setq path nil))
|
||||
(if (equal query "") (setq query nil))
|
||||
(cons path query)))
|
||||
|
||||
(defun url-port-if-non-default (urlobj)
|
||||
|
|
@ -217,8 +215,7 @@ parses to
|
|||
(when (looking-at "#")
|
||||
(let ((opoint (point)))
|
||||
(forward-char 1)
|
||||
(unless (eobp)
|
||||
(setq fragment (buffer-substring (point) (point-max))))
|
||||
(setq fragment (buffer-substring (point) (point-max)))
|
||||
(delete-region opoint (point-max)))))
|
||||
|
||||
(if (and host (string-match "%[0-9][0-9]" host))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue