Fix a problem with restarting 'tags-search'

* lisp/progmodes/etags.el (tags-search, tags-query-replace): Link
to 'fileloop-continue' instead of 'tags-loop-continue', for
continuing TAGS-based search/replace commands.

* lisp/fileloop.el (fileloop-continue): Reset
'switch-to-buffer-preserve-window-point' to nil when switching to
another buffer, so as to make sure a new search always restarts
from point-min in each buffer it searches.  (Bug#48628)
This commit is contained in:
Eli Zaretskii 2021-06-06 15:29:18 +03:00
parent 0f9d8c9381
commit fc37483617
2 changed files with 4 additions and 3 deletions

View file

@ -171,7 +171,8 @@ operating on the next file and nil otherwise."
(goto-char pos))
(push-mark original-point t))
(switch-to-buffer (current-buffer))
(let (switch-to-buffer-preserve-window-point)
(switch-to-buffer (current-buffer)))
;; Now operate on the file.
;; If value is non-nil, continue to scan the next file.

View file

@ -1808,7 +1808,7 @@ argument is passed to `next-file', which see)."
(defun tags-search (regexp &optional files)
"Search through all files listed in tags table for match for REGEXP.
Stops when a match is found.
To continue searching for next match, use command \\[tags-loop-continue].
To continue searching for next match, use the command \\[fileloop-continue].
If FILES if non-nil should be a list or an iterator returning the
files to search. The search will be restricted to these files.
@ -1834,7 +1834,7 @@ Also see the documentation of the `tags-file-name' variable."
"Do `query-replace-regexp' of FROM with TO on all files listed in tags table.
Third arg DELIMITED (prefix arg) means replace only word-delimited matches.
If you exit (\\[keyboard-quit], RET or q), you can resume the query replace
with the command \\[tags-loop-continue].
with the command \\[fileloop-continue].
For non-interactive use, superseded by `fileloop-initialize-replace'."
(declare (advertised-calling-convention (from to &optional delimited) "27.1"))
(interactive (query-replace-read-args "Tags query replace (regexp)" t t))