GNU bug report logs - #67196
M-: uses a wrong value of debug-on-error when it is nil.

Previous Next

Package: emacs;

Reported by: Alan Mackenzie <acm <at> muc.de>

Date: Wed, 15 Nov 2023 17:03:02 UTC

Severity: normal

Done: Alan Mackenzie <acm <at> muc.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Alan Mackenzie <acm <at> muc.de>
Subject: bug#67196: closed (Re: M-: uses a wrong value of debug-on-error
 when it is nil.)
Date: Thu, 24 Oct 2024 21:35:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#67196: M-: uses a wrong value of debug-on-error when it is nil.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 67196 <at> debbugs.gnu.org.

-- 
67196: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67196
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Alan Mackenzie <acm <at> muc.de>
To: 67196-done <at> debbugs.gnu.org
Cc: acm <at> muc.de
Subject: Re: M-: uses a wrong value of debug-on-error when it is nil.
Date: Thu, 24 Oct 2024 21:33:41 +0000
On Wed, Nov 15, 2023 at 13:48:40 +0000, Alan Mackenzie wrote:
> Hello, Emacs.

> On the master branch (and probably any recent Emacs):

> (i) emacs -Q
> (ii) C-h v debug-on-error RET
> (iii) M-: debug-on-error RET

> From (ii) it will be seen that debug-on-error's value is nil.
> (iii) wrongly reports that its value is t.  This is a bug.

> #########################################################################

> What is happening here is that eval-expression binds debug-on-error to
> an uninterned symbol called "t", so that d-o-e will be set to non-nil
> for the evaluation of the coming form.

> This has the unwanted side effect of ignoring the actual value of d-o-e
> in forms which use it.  For example, if the variable is set to a list of
> error symbols, this value gets ignored on evaluating a form with M-:.

This bug was fixed by the following commit:

commit 7959a63ce258c90eb3c7947ab3318c5531eb37d9
Author: Stefan Monnier <monnier <at> iro.umontreal.ca>
Date:   Mon Dec 18 23:47:56 2023 -0500

    (eval-expression): Fix bug#67196

by using the newly written handler-bind.

-- 
Alan Mackenzie (Nuremberg, Germany).

[Message part 3 (message/rfc822, inline)]
From: Alan Mackenzie <acm <at> muc.de>
To: bug-gnu-emacs <at> gnu.org
Subject: M-: uses a wrong value of debug-on-error when it is nil.
Date: Wed, 15 Nov 2023 13:48:40 +0000
Hello, Emacs.

On the master branch (and probably any recent Emacs):

(i) emacs -Q
(ii) C-h v debug-on-error RET
(iii) M-: debug-on-error RET

From (ii) it will be seen that debug-on-error's value is nil.
(iii) wrongly reports that its value is t.  This is a bug.

#########################################################################

What is happening here is that eval-expression binds debug-on-error to
an uninterned symbol called "t", so that d-o-e will be set to non-nil
for the evaluation of the coming form.

This has the unwanted side effect of ignoring the actual value of d-o-e
in forms which use it.  For example, if the variable is set to a list of
error symbols, this value gets ignored on evaluating a form with M-:.

-- 
Alan Mackenzie (Nuremberg, Germany).



This bug report was last modified 211 days ago.

Previous Next


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