]> code.delx.au - gnu-emacs/blobdiff - lisp/wdired.el
* lisp/international/mule-diag.el (mule-diag): Insert a newline after
[gnu-emacs] / lisp / wdired.el
index f71979e27274263185e8e0d240f7f43d2fc06154..cc99bd40628ae9621e02ffbd5982c6be0b428be4 100644 (file)
@@ -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.