GNU bug report logs -
#23284
25.0.92; Cannot input 'Y' with dired-do-query-replace-regexp
Previous Next
Reported by: Kévin Le Gouguec <kevin.legouguec <at> gmail.com>
Date: Wed, 13 Apr 2016 20:51:02 UTC
Severity: normal
Tags: fixed
Found in version 25.0.92
Fixed in version 25.1
Done: Dmitry Gutov <dgutov <at> yandex.ru>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 23284 in the body.
You can then email your comments to 23284 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Wed, 13 Apr 2016 20:51:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Kévin Le Gouguec <kevin.legouguec <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Wed, 13 Apr 2016 20:51:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
I cannot get dired-do-query-replace-regexp to replace all remaining
matches in all remaining buffers. To reproduce:
$ for f in bar baz; do echo foo > $f; done
$ emacs -Q . # works with -nw as well
m m (mark bar and baz)
Q oo RET aa RET (replace "foo" with "faa")
Y
At this point, with Emacs 24-5, 'Y' would, as the help suggests,
"replace all remaining matches in all remaining buffers with no more
questions".
With Emacs 25, 'Y' replaces one match in file bar, then leaves point
after "faa". File baz is left untouched.
There is also an *xref* buffer that pops up, with which I cannot do
anything:
- inputting 'g' yields "revert-buffer--default: Buffer does not seem to
be associated with any file";
- inputting 'r oo RET aa RET' yields "user-error: Search results out of
date".
If there is anything I can add to help reproduce and/or debug, please
let me know.
Thank you for your time!
Kévin Le Gouguec
In GNU Emacs 25.0.92.1 (i686-pc-linux-gnu, GTK+ Version 3.14.5)
of 2016-03-12 built on nc10-laptop
Windowing system distributor 'The X.Org Foundation', version 11.0.11604000
System Description: BunsenLabs GNU/Linux 8.4 (Hydrogen)
Configured using:
'configure --with-xwidgets --with-x-toolkit=gtk3'
Configured features:
XPM JPEG TIFF GIF PNG SOUND DBUS GSETTINGS NOTIFY LIBXML2 FREETYPE XFT
ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XWIDGETS
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
mml-sec epg epg-config gnus-util mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util help-fns help-mode easymenu cl-loaddefs pcase
cl-lib mail-prsvr mail-utils time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core frame cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
dbusbind inotify dynamic-setting system-font-setting font-render-setting
xwidget-internal move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)
Memory information:
((conses 8 86545 7234)
(symbols 24 19614 0)
(miscs 20 45 138)
(strings 16 14179 3839)
(string-bytes 1 410620)
(vectors 8 12273)
(vector-slots 4 433725 4118)
(floats 8 167 42)
(intervals 28 190 8)
(buffers 520 11)
(heap 1024 41754 803))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Wed, 13 Apr 2016 20:57:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 23284 <at> debbugs.gnu.org (full text, mbox):
I wrote dired-do-query-replace-regexp in the title, where I obviously
meant dired-do-find-regexp-and-replace. The former was the name of the
Dired function bound to Q in Emacs 24-5 (which works fine); the latter
is the name of the same function in Emacs 25 (where I experience the
bug).
Sorry for the confusion.
Added indication that bug 23284 blocks19759
Request was from
Glenn Morris <rgm <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Wed, 13 Apr 2016 21:56:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Fri, 15 Apr 2016 08:32:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 23284 <at> debbugs.gnu.org (full text, mbox):
Kévin Le Gouguec <kevin.legouguec <at> gmail.com> writes:
> I cannot get dired-do-query-replace-regexp to replace all
> remaining matches in all remaining buffers. To reproduce:
>
> $ for f in bar baz; do echo foo > $f; done $ emacs -Q .
> # works with -nw as well
>
> m m (mark bar and baz) Q oo RET aa RET
> (replace "foo" with "faa") Y
>
> At this point, with Emacs 24-5, 'Y' would, as the help suggests,
> "replace all remaining matches in all remaining buffers with no
> more questions".
>
> With Emacs 25, 'Y' replaces one match in file bar, then leaves
> point after "faa". File baz is left untouched.
>
> There is also an *xref* buffer that pops up, with which I cannot
> do anything:
>
> - inputting 'g' yields "revert-buffer--default: Buffer does not
> seem to
> be associated with any file";
> - inputting 'r oo RET aa RET' yields "user-error: Search results
> out of
> date".
Reproduced on emacs-25 branch as at commit 24b87a1d.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Sat, 16 Apr 2016 10:04:01 GMT)
Full text and
rfc822 format available.
Message #16 received at 23284 <at> debbugs.gnu.org (full text, mbox):
> From: Alexis <flexibeast <at> gmail.com>
> Date: Fri, 15 Apr 2016 18:31:44 +1000
> Cc: 23284 <at> debbugs.gnu.org
>
> Kévin Le Gouguec <kevin.legouguec <at> gmail.com> writes:
>
> > I cannot get dired-do-query-replace-regexp to replace all
> > remaining matches in all remaining buffers. To reproduce:
> >
> > $ for f in bar baz; do echo foo > $f; done $ emacs -Q .
> > # works with -nw as well
> >
> > m m (mark bar and baz) Q oo RET aa RET
> > (replace "foo" with "faa") Y
> >
> > At this point, with Emacs 24-5, 'Y' would, as the help suggests,
> > "replace all remaining matches in all remaining buffers with no
> > more questions".
> >
> > With Emacs 25, 'Y' replaces one match in file bar, then leaves
> > point after "faa". File baz is left untouched.
> >
> > There is also an *xref* buffer that pops up, with which I cannot
> > do anything:
> >
> > - inputting 'g' yields "revert-buffer--default: Buffer does not
> > seem to
> > be associated with any file";
> > - inputting 'r oo RET aa RET' yields "user-error: Search results
> > out of
> > date".
>
> Reproduced on emacs-25 branch as at commit 24b87a1d.
Dmitry, can you please look into this?
Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Sat, 16 Apr 2016 10:58:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 23284 <at> debbugs.gnu.org (full text, mbox):
On 04/16/2016 01:02 PM, Eli Zaretskii wrote:
> Dmitry, can you please look into this?
Yes, of course. It's on my list.
Kévin, thanks for the report.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Thu, 05 May 2016 00:44:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 23284 <at> debbugs.gnu.org (full text, mbox):
On 04/13/2016 11:49 PM, Kévin Le Gouguec wrote:
> With Emacs 25, 'Y' replaces one match in file bar, then leaves point
> after "faa". File baz is left untouched.
This should be fixed now in emacs-25 with commit
922c7a3e48e649ad67bd12b1f83343b730dd1bc4. Thanks again for the report.
> - inputting 'r oo RET aa RET' yields "user-error: Search results out
> of date".
I've changed this to simply use `message' for now. The query-replace
will skip over outdated xrefs and offer to replace the up-to-date ones.
We've previously discussed visualizing and automatically skipping the
ones you've already answered the question about, but I'm not 100% sure
yet which approach to use, so it's probably out of scope for 25.1.
> There is also an *xref* buffer that pops up, with which I cannot do
> anything:
>
> - inputting 'g' yields "revert-buffer--default: Buffer does not seem to
> be associated with any file";
Eli, should we consider this complaint a 25.1 blocker as well? It should
be reasonably easy to resolve/implement.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Thu, 05 May 2016 15:55:02 GMT)
Full text and
rfc822 format available.
Message #25 received at 23284 <at> debbugs.gnu.org (full text, mbox):
> From: Dmitry Gutov <dgutov <at> yandex.ru>
> Date: Thu, 5 May 2016 03:43:17 +0300
>
> > There is also an *xref* buffer that pops up, with which I cannot do
> > anything:
> >
> > - inputting 'g' yields "revert-buffer--default: Buffer does not seem to
> > be associated with any file";
>
> Eli, should we consider this complaint a 25.1 blocker as well? It should
> be reasonably easy to resolve/implement.
I'm not sure. For starters, I don't think I understand how is this
related to the original problem, of getting the correct behavior after
typing "Y".
If it isn't related, then what exactly is the problem with 'g' in the
XREF buffer that would need to be solved for Emacs 25.1?
Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Thu, 05 May 2016 16:33:02 GMT)
Full text and
rfc822 format available.
Message #28 received at 23284 <at> debbugs.gnu.org (full text, mbox):
On 05/05/2016 06:54 PM, Eli Zaretskii wrote:
> I'm not sure. For starters, I don't think I understand how is this
> related to the original problem, of getting the correct behavior after
> typing "Y".
It's tangential.
> If it isn't related, then what exactly is the problem with 'g' in the
> XREF buffer that would need to be solved for Emacs 25.1?
That it doesn't do anything? :)
Which limits the usefulness of showing the xref buffer when doing
dired-do-find-regexp-and-replace, somewhat.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Thu, 05 May 2016 16:50:01 GMT)
Full text and
rfc822 format available.
Message #31 received at 23284 <at> debbugs.gnu.org (full text, mbox):
> Cc: kevin.legouguec <at> gmail.com, 23284 <at> debbugs.gnu.org
> From: Dmitry Gutov <dgutov <at> yandex.ru>
> Date: Thu, 5 May 2016 19:32:21 +0300
>
> > If it isn't related, then what exactly is the problem with 'g' in the
> > XREF buffer that would need to be solved for Emacs 25.1?
>
> That it doesn't do anything? :)
>
> Which limits the usefulness of showing the xref buffer when doing
> dired-do-find-regexp-and-replace, somewhat.
So you want to bind 'g' to a command that recomputes the xref buffer
to show only the remaining matches? If so, I don't think we must have
it on emacs-25, unless 'g' does already do similar things in other
commands that present an xref buffer.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Thu, 05 May 2016 16:56:02 GMT)
Full text and
rfc822 format available.
Message #34 received at 23284 <at> debbugs.gnu.org (full text, mbox):
On 05/05/2016 07:49 PM, Eli Zaretskii wrote:
> So you want to bind 'g' to a command that recomputes the xref buffer
> to show only the remaining matches?
No, to repeat the search, so that the results are up to date. If the
user answered `y' to all replacement prompts, then yes, the new results
will only include the remaining matches. Otherwise, they will also
include the skipped ones.
I could be handy to refresh the search results buffer after finishing
with replacements, just to get an overview of the ones the user skipped,
to make sure they didn't miss anything important.
> If so, I don't think we must have
> it on emacs-25, unless 'g' does already do similar things in other
> commands that present an xref buffer.
It will be a solution for all xref buffers, touching more or less all
commands that show them.
All right, not in emacs-25, then.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Thu, 05 May 2016 17:10:01 GMT)
Full text and
rfc822 format available.
Message #37 received at 23284 <at> debbugs.gnu.org (full text, mbox):
> Cc: kevin.legouguec <at> gmail.com, 23284 <at> debbugs.gnu.org
> From: Dmitry Gutov <dgutov <at> yandex.ru>
> Date: Thu, 5 May 2016 19:55:43 +0300
>
> > If so, I don't think we must have
> > it on emacs-25, unless 'g' does already do similar things in other
> > commands that present an xref buffer.
>
> It will be a solution for all xref buffers, touching more or less all
> commands that show them.
A good new feature.
> All right, not in emacs-25, then.
Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Fri, 06 May 2016 12:41:02 GMT)
Full text and
rfc822 format available.
Message #40 received at submit <at> debbugs.gnu.org (full text, mbox):
On Thu 05 May 2016, Eli Zaretskii wrote:
>> Cc: kevin.legouguec <at> gmail.com, 23284 <at> debbugs.gnu.org
>> From: Dmitry Gutov <dgutov <at> yandex.ru>
>> Date: Thu, 5 May 2016 19:55:43 +0300
>>
>> > If so, I don't think we must have
>> > it on emacs-25, unless 'g' does already do similar things in other
>> > commands that present an xref buffer.
>>
>> It will be a solution for all xref buffers, touching more or less all
>> commands that show them.
>
> A good new feature.
Perhaps implemented with a local binding of revert-buffer-function ?
This would give a natural meaning to revert-buffer in xref buffers.
AndyM
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Fri, 06 May 2016 12:45:02 GMT)
Full text and
rfc822 format available.
Message #43 received at 23284 <at> debbugs.gnu.org (full text, mbox):
On 05/06/2016 03:39 PM, Andy Moreton wrote:
> Perhaps implemented with a local binding of revert-buffer-function ?
Of course.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Sat, 07 May 2016 14:47:01 GMT)
Full text and
rfc822 format available.
Message #46 received at 23284 <at> debbugs.gnu.org (full text, mbox):
Thanks! I cloned the repository, checked emacs-25 out and compiled:
dired-do-find-regexp-and-replace now behaves just like
dired-do-query-replace-regexp, so the issue seems resolved!
To be very nitpicky, I still notice one difference (other than the xref
buffer popping up):
When dired-do-query-replace-regexp finishes, it prints "All files
processed" in the minibuffer. Looking at the *Messages* buffer, I see
that before that, it actually printed "Replaced n occurrence(s)" for
every file it visited.
dired-do-find-regexp-and-replace does not print "All files processed",
so all the user sees in the minibuffer is "Replaced n occurrence(s)",
where n is the number of matches in the last processed file.
It is pretty minor of course, although for a second it did make me doubt
whether all files had been processed.
My observations on the xref buffer were indeed unrelated to the problem.
I was just trying to showcase everything I could think of to work around
the bug, and hopefully, provide more symptoms to ease debugging.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#23284
; Package
emacs
.
(Sat, 07 May 2016 21:32:02 GMT)
Full text and
rfc822 format available.
Message #49 received at 23284 <at> debbugs.gnu.org (full text, mbox):
On 05/07/2016 05:46 PM, Kévin Le Gouguec wrote:
> dired-do-find-regexp-and-replace does not print "All files processed",
> so all the user sees in the minibuffer is "Replaced n occurrence(s)",
> where n is the number of matches in the last processed file.
>
> It is pretty minor of course, although for a second it did make me doubt
> whether all files had been processed.
Thanks for the feedback, I've added a similar message.
Added tag(s) fixed.
Request was from
Dmitry Gutov <dgutov <at> yandex.ru>
to
control <at> debbugs.gnu.org
.
(Sun, 08 May 2016 22:30:02 GMT)
Full text and
rfc822 format available.
bug marked as fixed in version 25.1, send any further explanations to
23284 <at> debbugs.gnu.org and Kévin Le Gouguec <kevin.legouguec <at> gmail.com>
Request was from
Dmitry Gutov <dgutov <at> yandex.ru>
to
control <at> debbugs.gnu.org
.
(Sun, 08 May 2016 22:30:03 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 06 Jun 2016 11:24:05 GMT)
Full text and
rfc822 format available.
This bug report was last modified 9 years and 93 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.