1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Save and restore point in ewoc-invalidate

* lisp/emacs-lisp/ewoc.el (ewoc--refresh-node): Save and restore point line
and column offset.
(eowc-map) (ewoc--invalidate) (ewoc-set-hf): Don't use save-excursion
* lisp/vc/vc-dir.el (vc-dir-update): Don't save/restore point on calling
'ewoc-invalidate'.
This commit is contained in:
Andrii Kolomoiets 2020-09-05 22:18:59 +03:00 committed by Stefan Monnier
parent d470cff770
commit a1d9463ae7
2 changed files with 29 additions and 25 deletions

View file

@ -451,11 +451,7 @@ If NOINSERT, ignore elements on ENTRIES which are not in the ewoc."
(setf (vc-dir-fileinfo->state (ewoc-data node)) (nth 1 entry))
(setf (vc-dir-fileinfo->extra (ewoc-data node)) (nth 2 entry))
(setf (vc-dir-fileinfo->needs-update (ewoc-data node)) nil)
;; `ewoc-invalidate' will kill line and insert new text,
;; let's keep point column.
(let ((p (point)))
(ewoc-invalidate vc-ewoc node)
(goto-char p)))
(ewoc-invalidate vc-ewoc node))
;; If the state is nil, the file does not exist
;; anymore, so remember the entry so we can remove
;; it after we are done inserting all ENTRIES.