From 6e3a8ef5af192eddcd834efac49866f84e2c73dd Mon Sep 17 00:00:00 2001 From: plugd Date: Tue, 8 Feb 2022 18:10:45 +0100 Subject: [PATCH] Allow square brackets around IPv6 addresses. --- config.mk | 2 +- elpher-pkg.el | 2 +- elpher.el | 16 +++++++++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/config.mk b/config.mk index 864000a..d82a178 100644 --- 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 diff --git a/elpher-pkg.el b/elpher-pkg.el index 9ce5463..1cea80f 100644 --- a/elpher-pkg.el +++ b/elpher-pkg.el @@ -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")) diff --git a/elpher.el b/elpher.el index eb888b6..82e1086 100644 --- a/elpher.el +++ b/elpher.el @@ -5,7 +5,7 @@ ;; Author: Tim Vaughan ;; 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." -- 2.20.1