summaryrefslogtreecommitdiff
path: root/lisp/dired-aux.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2013-08-05 14:05:46 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2013-08-05 14:05:46 -0400
commitdc6c0edad789a8aab129ae12b8f064d0e912cca7 (patch)
treec1a48c60a90799f3a05b7db15ac66bd2111bd78e /lisp/dired-aux.el
parent98a428c15ad48f8579b00b68aae6a89b34238b12 (diff)
downloademacs-dc6c0edad789a8aab129ae12b8f064d0e912cca7.tar.gz
Revert introduction of isearch-filter-predicates.
Rely on add-function instead. * lisp/loadup.el: Preload nadvice. * lisp/isearch.el (isearch-filter-predicates): Rename it back to isearch-filter-predicate. (isearch-message-prefix): Use advice-function-mapc and advice properties to get the isearch-message-prefix. (isearch-search, isearch-lazy-highlight-search): Revert to funcall instead of run-hook-with-args-until-failure. (isearch-filter-visible): Not obsolete any more. * lisp/replace.el (perform-replace): Revert to funcall instead of run-hook-with-args-until-failure. * lisp/wdired.el (wdired-change-to-wdired-mode): Use add-function. * lisp/dired-aux.el (dired-isearch-filenames-mode): Rename from dired-isearch-filenames-toggle; make it into a proper minor mode. Use add/remove-function. (dired-isearch-filenames-setup, dired-isearch-filenames-end): Call the minor-mode rather than add/remove-hook. (dired-isearch-filter-filenames): Remove isearch-message-prefix property. * lisp/info.el (Info--search-loop): New function, extracted from Info-search. Funcall isearch-filter-predicate instead of run-hook-with-args-until-failure isearch-filter-predicates. (Info-search): Use it. (Info-mode): Use isearch-filter-predicate instead of isearch-filter-predicates. * src/lisp.mk (lisp): Add nadvice.elc. * lib-src/makefile.w32-in (lisp2): Add nadvice.elc. Fixes: debbugs:14714
Diffstat (limited to 'lisp/dired-aux.el')
-rw-r--r--lisp/dired-aux.el28
1 files changed, 14 insertions, 14 deletions
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 7cb63f6b012..c12ac068689 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -2491,18 +2491,21 @@ a file name. Otherwise, it searches the whole buffer without restrictions."
:group 'dired
:version "23.1")
-(defun dired-isearch-filenames-toggle ()
+(define-minor-mode dired-isearch-filenames-mode
"Toggle file names searching on or off.
When on, Isearch skips matches outside file names using the predicate
`dired-isearch-filter-filenames' that matches only at file names.
When off, it uses the original predicate."
- (interactive)
- (setq isearch-filter-predicates
- (if (memq 'dired-isearch-filter-filenames isearch-filter-predicates)
- (delq 'dired-isearch-filter-filenames isearch-filter-predicates)
- (cons 'dired-isearch-filter-filenames isearch-filter-predicates)))
- (setq isearch-success t isearch-adjusted t)
- (isearch-update))
+ nil nil nil
+ (if dired-isearch-filenames-mode
+ (add-function :before-while (local 'isearch-filter-predicate)
+ #'dired-isearch-filter-filenames
+ '((isearch-message-prefix . "filename ")))
+ (remove-function (local 'isearch-filter-predicate)
+ #'dired-isearch-filter-filenames))
+ (when isearch-mode
+ (setq isearch-success t isearch-adjusted t)
+ (isearch-update)))
;;;###autoload
(defun dired-isearch-filenames-setup ()
@@ -2511,15 +2514,14 @@ Intended to be added to `isearch-mode-hook'."
(when (or (eq dired-isearch-filenames t)
(and (eq dired-isearch-filenames 'dwim)
(get-text-property (point) 'dired-filename)))
- (define-key isearch-mode-map "\M-sff" 'dired-isearch-filenames-toggle)
- (add-hook 'isearch-filter-predicates 'dired-isearch-filter-filenames nil t)
+ (define-key isearch-mode-map "\M-sff" 'dired-isearch-filenames-mode)
+ (dired-isearch-filenames-mode 1)
(add-hook 'isearch-mode-end-hook 'dired-isearch-filenames-end nil t)))
(defun dired-isearch-filenames-end ()
"Clean up the Dired file name search after terminating isearch."
- (setq isearch-message-prefix-add nil)
(define-key isearch-mode-map "\M-sff" nil)
- (remove-hook 'isearch-filter-predicates 'dired-isearch-filter-filenames t)
+ (dired-isearch-filenames-mode -1)
(remove-hook 'isearch-mode-end-hook 'dired-isearch-filenames-end t))
(defun dired-isearch-filter-filenames (beg end)
@@ -2531,8 +2533,6 @@ name (has the text property `dired-filename')."
'dired-filename nil)
t))
-(put 'dired-isearch-filter-filenames 'isearch-message-prefix "filename ")
-
;;;###autoload
(defun dired-isearch-filenames ()
"Search for a string using Isearch only in file names in the Dired buffer."