GNU bug report logs -
#28645
26.0.50; semantic-ia-fast-jump jumps to a random place in buffer
Previous Next
Reported by: Constantine <hi-angel <at> yandex.ru>
Date: Fri, 29 Sep 2017 13:25:01 UTC
Severity: normal
Found in version 26.0.50
Done: Dmitry Gutov <dgutov <at> yandex.ru>
Bug is archived. No further changes may be made.
Full log
Message #46 received at 28645 <at> debbugs.gnu.org (full text, mbox):
Dmitry Gutov <dgutov <at> yandex.ru> writes:
> On 10/16/17 1:21 PM, Bastian Beischer wrote:
>
>> I replaced switch-to-buffer with pop-to-buffer-same-window in those functions
>> which I'm using regularly and it fixes the problem. The CEDET functions where
>> I made the replacements and checked them are:
>>
>> semantic-analyze-proto-impl-toggle
>> semantic-complete-jump
>> semantic-decoration-include-visit
>> semantic-ia--fast-jump-helper
>> semantic-mrub-vist
>> senator-jump
>> senator-jump-regexp
>> senator-go-to-up-reference
>>
It turns out that senator-jump and senator-jump-regexp don't exist in
emacs but only in upstream CEDET. So no need to change these.
>> I didn't make any other replacements because:
>>
>> a) For some of them I'm not sure if 'pop-to-buffer-same-window' or
>> 'pop-to-buffer' should be used.
>> b) I'm not using any of the other functions with matches so I wouldn't be able
>> to test the change.
>>
>> Also, searching for 'switch-to-buffer' in non-CEDET related lisp files in the
>> emacs sources reveals more places which need to be fixed, but I didn't go that
>> far. However, probably somebody (tm) should check them all one-by-one :-(
>
> Could you send a patch with the replacements you did make?
Sure:
diff --git a/lisp/cedet/semantic/analyze/refs.el b/lisp/cedet/semantic/analyze/refs.el
index 55fcd83043..a58479f505 100644
--- a/lisp/cedet/semantic/analyze/refs.el
+++ b/lisp/cedet/semantic/analyze/refs.el
@@ -348,7 +348,7 @@ Only works for tags in the global namespace."
(push-mark)
(semantic-go-to-tag target)
- (switch-to-buffer (current-buffer))
+ (pop-to-buffer-same-windown (current-buffer))
(semantic-momentary-highlight-tag target))
)
diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el
index ff8e61e54d..325ca1f441 100644
--- a/lisp/cedet/semantic/complete.el
+++ b/lisp/cedet/semantic/complete.el
@@ -2120,7 +2120,7 @@ completion works."
(when (semantic-tag-p tag)
(push-mark)
(semantic-go-to-tag tag)
- (switch-to-buffer (current-buffer))
+ (pop-to-buffer-same-window (current-buffer))
(semantic-momentary-highlight-tag tag)
(message "%S: %s "
(semantic-tag-class tag)
diff --git a/lisp/cedet/semantic/decorate/include.el b/lisp/cedet/semantic/decorate/include.el
index 6876e5f3a4..4a86b9e4ee 100644
--- a/lisp/cedet/semantic/decorate/include.el
+++ b/lisp/cedet/semantic/decorate/include.el
@@ -467,7 +467,7 @@ its contents.
(error "Could not location include %s"
(semantic-tag-name tag)))
((get-file-buffer file)
- (switch-to-buffer (get-file-buffer file)))
+ (pop-to-buffer-same-window (get-file-buffer file)))
((stringp file)
(find-file file))
))))
diff --git a/lisp/cedet/semantic/mru-bookmark.el b/lisp/cedet/semantic/mru-bookmark.el
index 5fa58e08ea..24863de01b 100644
--- a/lisp/cedet/semantic/mru-bookmark.el
+++ b/lisp/cedet/semantic/mru-bookmark.el
@@ -113,7 +113,7 @@ Uses `semantic-go-to-tag' and highlighting."
(forward-char o))
(error nil))
;; make it visible
- (switch-to-buffer (current-buffer))
+ (pop-to-buffer-same-window (current-buffer))
(semantic-momentary-highlight-tag tag)
))
diff --git a/lisp/cedet/semantic/senator.el b/lisp/cedet/semantic/senator.el
index e86658628b..d37345aa2d 100644
--- a/lisp/cedet/semantic/senator.el
+++ b/lisp/cedet/semantic/senator.el
@@ -530,11 +530,11 @@ Some tags such as includes have other reference features."
;; A tag
((semantic-tag-p result)
(semantic-go-to-tag result)
- (switch-to-buffer (current-buffer))
+ (pop-to-buffer-same-window (current-buffer))
(semantic-momentary-highlight-tag result))
;; Buffers
((bufferp result)
- (switch-to-buffer result)
+ (pop-to-buffer-same-window result)
(pulse-momentary-highlight-one-line (point)))
;; Files
((and (stringp result) (file-exists-p result))
This bug report was last modified 7 years and 301 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.