]> git.eshelyaron.com Git - emacs.git/commitdiff
Only do multi-isearch in eww if there's next/prev links
authorLars Ingebrigtsen <larsi@gnus.org>
Mon, 13 Sep 2021 08:03:24 +0000 (10:03 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Mon, 13 Sep 2021 08:03:28 +0000 (10:03 +0200)
* lisp/net/eww.el (eww-handle-link): Only do multi-isearch if
there's a next/prev link in the HTML (bug#50497).
(eww-setup-buffer): Clear the function.
(eww-mode): Don't set it here.

lisp/net/eww.el

index 62f19925f62c5145db739c875c40071bc2636aa3..16a13bbaaee07c0337886b316e19fe6eaffb29bf 100644 (file)
@@ -668,9 +668,12 @@ Currently this means either text/html or application/xhtml+xml."
                   ("home" . :home)
                   ("contents" . :contents)
                   ("up" . :up)))))
-    (and href
-        where
-        (plist-put eww-data (cdr where) href))))
+    (when (and href where)
+      (when (memq (cdr where) '(:next :previous))
+        ;; Multi-page isearch support.
+        (setq-local multi-isearch-next-buffer-function
+                    #'eww-isearch-next-buffer))
+      (plist-put eww-data (cdr where) href))))
 
 (defvar eww-redirect-level 1)
 
@@ -840,6 +843,8 @@ Currently this means either text/html or application/xhtml+xml."
     (remove-overlays)
     (erase-buffer))
   (setq bidi-paragraph-direction nil)
+  ;; May be set later if there's a next/prev link.
+  (setq-local multi-isearch-next-buffer-function nil)
   (unless (eq major-mode 'eww-mode)
     (eww-mode)))
 
@@ -1080,8 +1085,6 @@ the like."
     (setq-local tool-bar-map eww-tool-bar-map))
   ;; desktop support
   (setq-local desktop-save-buffer #'eww-desktop-misc-data)
-  ;; multi-page isearch support
-  (setq-local multi-isearch-next-buffer-function #'eww-isearch-next-buffer)
   (setq truncate-lines t)
   (setq-local thing-at-point-provider-alist
               (append thing-at-point-provider-alist