Subject: bug#8789: 23.3; debug backtrace buffer changes window on step-through

From: Michael Heerdegen <[email-masked]>
Date: Thu, 20 Sep 2012 23:25:39 +0200

"Drew Adams" <[email-masked]> writes:

> > I can use `debug' to invoke the debugger directly, which
> > prevents such surprises.
>
> 1. Not if you put `debug' in `file-remote-p'.  Or in some function
> that then calls `file-remote-p.  Or then calls some function that
> calls file-remote-p'...

I agree that this is problematic.

> 3. But I also think that it should be enough, for this problematic
> mode line enhancement, to simply call a duplicate of `file-remote-p'
> and not `file-remote-p' itself, which is used by all kinds of code.
>
> If that duplicate (e.g., `mode-line-file-remote-p') is called only by
> the mode-line code then that should greatly reduce, if not eliminate,
> this problem for the debugger.

But do you really think that this is the right approach?  E.g. in
dired+, we use (:eval ...) in the dired mode-string.  It's not very
useful to create a duplicate of all lisp functions we call in this form
only because of the fact that they are used for the mode-line.

And, in the case of `file-remote-p', it wouldn't even be enough to
duplicate just this function.  We would have to duplicate any function that
could be called by `file-remote-p' as well.

Michael.