Hey Bastian,
On 10/3/17 12:40 PM, Bastian Beischer wrote:
$ grep -n -e 'switch-to-buffer' lisp/cedet
./semantic/decorate/include.el:470: (switch-to-buffer (get-file-buffer file)))
./semantic/imenu.el:180: (switch-to-buffer ob))
./semantic/debug.el:156: (switch-to-buffer (oref iface data-buffer))
./semantic/debug.el:160: (switch-to-buffer (oref iface parser-buffer))
./semantic/debug.el:166: (switch-to-buffer (oref iface source-buffer))
./semantic/debug.el:453: (switch-to-buffer buf))
./semantic/debug.el:467: (switch-to-buffer buf))
./semantic/bovine/c.el:980: (switch-to-buffer (get-buffer-create "*MODE HACK TEST*"))
./semantic/bovine/c.el:992: (switch-to-buffer-other-window
./semantic/complete.el:1533: (switch-to-buffer-other-window buf t)
./semantic/complete.el:2123: (switch-to-buffer (current-buffer))
./semantic/symref/list.el:182:(switch-to-buffer-other-window buff)
./semantic/symref/list.el:314:(switch-to-buffer-other-window buff)
./semantic/symref/list.el:328:(switch-to-buffer-other-window buff)
./semantic/symref/list.el:344:(switch-to-buffer-other-window buff)
./semantic/symref/list.el:420:(switch-to-buffer-other-window (semantic-tag-buffer tag))
./semantic/symref/list.el:440:(switch-to-buffer (current-buffer))
./semantic/sb.el:320: (switch-to-buffer (current-buffer))
./semantic/analyze/refs.el:351: (switch-to-buffer (current-buffer))
./semantic/mru-bookmark.el:116: (switch-to-buffer (current-buffer))
./semantic/texi.el:630:;; (switch-to-buffer docbuff))
./semantic/texi.el:675: (switch-to-buffer (semantic-tag-buffer (car tags)))
./semantic/senator.el:533: (switch-to-buffer (current-buffer))
./semantic/senator.el:537: (switch-to-buffer result)
./semantic/senator.el:741: (switch-to-buffer (semantic-tag-buffer v))
./semantic.el:1081: `global-semantic-mru-bookmark-mode' - Provide `switch-to-buffer'-like
./srecode/getset.el:263: (switch-to-buffer (current-buffer))
./ede/custom.el:103: (switch-to-buffer (get-buffer-create "*EDE sort targets*"))
./ede/shell.el:44: (switch-to-buffer-other-window buff t))
I was able to reproduce the bug in "semantic-complete-jump" and
"semantic-analyze-proto-impl-toggle", for example.
With Martin's explanation, I guess we should replace all of these uses with pop-to-buffer-same-window.
Could you try out this kind of change and see if it fixes the problems you are still seeing, without introducing any obvious new ones?