Teach thing-at-point to recognize bracketed IPv6 URLs
* lisp/thingatpt.el (thing-at-point-bounds-of-url-at-point): Allow IPv6 addresses as hosts. Overshoots in the case of bracketed markup but is rescued by `thing-at-point--bounds-of-well-formed-url'. * test/lisp/thingatpt-tests.el (thing-at-point-test-data): Add cases for IPv6 URLs. Bug#56514.
This commit is contained in:
parent
b7e476a3d3
commit
4bd5ac04a3
2 changed files with 4 additions and 1 deletions
|
@ -441,7 +441,7 @@ the bounds of a possible ill-formed URI (one lacking a scheme)."
|
|||
;; Otherwise, find the bounds within which a URI may exist. The
|
||||
;; method is similar to `ffap-string-at-point'. Note that URIs
|
||||
;; may contain parentheses but may not contain spaces (RFC3986).
|
||||
(let* ((allowed-chars "--:=&?$+@-Z_[:alpha:]~#,%;*()!'")
|
||||
(let* ((allowed-chars "--:=&?$+@-Z_[:alpha:]~#,%;*()!'[]")
|
||||
(skip-before "^[0-9a-zA-Z]")
|
||||
(skip-after ":;.,!?'")
|
||||
(pt (point))
|
||||
|
|
|
@ -44,6 +44,9 @@
|
|||
;; Non alphanumeric characters can be found in URIs
|
||||
("ftp://example.net/~foo!;#bar=baz&goo=bob" 3 url "ftp://example.net/~foo!;#bar=baz&goo=bob")
|
||||
("bzr+ssh://user@example.net:5/a%20d,5" 34 url "bzr+ssh://user@example.net:5/a%20d,5")
|
||||
;; IPv6 brackets enclosed in [markup]
|
||||
("[http://[::1]:8000/foo]" 10 url "http://[::1]:8000/foo")
|
||||
("[http://[fe08::7:8%eth0]]" 10 url "http://[fe08::7:8%eth0]")
|
||||
;; <url:...> markup
|
||||
("Url: <url:foo://1.example.com>..." 8 url "foo://1.example.com")
|
||||
("Url: <url:foo://2.example.com>..." 30 url "foo://2.example.com")
|
||||
|
|
Loading…
Add table
Reference in a new issue