To customize possible responses, change the \"bindings\" in `query-replace-map'."
(interactive (let ((common
- (query-replace-read-args
+ (query-replace-read-args
(if (and transient-mark-mode mark-active)
"Query replace in region"
"Query replace")
Use \\[repeat-complex-command] after this command for details."
(interactive
(let ((common
- (query-replace-read-args
+ (query-replace-read-args
(if (and transient-mark-mode mark-active)
"Query replace regexp in region"
"Query replace regexp")
and TO-STRING is also null.)"
(interactive
(let ((common
- (query-replace-read-args
+ (query-replace-read-args
(if (and transient-mark-mode mark-active)
"Replace string in region"
"Replace string")
which will run faster and will not set the mark or print anything."
(interactive
(let ((common
- (query-replace-read-args
+ (query-replace-read-args
(if (and transient-mark-mode mark-active)
- "Replace regexp in region"
- "Replace regexp")
+ "Replace regexp in region"
+ "Replace regexp")
t)))
(list (nth 0 common) (nth 1 common) (nth 2 common)
(if (and transient-mark-mode mark-active)
(make-local-variable 'occur-revert-arguments)
(add-hook 'change-major-mode-hook 'font-lock-defontify nil t)
(setq next-error-function 'occur-next-error)
- (run-hooks 'occur-mode-hook))
+ (run-mode-hooks 'occur-mode-hook))
(defun occur-revert-function (ignore1 ignore2)
"Handle `revert-buffer' for Occur mode buffers."
(setq occur-buf (get-buffer-create buf-name))
(with-current-buffer occur-buf
- (setq buffer-read-only nil)
(occur-mode)
- (erase-buffer)
- (let ((count (occur-engine
- regexp active-bufs occur-buf
- (or nlines list-matching-lines-default-context-lines)
- (and case-fold-search
- (isearch-no-upper-case-p regexp t))
- list-matching-lines-buffer-name-face
- nil list-matching-lines-face t)))
- (let* ((bufcount (length active-bufs))
- (diff (- (length bufs) bufcount)))
- (message "Searched %d buffer%s%s; %s match%s for `%s'"
- bufcount (if (= bufcount 1) "" "s")
- (if (zerop diff) "" (format " (%d killed)" diff))
- (if (zerop count) "no" (format "%d" count))
- (if (= count 1) "" "es")
- regexp))
- (setq occur-revert-arguments (list regexp nlines bufs)
- buffer-read-only t)
- (if (> count 0)
- (progn
- (display-buffer occur-buf)
- (setq next-error-last-buffer occur-buf))
- (kill-buffer occur-buf)))
- (run-hooks 'occur-hook))))
+ (let ((inhibit-read-only t))
+ (erase-buffer)
+ (let ((count (occur-engine
+ regexp active-bufs occur-buf
+ (or nlines list-matching-lines-default-context-lines)
+ (and case-fold-search
+ (isearch-no-upper-case-p regexp t))
+ list-matching-lines-buffer-name-face
+ nil list-matching-lines-face t)))
+ (let* ((bufcount (length active-bufs))
+ (diff (- (length bufs) bufcount)))
+ (message "Searched %d buffer%s%s; %s match%s for `%s'"
+ bufcount (if (= bufcount 1) "" "s")
+ (if (zerop diff) "" (format " (%d killed)" diff))
+ (if (zerop count) "no" (format "%d" count))
+ (if (= count 1) "" "es")
+ regexp))
+ (setq occur-revert-arguments (list regexp nlines bufs))
+ (if (> count 0)
+ (progn
+ (display-buffer occur-buf)
+ (setq next-error-last-buffer occur-buf))
+ (kill-buffer occur-buf)))
+ (run-hooks 'occur-hook))
+ (setq buffer-read-only t)
+ (set-buffer-modified-p nil))))
(defun occur-engine-add-prefix (lines)
(mapcar
(defun occur-engine (regexp buffers out-buf nlines case-fold-search
title-face prefix-face match-face keep-props)
(with-current-buffer out-buf
- (setq buffer-read-only nil)
(let ((globalcount 0)
(coding nil))
;; Map over all the buffers
(and (eq new reuse)
(eq (null integers) (markerp (car reuse)))
new)))
- (match-data integers
- (prog1 reuse
- (while reuse
- (if (markerp (car reuse))
- (set-marker (car reuse) nil))
- (setq reuse (cdr reuse)))))))
+ (match-data integers reuse t)))
(defun replace-match-maybe-edit (newtext fixedcase literal noedit match-data)
"Make a replacement with `replace-match', editing `\\?'.
(while (string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\\\?\\)"
newtext)
(setq newtext
- (read-input "Edit replacement string: "
- (prog1
- (cons
- (replace-match "" t t newtext 3)
- (1+ (match-beginning 3)))
- (setq match-data
- (replace-match-data
- nil match-data match-data))))
+ (read-string "Edit replacement string: "
+ (prog1
+ (cons
+ (replace-match "" t t newtext 3)
+ (1+ (match-beginning 3)))
+ (setq match-data
+ (replace-match-data
+ nil match-data match-data))))
noedit nil)))
(set-match-data match-data)
(replace-match newtext fixedcase literal)
nil real-match-data
real-match-data)
next-replacement
- (read-input "Edit replacement string: "
- next-replacement)
+ (read-string "Edit replacement string: "
+ next-replacement)
noedit nil)
(if replaced
(set-match-data real-match-data)