summaryrefslogtreecommitdiff
path: root/lisp/dired.el
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1998-09-04 20:43:09 +0000
committerKarl Heuer <kwzh@gnu.org>1998-09-04 20:43:09 +0000
commit0b2bb4d096f59f7a0f99a3c68510b51f0a72a52c (patch)
tree3ff2e1014df587c5c05f8ce50acb0a90501920e3 /lisp/dired.el
parent3827b1b8a29ffc9f0c1e715dbdc33c1c0af1d86d (diff)
downloademacs-0b2bb4d096f59f7a0f99a3c68510b51f0a72a52c.tar.gz
(dired-mark-files-containing-regexp):
Don't use find-file; instead, insert the file in a temp buffer.
Diffstat (limited to 'lisp/dired.el')
-rw-r--r--lisp/dired.el21
1 files changed, 12 insertions, 9 deletions
diff --git a/lisp/dired.el b/lisp/dired.el
index 19d0b104ac8..a9afa3e11e3 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -2165,17 +2165,20 @@ A prefix argument means to unmark them instead.
(and (not (looking-at dired-re-dot))
(not (eolp)) ; empty line
(let ((fn (dired-get-filename nil t)))
- (and fn (save-excursion
+ (and fn (let ((prebuf (get-file-buffer fn)))
+ (message "Checking %s" fn)
;; For now we do it inside emacs
;; Grep might be better if there are a lot of files
- (message "Checking %s" fn)
- (let* ((prebuf (get-file-buffer fn)))
- (find-file fn)
- (goto-char (point-min))
- (prog1
- (re-search-forward regexp nil t)
- (if (not prebuf) (kill-buffer nil))))
- ))))
+ (if prebuf
+ (with-current-buffer prebuf
+ (save-excursion
+ (goto-char (point-min))
+ (re-search-forward regexp nil t)))
+ (with-temp-buffer
+ (insert-buffer-contents fn)
+ (goto-char (point-min))
+ (re-search-forward regexp nil t))))
+ )))
"matching file")))
(defun dired-flag-files-regexp (regexp)