master b22a3beb593: Remove text fragments from URL target

Eli Zaretskii <[email protected]> Sat, 11 Jul 2026 04:40:06 -0400 (EDT)
Newsgroups gmane.emacs.diffs
Message-ID <[email protected]>
branch: master
commit b22a3beb5934717b026e9ef9c38056fa18e20fe0
Author: Manuel Giraud <[email protected]>
Commit: Eli Zaretskii <[email protected]>

    Remove text fragments from URL target
    
    * lisp/net/eww.el (eww-parse-target): New function to parse a
    more complex URL target.
    (eww-render): Use it.  (Bug#81301)
---
 lisp/net/eww.el | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 542afa41180..908df6e3333 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -686,6 +686,12 @@ The renaming scheme is performed in accordance with
     (when rename-string
       (rename-buffer rename-string t))))
 
+(defun eww-parse-target (target)
+  "Separate TARGET from its optional text fragments."
+  (when (stringp target)
+    (string-match "\\([^:]*\\)\\(:~:\\)?\\(.*\\)" target)
+    (cons (match-string 1 target) (match-string 3 target))))
+
 (defun eww-render (status url &optional point buffer encode)
   (let* ((headers (eww-parse-headers))
 	 (content-type
@@ -699,7 +705,8 @@ The renaming scheme is performed in accordance with
 			(eww-detect-charset (eww-html-p (car content-type)))
 			"utf-8"))))
 	 (data-buffer (current-buffer))
-	 (shr-target-id (url-target (url-generic-parse-url url)))
+         (full-target (eww-parse-target (url-target (url-generic-parse-url url))))
+         (shr-target-id (car full-target))
 	 last-coding-system-used)
     (let ((redirect (plist-get status :redirect)))
       (when redirect