Allow square brackets around IPv6 addresses. v3.3.2
authorplugd <plugd@thelambdalab.xyz>
Tue, 8 Feb 2022 17:10:45 +0000 (18:10 +0100)
committerplugd <plugd@thelambdalab.xyz>
Tue, 8 Feb 2022 17:26:34 +0000 (18:26 +0100)
config.mk
elpher-pkg.el
elpher.el

index 864000a..d82a178 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -1,5 +1,5 @@
 PKG     = elpher
-VERSION = 3.3.1
+VERSION = 3.3.2
 
 INSTALLINFO = install-info
 MAKEINFO    = makeinfo
index 9ce5463..1cea80f 100644 (file)
@@ -1,4 +1,4 @@
-(define-package "elpher" "3.3.1" "A friendly gopher and gemini client"
+(define-package "elpher" "3.3.2" "A friendly gopher and gemini client"
   '((emacs "27.1"))
   :keywords ("convenience")
   :authors (("Tim Vaughan" . "plugd@thelambdalab.xyz"))
index eb888b6..82e1086 100644 (file)
--- a/elpher.el
+++ b/elpher.el
@@ -5,7 +5,7 @@
 
 ;; Author: Tim Vaughan <plugd@thelambdalab.xyz>
 ;; Created: 11 April 2019
-;; Version: 3.3.1
+;; Version: 3.3.2
 ;; Keywords: comm gopher
 ;; Homepage: https://thelambdalab.xyz/elpher
 ;; Package-Requires: ((emacs "27.1"))
@@ -70,7 +70,7 @@
 ;;; Global constants
 ;;
 
-(defconst elpher-version "3.3.1"
+(defconst elpher-version "3.3.2"
   "Current version of elpher.")
 
 (defconst elpher-margin-width 6
@@ -423,7 +423,17 @@ For gopher addresses this is a combination of the selector type and selector."
 
 (defun elpher-address-host (address)
   "Retrieve host from ADDRESS object."
-  (url-host address))
+  (let ((host-pre (url-host address)))
+    ;; The following strips out square brackets which sometimes enclose IPv6
+    ;; addresses.  Doing this here rather than at the parsing stage may seem
+    ;; weird, but this lets us way we avoid having to muck with both URL parsing
+    ;; and reconstruction.  It's also more efficient, as this method is not
+    ;; called during page rendering.
+    (if (and (> (length host-pre) 2)
+             (eq (elt host-pre 0) ?\[)
+             (eq (elt host-pre (- (length host-pre) 1)) ?\]))
+        (substring host-pre 1 (- (length host-pre) 1))
+      host-pre)))
 
 (defun elpher-address-user (address)
   "Retrieve user from ADDRESS object."