From 9f3fc16ac6eb2fbf6c73aef5e47569dba2cb5d80 Mon Sep 17 00:00:00 2001 From: Jens Schmidt Date: Fri, 9 Jun 2023 00:24:28 +0200 Subject: [PATCH 5/5] Avoid setting circular `vc-parent-buffer' Otherwise, calling e.g. `vc-print-log' from buffer *vc-change-log* sets `vc-parent-buffer' to itself. * lisp/vc/vc-dispatcher.el (vc-setup-buffer): Avoid setting circular `vc-parent-buffer'. (Bug#63949) --- lisp/vc/vc-dispatcher.el | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el index fd5f655a0f6..ac4d3a78afd 100644 --- a/lisp/vc/vc-dispatcher.el +++ b/lisp/vc/vc-dispatcher.el @@ -186,10 +186,13 @@ vc-setup-buffer ;; want any of its output to appear from now on. (when oldproc (delete-process oldproc))) (kill-all-local-variables) - (setq-local vc-parent-buffer camefrom) - (setq-local vc-parent-buffer-name - (concat " from " (buffer-name camefrom))) - (setq default-directory olddir) + ;; Do not set the VC parent buffer and related variables to + ;; ourselves. (Bug#63949) + (unless (equal (current-buffer) camefrom) + (setq-local vc-parent-buffer camefrom) + (setq-local vc-parent-buffer-name + (concat " from " (buffer-name camefrom))) + (setq default-directory olddir)) (let ((buffer-undo-list t) (inhibit-read-only t)) (erase-buffer)))) -- 2.30.2