GNU bug report logs - #32630
26; [REGRESSION] `dired-query' key help (`help-form-show')

Previous Next

Package: emacs;

Reported by: Drew Adams <drew.adams <at> oracle.com>

Date: Tue, 4 Sep 2018 01:05:01 UTC

Severity: minor

Done: Michael Heerdegen <michael_heerdegen <at> web.de>

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 32630 in the body.
You can then email your comments to 32630 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#32630; Package emacs. (Tue, 04 Sep 2018 01:05:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Drew Adams <drew.adams <at> oracle.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 04 Sep 2018 01:05:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 26; [REGRESSION] `dired-query' key help (`help-form-show')
Date: Mon, 3 Sep 2018 18:04:23 -0700 (PDT)
[Message part 1 (text/plain, inline)]
This is a regression introduced in Emacs 26.1 - no problem before that.

emacs -Q

1. In a Dired buffer (directory `toto', say) create a subdir `foo', mark
two files in `toto', and then use `C' to copy those two files from `toto' to
`foo'.

2. Use `M' with `a-w' to make the copies in `foo' read-only.

3. Turn on `debug-on-error'.

4. In `toto', use `C' again to try to copy the same marked files.

Let's say that the first file to copy is `a'.  You see this prompt:

   Overwrite `/the/path/to/toto/foo/a'? [Type yn!q or C-h]

Use `C-h' to try to see the key help.  This happens:

`help-form-show' raises an error: (void-variable to).

It seems like the "to" in the prompt is being evaluated as a variable.
Perhaps there is a missing quote somewhere.

You can no longer use any keys at this point, including mouse actions.
(Except you can use `q' to quit the debugger.)

Because I cannot use keys at that point I cannot select the text in the debugger to show it. Instead, see attached screenshot (file names redacted).

In GNU Emacs 26.1 (build 1, x86_64-w64-mingw32)
 of 2018-05-30
Repository revision: 07f8f9bc5a51f5aa94eb099f3e15fbe0c20ea1ea
Windowing system distributor `Microsoft Corp.', version 10.0.16299
Configured using:
 `configure --without-dbus --host=x86_64-w64-mingw32
 --without-compress-install 'CFLAGS=-O2 -static -g3''
[throw-emacs-bug-dired-query.png (image/png, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#32630; Package emacs. (Tue, 04 Sep 2018 20:10:01 GMT) Full text and rfc822 format available.

Message #8 received at 32630 <at> debbugs.gnu.org (full text, mbox):

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 32630 <at> debbugs.gnu.org
Subject: Re: bug#32630: 26;
 [REGRESSION] `dired-query' key help (`help-form-show')
Date: Tue, 04 Sep 2018 22:09:39 +0200
[Message part 1 (text/plain, inline)]
Drew Adams <drew.adams <at> oracle.com> writes:

> It seems like the "to" in the prompt is being evaluated as a variable.
> Perhaps there is a missing quote somewhere.

It's not the "to" in the prompt but a local variable in
`dired-create-files'.  It's indeed a quoting problem.  It existed for a
long time but I think it was originally negated by dynamic binding mode
until dired-aux was changed to lexical binding.  Here is a trivial fix:

[0001-FIX-bug-32630.patch (text/x-diff, inline)]
From 5ae01a1079cac88cdf6b38f419a6f8b1b874c97c Mon Sep 17 00:00:00 2001
From: Michael Heerdegen <michael_heerdegen <at> web.de>
Date: Tue, 4 Sep 2018 22:00:11 +0200
Subject: [PATCH] FIX bug#32630

---
 lisp/dired-aux.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 21ee50ce5c..dc34037be9 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1731,7 +1731,7 @@ dired-create-files
           (let* ((overwrite (file-exists-p to))
                  (dired-overwrite-confirmed ; for dired-handle-overwrite
                   (and overwrite
-                       (let ((help-form '(format-message "\
+                       (let ((help-form (format-message "\
 Type SPC or `y' to overwrite file `%s',
 DEL or `n' to skip to next,
 ESC or `q' to not overwrite any of the remaining files,
-- 
2.18.0

[Message part 3 (text/plain, inline)]

Michael.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#32630; Package emacs. (Fri, 12 Oct 2018 14:45:01 GMT) Full text and rfc822 format available.

Message #11 received at 32630 <at> debbugs.gnu.org (full text, mbox):

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: 32630 <at> debbugs.gnu.org
Subject: Re: bug#32630: 26;
 [REGRESSION] `dired-query' key help (`help-form-show')
Date: Fri, 12 Oct 2018 16:44:34 +0200
Michael Heerdegen <michael_heerdegen <at> web.de> writes:

>  lisp/dired-aux.el | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
> index 21ee50ce5c..dc34037be9 100644
> --- a/lisp/dired-aux.el
> +++ b/lisp/dired-aux.el
> @@ -1731,7 +1731,7 @@ dired-create-files
>            (let* ((overwrite (file-exists-p to))
>                   (dired-overwrite-confirmed ; for dired-handle-overwrite
>                    (and overwrite
> -                       (let ((help-form '(format-message "\
> +                       (let ((help-form (format-message "\
>  Type SPC or `y' to overwrite file `%s',
>  DEL or `n' to skip to next,
>  ESC or `q' to not overwrite any of the remaining files,

To which branch should I install this fix?


Thanks,

Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#32630; Package emacs. (Fri, 12 Oct 2018 15:09:02 GMT) Full text and rfc822 format available.

Message #14 received at 32630 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Michael Heerdegen <michael_heerdegen <at> web.de>
Cc: 32630 <at> debbugs.gnu.org
Subject: Re: bug#32630: 26;
 [REGRESSION] `dired-query' key help (`help-form-show')
Date: Fri, 12 Oct 2018 18:08:28 +0300
> From: Michael Heerdegen <michael_heerdegen <at> web.de>
> Date: Fri, 12 Oct 2018 16:44:34 +0200
> 
> > diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
> > index 21ee50ce5c..dc34037be9 100644
> > --- a/lisp/dired-aux.el
> > +++ b/lisp/dired-aux.el
> > @@ -1731,7 +1731,7 @@ dired-create-files
> >            (let* ((overwrite (file-exists-p to))
> >                   (dired-overwrite-confirmed ; for dired-handle-overwrite
> >                    (and overwrite
> > -                       (let ((help-form '(format-message "\
> > +                       (let ((help-form (format-message "\
> >  Type SPC or `y' to overwrite file `%s',
> >  DEL or `n' to skip to next,
> >  ESC or `q' to not overwrite any of the remaining files,
> 
> To which branch should I install this fix?

To emacs-26, please.

Thanks.




Reply sent to Michael Heerdegen <michael_heerdegen <at> web.de>:
You have taken responsibility. (Sat, 20 Oct 2018 16:59:02 GMT) Full text and rfc822 format available.

Notification sent to Drew Adams <drew.adams <at> oracle.com>:
bug acknowledged by developer. (Sat, 20 Oct 2018 16:59:02 GMT) Full text and rfc822 format available.

Message #19 received at 32630-done <at> debbugs.gnu.org (full text, mbox):

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 32630-done <at> debbugs.gnu.org
Subject: Re: bug#32630: 26;
 [REGRESSION] `dired-query' key help (`help-form-show')
Date: Sat, 20 Oct 2018 18:58:16 +0200
Eli Zaretskii <eliz <at> gnu.org> writes:

> > > diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
> > > index 21ee50ce5c..dc34037be9 100644
> > > --- a/lisp/dired-aux.el
> > > +++ b/lisp/dired-aux.el
> > > @@ -1731,7 +1731,7 @@ dired-create-files
> > >            (let* ((overwrite (file-exists-p to))
> > >                   (dired-overwrite-confirmed ; for dired-handle-overwrite
> > >                    (and overwrite
> > > -                       (let ((help-form '(format-message "\
> > > +                       (let ((help-form (format-message "\
> > >  Type SPC or `y' to overwrite file `%s',
> > >  DEL or `n' to skip to next,
> > >  ESC or `q' to not overwrite any of the remaining files,
> > 
> > To which branch should I install this fix?
>
> To emacs-26, please.

Thanks.  Committed as 1531bca "Fix help-form binding in
dired-create-files" to emacs-26.


Michael.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 18 Nov 2018 12:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 158 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.