X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=elpher.git;a=blobdiff_plain;f=elpher.el;h=568abb8f93f2b1932f702d0a2413791ca679c87b;hp=9bdc49efdcea2599bf18e0de97d87213f428696f;hb=753056c2a33987fb834be545679607ad85884bcf;hpb=58e018e92e7c6667c9c163f13a1592248d654b53 diff --git a/elpher.el b/elpher.el index 9bdc49e..568abb8 100644 --- a/elpher.el +++ b/elpher.el @@ -511,14 +511,17 @@ readability." "Return an IRI for URL. Decode percent-escapes and handle punycode in the domain name. Drop the password, if any." - (let* ((address (elpher-address-from-url (elpher-decode (url-unhex-string url)))) - (host (url-host address)) - (pass (url-password address))) - (when host - (setf (url-host address) (puny-decode-domain host))) - (when pass ; RFC 3986 says we should not render - (setf (url-password address) nil)) ; the password as clear text - (url-recreate-url address))) + (let ((data (match-data))) ; Prevent parsing clobbering match data + (unwind-protect + (let* ((address (elpher-address-from-url (elpher-decode (url-unhex-string url)))) + (host (url-host address)) + (pass (url-password address))) + (when host + (setf (url-host address) (puny-decode-domain host))) + (when pass ; RFC 3986 says we should not render + (setf (url-password address) nil)) ; the password as clear text + (url-recreate-url address)) + (set-match-data data)))) (defvar elpher-current-page nil "The current page for this Elpher buffer.") @@ -1492,7 +1495,8 @@ treatment that a separate function is warranted." (display-string (elpher-gemini-get-link-display-string link-line)) (address (elpher-address-from-gemini-url url)) (type (if address (elpher-address-type address) nil)) - (type-map-entry (cdr (assoc type elpher-type-map)))) + (type-map-entry (cdr (assoc type elpher-type-map))) + (fill-prefix " ")) (when display-string (insert elpher-gemini-link-string) (if type-map-entry @@ -1506,7 +1510,7 @@ treatment that a separate function is warranted." 'follow-link t 'help-echo #'elpher--page-button-help)) (insert (propertize display-string 'face 'elpher-unknown))) - (insert "\n")))) + (newline)))) (defvar elpher--gemini-page-headings nil "List of headings on the page.")