bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#52003: Unexpected advising behavior due to recursive implementation


From: Mattias Engdegård
Subject: bug#52003: Unexpected advising behavior due to recursive implementation
Date: Sat, 20 Nov 2021 20:16:43 +0100

Thanks for the report, and yes, it's true that the way interactive use is 
managed makes advice hacks more interesting. Do remember that you are always on 
your own when using advice; Emacs cannot reasonably promise any compatibility 
on that level.

That said, it would be straightforward to straighten out the control flow by 
extracting the bulk of the code to a new (internal) function which is called 
with or without `condition-case`. It would be slightly slower since it entails 
an extra function call in the non-interactive case, and forward-sexp and its 
ilk are workhorses in many language modes. It may not matter much, of course.

> I'm far from a lisp expert but my feeling is that the condition-case 
> should only wrap the calls where things can actually go wrong.

Oh, but in this case they can. Noninteractive calls expect the scan-errors; 
interactive use does not. It is also possible for a a forward-sexp-function to 
raise scan-error.






reply via email to

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