emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Redisplay hook error backtraces


From: Eli Zaretskii
Subject: Re: Redisplay hook error backtraces
Date: Thu, 14 Jul 2022 16:59:57 +0300

> Date: Thu, 14 Jul 2022 13:42:18 +0000
> Cc: larsi@gnus.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org
> From: Alan Mackenzie <acm@muc.de>
> 
> > > > You want to distinguish errors inside condition-case?
> 
> > > More, distinguish the different condition-cases in which errors might
> > > occur.
> 
> > What else is exposed to Lisp?
> 
> I don't understand this question.

There's just one condition-case available to Lisp code, AFAICT, so
why isn't it enough to distinguish condition-case from any other
callers of internal_condition_case* ?

> > > I think we need the new function safe_run_hooks_2_with_backtrace (see
> > > below), since there is currently no "safe" function for hooks with
> > > two arguments.  But some of the other ones could disappear (see
> > > below).
> 
> > What is the second argument, and why do we need it?
> 
> There are three arguments, the non-standard hook, and the two arguments
> which will be fed to that hook.
> 
> Currently, that hook (window-scroll-functions) is called with
> run_hook_with_args_2, which doesn't have a "safe" in its functionality,
> which we need.  My change is to use safe_run_hooks_2 (a new function)
> instead.

OK, sounds good.

> > > OK, I have an idea.  I restore the variable redisplay_lisping back
> > > into the code (I took it out last night), binding it to true (or Qt?)
> > > at every place in xdisp.c where redisplay calls a Lisp hook.
> 
> > These all go through a single function, so there's just one place to
> > do that.
> 
> I disagree.  There are seven places, for the seven different Lisp hooks
> currently called from redisplay.

Aren't they all go through safe_call?  Which seven places are you
talking about?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]