Subject: bug#52003: Unexpected advising behavior due to recursive implementation

From: Daniel Sausner <[email-masked]>
Date: Sun, 21 Nov 2021 09:32:43 +0000

> Do remember that you are always on your own when using advice; Emacs 
> cannot reasonably promise any compatibility on that level.
I see. I somehow assumed that functions at that level would aim to be 
compliant to the max.
> 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.
Well, I'd say that in that case the non-interactive performance 
outweighs this particular corner case of advising these core functions, 
which I came to understand is a hot iron.

Therefore I'd say this bug report can be closed from my point of view. I 
guess I still have to use advising as I currently see no other feasible 
way out, but I can make it sensitive to `interactive` as well.

Thanks for the helpful input!