From: plugd Date: Mon, 9 Aug 2021 08:38:04 +0000 (+0200) Subject: Fixed match data clobbering introduced by previous commit. X-Git-Tag: v3.3.0~21 X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?a=commitdiff_plain;h=8eb8d6707f84064d3a3cd2947ca04fe17fc3f22e;p=elpher.git Fixed match data clobbering introduced by previous commit. --- diff --git a/elpher.el b/elpher.el index 9bdc49e..1dfdded 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.")