From: David Engster Date: Sun, 21 Feb 2016 16:11:01 +0000 (+0100) Subject: Restore point when writing semantic table to disk X-Git-Tag: emacs-25.0.92~76 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2d8b2fd034ccc61f949b408373342b5f9f8ba592;p=emacs.git Restore point when writing semantic table to disk * lisp/cedet/semantic/db-file.el (object-write): Wrap call to `semantic-fetch-tags' in `save-excursion', since it might move point in current buffer. (Bug #22287) --- diff --git a/lisp/cedet/semantic/db-file.el b/lisp/cedet/semantic/db-file.el index d9dd1f94d33..0ae433fecb5 100644 --- a/lisp/cedet/semantic/db-file.el +++ b/lisp/cedet/semantic/db-file.el @@ -287,22 +287,22 @@ Argument OBJ is the object to write." (when (semanticdb-live-p obj) (when (semanticdb-in-buffer-p obj) (with-current-buffer (semanticdb-in-buffer-p obj) - - ;; Make sure all our tag lists are up to date. - (semantic-fetch-tags) - - ;; Try to get an accurate unmatched syntax table. - (when (and (boundp semantic-show-unmatched-syntax-mode) - semantic-show-unmatched-syntax-mode) - ;; Only do this if the user runs unmatched syntax - ;; mode display entries. - (oset obj unmatched-syntax - (semantic-show-unmatched-lex-tokens-fetch)) - ) - - ;; Make sure pointmax is up to date - (oset obj pointmax (point-max)) - )) + (save-excursion + ;; Make sure all our tag lists are up to date. + (semantic-fetch-tags) + + ;; Try to get an accurate unmatched syntax table. + (when (and (boundp semantic-show-unmatched-syntax-mode) + semantic-show-unmatched-syntax-mode) + ;; Only do this if the user runs unmatched syntax + ;; mode display entries. + (oset obj unmatched-syntax + (semantic-show-unmatched-lex-tokens-fetch)) + ) + + ;; Make sure pointmax is up to date + (oset obj pointmax (point-max)) + ))) ;; Make sure that the file size and other attributes are ;; up to date.