summaryrefslogtreecommitdiff
path: root/lisp/wdired.el
diff options
context:
space:
mode:
authorJuri Linkov <juri@jurta.org>2011-09-09 18:49:00 +0300
committerJuri Linkov <juri@jurta.org>2011-09-09 18:49:00 +0300
commit5e68ce4ab9bb6cdc8dc7aa3bbac014c93297369a (patch)
tree23953c3cb17f1f31acb0b1ae20cfc8e3a7db2017 /lisp/wdired.el
parent0861eb2e39d33c25cf8829af0e6a61557a7b8544 (diff)
downloademacs-5e68ce4ab9bb6cdc8dc7aa3bbac014c93297369a.tar.gz
emacs-5e68ce4ab9bb6cdc8dc7aa3bbac014c93297369a.tar.bz2
emacs-5e68ce4ab9bb6cdc8dc7aa3bbac014c93297369a.zip
Add `wdired-isearch-filter-read-only' to lisp/wdired.el.
* lisp/wdired.el (wdired-change-to-wdired-mode): Set buffer-local `isearch-filter-predicate' to `wdired-isearch-filter-read-only'. (wdired-isearch-filter-read-only): New function. Fixes: debbugs:6362
Diffstat (limited to 'lisp/wdired.el')
-rw-r--r--lisp/wdired.el7
1 files changed, 7 insertions, 0 deletions
diff --git a/lisp/wdired.el b/lisp/wdired.el
index f71979e2727..cc99bd40628 100644
--- a/lisp/wdired.el
+++ b/lisp/wdired.el
@@ -216,6 +216,8 @@ See `wdired-mode'."
(buffer-substring (point-min) (point-max)))
(set (make-local-variable 'wdired-old-point) (point))
(set (make-local-variable 'query-replace-skip-read-only) t)
+ (set (make-local-variable 'isearch-filter-predicate)
+ 'wdired-isearch-filter-read-only)
(use-local-map wdired-mode-map)
(force-mode-line-update)
(setq buffer-read-only nil)
@@ -241,6 +243,11 @@ See `wdired-mode'."
"Press \\[wdired-finish-edit] when finished \
or \\[wdired-abort-changes] to abort changes")))
+(defun wdired-isearch-filter-read-only (beg end)
+ "Skip matches that have a read-only property."
+ (and (isearch-filter-visible beg end)
+ (not (text-property-not-all (min beg end) (max beg end)
+ 'read-only nil))))
;; Protect the buffer so only the filenames can be changed, and put
;; properties so filenames (old and new) can be easily found.