I am using Dave Love's noweb-mode to edit a file that is a mix of LaTeX and C code. Love's mode uses his multi-mode to switch back and forth between modes. This switching is accomplished via indirect buffers.
In Emacs 21, the mode appears to work well. But a forced upgrade to Emacs 23 has revealed problems:
When making a transition between modes, mark is lost.
When viewing the same buffer in two different visible windows, movement in window A occasionally causes movement in window B, and it will also cause window B's
point
to move.
I'm trying to diagnose and repair these faults. I managed to work around problem 1 by turning off all buffer/mode switching while (region-active-p)
. But problem 2 has me completely stumped. I don't even know how to diagnose it.
I am looking for any help, but especially answers to either of these two questions:
How should I try to diagnose this problem?
Where can I find a clear and more complete explanation of the semantics of indirect buffers? The GNU Emacs Lisp Reference Manual does not say much, and I'm not sure reading the source code is the best next step.