>From f162b1f6629bf1faafe0b28c6ea9df458fee1af8 Mon Sep 17 00:00:00 2001 From: Andrii Kolomoiets Date: Thu, 3 Sep 2020 22:13:36 +0300 Subject: [PATCH] Don't move point in vc-dir on vc-register/vc-checkin * lisp/vc/vc-dir.el (vc-dir-update): Save and restore point on 'ewoc-invalidate'. * lisp/vc/vc-dispatcher.el (vc-finish-logentry): Don't call 'vc-dir-move-to-goal-column'. * lisp/vc/vc.el (vc-register): Don't call 'vc-dir-move-to-goal-column'. --- lisp/vc/vc-dir.el | 6 +++++- lisp/vc/vc-dispatcher.el | 3 --- lisp/vc/vc.el | 4 ---- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el index cdf8ab984e..6c219005ce 100644 --- a/lisp/vc/vc-dir.el +++ b/lisp/vc/vc-dir.el @@ -451,7 +451,11 @@ vc-dir-update (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 vc-ewoc node)) + ;; `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))) ;; 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. diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el index 4a04c9365a..99bf5bf9b6 100644 --- a/lisp/vc/vc-dispatcher.el +++ b/lisp/vc/vc-dispatcher.el @@ -691,7 +691,6 @@ vc-start-logentry (message "%s Type C-c C-c when done" msg) (vc-finish-logentry (eq comment t))))) -(declare-function vc-dir-move-to-goal-column "vc-dir" ()) ;; vc-finish-logentry is typically called from a log-edit buffer (see ;; vc-start-logentry). (defun vc-finish-logentry (&optional nocomment) @@ -740,8 +739,6 @@ vc-finish-logentry (mapc (lambda (file) (vc-resynch-buffer file t t)) log-fileset)) - (when (vc-dispatcher-browsing) - (vc-dir-move-to-goal-column)) (run-hooks after-hook 'vc-finish-logentry-hook))) (defun vc-dispatcher-browsing () diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 5561292d8c..f0a08044e2 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -1346,8 +1346,6 @@ vc-create-repo nil t))))) (vc-call-backend backend 'create-repo)) -(declare-function vc-dir-move-to-goal-column "vc-dir" ()) - ;;;###autoload (defun vc-register (&optional vc-fileset comment) "Register into a version control system. @@ -1398,8 +1396,6 @@ vc-register (vc-resynch-buffer file t t)) files) - (when (derived-mode-p 'vc-dir-mode) - (vc-dir-move-to-goal-column)) (message "Registering %s... done" files))) (defun vc-register-with (backend) -- 2.15.1