Subject: Re: bug#47784: 27.2: ses-header-row [PATCH INCLUDED]

From: Eli Zaretskii <[email-masked]>
Date: Wed, 21 Apr 2021 12:23:22 +0300

> From: Stefan Kangas <[email-masked]>
> Date: Tue, 20 Apr 2021 19:02:26 -0500
> Cc: Boruch Baum <[email-masked]>, [email-masked]
> 
> >> They avoid spawning a backtrace buffer when toggle-debug-on-error is set
> >> and the error is a user input error caught by a validation test within
> >> an `interactive' function call.
> >
> > I understand that, but the same is true for every call to 'error'
> > whenever debug-on-error is set.  Since by default debug-on-error is
> > NOT set, I don't think I agree with that part of the change.  (Why do
> > you even have that variable set non-nil?)
> 
> AFAIU, `user-error' is to be used when, according to its docstring:
> 
>     This is like ‘error’ except that a user error (or "pilot error") comes
>     from an incorrect manipulation by the user, not from an actual problem.
> 
> So if that is the case here, then it should be `user-error's and
> otherwise it should be plain `error's.  Right?

How do you establish whether a particular problem is due to "incorrect
manipulation by the user"?  Since almost everything in Emacs comes
from the user, one way or another, every error is due to "incorrect
manipulation" of some kind.  OTOH, commands can also be invoked from
Lisp, non-interactively, in which case the user may have nothing to do
with the problem, at least not directly.

With that in mind, please look at the code where Boruch suggested to
make these changes, and tell me what you think about them.

Boruch's rationale was a different one, it stems from running with
debug-on-error set non-nil.  But that is a very unusual thing to do,
and is bound to produce annoying backtraces all over the place.  So
I'm not sure I share the opinion that these changes should be made.  I
would like to hear other opinions, though.