diff options
author | Juri Linkov <juri@jurta.org> | 2004-09-03 20:32:57 +0000 |
---|---|---|
committer | Juri Linkov <juri@jurta.org> | 2004-09-03 20:32:57 +0000 |
commit | 8adab2b5adf1529f597b9e03207176839800a6af (patch) | |
tree | 5342628eb48e34719b1e46c09edaa9ae151a5490 /lisp | |
parent | 27904da6c627acc579a06c05fda9a7458a84d9c8 (diff) | |
download | emacs-8adab2b5adf1529f597b9e03207176839800a6af.tar.gz |
(isearch-toggle-regexp): Set `isearch-success' and `isearch-adjusted' to `t'.
(isearch-toggle-case-fold): Set `isearch-success' to `t'.
(isearch-message-prefix): Add "pending" for isearch-adjusted.
(isearch-other-meta-char): Restore isearch-point unconditionally.
(isearch-query-replace): Add new arg `regexp-flag' and use it.
Set point to start of match if region is not active in transient
mark mode (to include the current match to region boundaries).
Push the search string to `query-replace-from-history-variable'.
Add prompt "Query replace regexp" for isearch-regexp.
Add region beginning/end as last arguments of `perform-replace.'
(isearch-query-replace-regexp): Replace code by the call to
`isearch-query-replace' with arg `t'.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/isearch.el | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/lisp/isearch.el b/lisp/isearch.el index b8865693d0b..9d1e56aaf6e 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1088,6 +1088,7 @@ Use `isearch-exit' to quit without signaling." (interactive) (setq isearch-regexp (not isearch-regexp)) (if isearch-regexp (setq isearch-word nil)) + (setq isearch-success t isearch-adjusted t) (isearch-update)) (defun isearch-toggle-case-fold () @@ -1100,34 +1101,39 @@ Use `isearch-exit' to quit without signaling." (isearch-message-prefix nil nil isearch-nonincremental) isearch-message (if isearch-case-fold-search "in" ""))) - (setq isearch-adjusted t) + (setq isearch-success t isearch-adjusted t) (sit-for 1) (isearch-update)) -(defun isearch-query-replace () +(defun isearch-query-replace (&optional regexp-flag) "Start query-replace with string to replace from last search string." (interactive) (barf-if-buffer-read-only) + (if regexp-flag (setq isearch-regexp t)) (let ((case-fold-search isearch-case-fold-search)) (isearch-done) (isearch-clean-overlays) - (and isearch-forward isearch-other-end (goto-char isearch-other-end)) + (if (and (< isearch-other-end (point)) + (not (and transient-mark-mode mark-active + (< isearch-opoint (point))))) + (goto-char isearch-other-end)) + (set query-replace-from-history-variable + (cons isearch-string + (symbol-value query-replace-from-history-variable))) (perform-replace isearch-string - (query-replace-read-to isearch-string "Query replace" isearch-regexp) - t isearch-regexp isearch-word))) + (query-replace-read-to + isearch-string + (if isearch-regexp "Query replace regexp" "Query replace") + isearch-regexp) + t isearch-regexp isearch-word nil nil + (if (and transient-mark-mode mark-active) (region-beginning)) + (if (and transient-mark-mode mark-active) (region-end))))) (defun isearch-query-replace-regexp () "Start query-replace-regexp with string to replace from last search string." (interactive) - (let ((query-replace-interactive t) - (case-fold-search isearch-case-fold-search)) - ;; Put search string into the right ring - (setq isearch-regexp t) - (isearch-done) - (isearch-clean-overlays) - (and isearch-forward isearch-other-end (goto-char isearch-other-end)) - (call-interactively 'query-replace-regexp))) + (isearch-query-replace t)) (defun isearch-delete-char () @@ -1620,8 +1626,7 @@ Isearch mode." (let ((ab-bel (isearch-string-out-of-window isearch-point))) (if ab-bel (isearch-back-into-window (eq ab-bel 'above) isearch-point) - (or (eq (point) isearch-point) - (goto-char isearch-point)))) + (goto-char isearch-point))) (isearch-update)) (search-exit-option (let (window) @@ -1895,6 +1900,7 @@ If there is no completion possible, say so and continue searching." ;; If currently failing, display no ellipsis. (or isearch-success (setq ellipsis nil)) (let ((m (concat (if isearch-success "" "failing ") + (if isearch-adjusted "pending " "") (if (and isearch-wrapped (not isearch-wrap-function) (if isearch-forward |