]> code.delx.au - gnu-emacs/commitdiff
Restore point when writing semantic table to disk
authorDavid Engster <deng@randomsample.de>
Sun, 21 Feb 2016 16:11:01 +0000 (17:11 +0100)
committerDavid Engster <deng@randomsample.de>
Sun, 21 Feb 2016 16:21:20 +0000 (17:21 +0100)
* 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)

lisp/cedet/semantic/db-file.el

index d9dd1f94d3369834cc9a99ded5dbdedfe18842b4..0ae433fecb56105c4fad2cc1e6338fe6d1941b53 100644 (file)
@@ -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.