diff options
author | Karl Heuer <kwzh@gnu.org> | 1998-09-04 20:43:09 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1998-09-04 20:43:09 +0000 |
commit | 0b2bb4d096f59f7a0f99a3c68510b51f0a72a52c (patch) | |
tree | 3ff2e1014df587c5c05f8ce50acb0a90501920e3 /lisp/dired.el | |
parent | 3827b1b8a29ffc9f0c1e715dbdc33c1c0af1d86d (diff) | |
download | emacs-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.el | 21 |
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) |