]> git.eshelyaron.com Git - emacs.git/commitdiff
Teach thing-at-point to recognize bracketed IPv6 URLs
authorF. Jason Park <jp@neverwas.me>
Wed, 13 Jul 2022 08:54:19 +0000 (01:54 -0700)
committerF. Jason Park <jp@neverwas.me>
Wed, 9 Nov 2022 13:15:11 +0000 (05:15 -0800)
* 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.

lisp/thingatpt.el
test/lisp/thingatpt-tests.el

index 462f87d3c1a40552f8913825f940ed45095689dd..9dda3e1fcb20a0d58e5d85d7ae8d847e74cc81ee 100644 (file)
@@ -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))
index b6d0b1446a32cf4f7fd4da056e6fcbf2cdc5b52a..67dd00104b0cbb91b45314779500126ab8232f0e 100644 (file)
@@ -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")