diff options
Diffstat (limited to 'lisp/replace.el')
-rw-r--r-- | lisp/replace.el | 64 |
1 files changed, 31 insertions, 33 deletions
diff --git a/lisp/replace.el b/lisp/replace.el index 8d8d9fc7af5..32c170430b9 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -9,7 +9,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 3, or (at your option) +;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, @@ -1408,38 +1408,36 @@ make, or the user didn't cancel the call." (or map (setq map query-replace-map)) (and query-flag minibuffer-auto-raise (raise-frame (window-frame (minibuffer-window)))) - (let ((nocasify (not (and case-fold-search case-replace - (string-equal from-string - (downcase from-string))))) - (case-fold-search (and case-fold-search - (string-equal from-string - (downcase from-string)))) - (literal (or (not regexp-flag) (eq regexp-flag 'literal))) - (search-function (if regexp-flag 're-search-forward 'search-forward)) - (search-string from-string) - (real-match-data nil) ; the match data for the current match - (next-replacement nil) - ;; This is non-nil if we know there is nothing for the user - ;; to edit in the replacement. - (noedit nil) - (keep-going t) - (stack nil) - (replace-count 0) - (nonempty-match nil) - - ;; If non-nil, it is marker saying where in the buffer to stop. - (limit nil) - - ;; Data for the next match. If a cons, it has the same format as - ;; (match-data); otherwise it is t if a match is possible at point. - (match-again t) - - (message - (if query-flag - (apply 'propertize - (substitute-command-keys - "Query replacing %s with %s: (\\<query-replace-map>\\[help] for help) ") - minibuffer-prompt-properties)))) + (let* ((case-fold-search + (and case-fold-search + (isearch-no-upper-case-p from-string regexp-flag))) + (nocasify (not (and case-replace case-fold-search))) + (literal (or (not regexp-flag) (eq regexp-flag 'literal))) + (search-function (if regexp-flag 're-search-forward 'search-forward)) + (search-string from-string) + (real-match-data nil) ; The match data for the current match. + (next-replacement nil) + ;; This is non-nil if we know there is nothing for the user + ;; to edit in the replacement. + (noedit nil) + (keep-going t) + (stack nil) + (replace-count 0) + (nonempty-match nil) + + ;; If non-nil, it is marker saying where in the buffer to stop. + (limit nil) + + ;; Data for the next match. If a cons, it has the same format as + ;; (match-data); otherwise it is t if a match is possible at point. + (match-again t) + + (message + (if query-flag + (apply 'propertize + (substitute-command-keys + "Query replacing %s with %s: (\\<query-replace-map>\\[help] for help) ") + minibuffer-prompt-properties)))) ;; If region is active, in Transient Mark mode, operate on region. (when start |