diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-08-05 14:05:46 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-08-05 14:05:46 -0400 |
commit | dc6c0edad789a8aab129ae12b8f064d0e912cca7 (patch) | |
tree | c1a48c60a90799f3a05b7db15ac66bd2111bd78e /lisp/dired-aux.el | |
parent | 98a428c15ad48f8579b00b68aae6a89b34238b12 (diff) | |
download | emacs-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.el | 28 |
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." |