From: Juri Linkov Date: Wed, 23 Dec 2020 09:30:04 +0000 (+0200) Subject: Show image as text when trying to search/replace in image buffer (bug#25905) X-Git-Tag: emacs-28.0.90~4603 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=268a3d32fb5a26c09787627d12a4dfc61ba059ff;p=emacs.git Show image as text when trying to search/replace in image buffer (bug#25905) * lisp/image-mode.el (image-mode-isearch-filter): New function. (image-mode--setup-mode): Use it to add it as :before-while to isearch-filter-predicate. --- diff --git a/lisp/image-mode.el b/lisp/image-mode.el index 465bf867627..143b68f52e7 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el @@ -667,6 +667,9 @@ Key bindings: (when image-auto-resize-on-window-resize (add-hook 'window-state-change-functions #'image--window-state-change nil t)) + (add-function :before-while (local 'isearch-filter-predicate) + #'image-mode-isearch-filter) + (run-mode-hooks 'image-mode-hook) (let ((image (image-get-display-property)) (msg1 (substitute-command-keys @@ -782,6 +785,14 @@ Remove text properties that display the image." (if (called-interactively-p 'any) (message "Repeat this command to go back to displaying the image")))) +(defun image-mode-isearch-filter (_beg _end) + "Show image as text when trying to search/replace in the image buffer." + (save-match-data + (when (and (derived-mode-p 'image-mode) + (image-get-display-property)) + (image-mode-as-text))) + t) + (defvar archive-superior-buffer) (defvar tar-superior-buffer) (declare-function image-flush "image.c" (spec &optional frame))