X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=elpher.git;a=blobdiff_plain;f=elpher.el;h=82e108613b8c7c9d00f930d72a8877bdbd2283f1;hp=eb888b6535f880abb7a433173a34b8ad32bc0a7c;hb=6e3a8ef5af192eddcd834efac49866f84e2c73dd;hpb=68388182b99d7e12ec649826cf0a8d167be57a88 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."