Subject: bug#30182: Update

From: Eli Zaretskii <[email-masked]>
Date: Tue, 23 Jan 2018 21:51:18 +0200

> Date: Tue, 23 Jan 2018 19:45:12 +0100
> From: martin rudalics <[email-masked]>
> 
>  >   . Could the problem be caused by mode-line-default-help-echo being a
>  >     function now, not just a string?  Maybe try to revert only that
>  >     portion of the changeset, and see if that helps.
> 
> It can be made into a string and the OP confirmed already that doing
> that fixes things.

He did?  If so, I missed that.  I thought he only said that disabling
the part that runs the timer in the :eval form prevents the problem.

So if using a string instead of a function the returns a string solves
the problem, then I guess we should try and understand why a function
causes the problem.

>  >   . Related: could it be that mode-line-default-help-echo signals an
>  >     error?  Try running the reproducing recipe with a breakpoint in
>  >     safe_eval_handler.  If that breakpoint breaks, show the backtrace,
>  >     and use "pp" to show the values of arg and args[].
> 
> The OP already checked that wrapping `mode-line-default-help-echo'
> into a condition-case does not help.

That doesn't surprise me, because safe_call1 alread runs the function
inside condition-case.  But catching an error might not be all that
needs to be done to undo the damage, so I think it is important to
establish whether there is indeed an error signaled by that function.