[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#52518: Log only vc-command-messages
From: |
Juri Linkov |
Subject: |
bug#52518: Log only vc-command-messages |
Date: |
Thu, 16 Dec 2021 19:15:38 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (x86_64-pc-linux-gnu) |
>> (when vc-command-messages
>> - (let ((inhibit-message (eq (selected-window)
>> (active-minibuffer-window))))
>> + (let ((inhibit-message
>> + (or (eq vc-command-messages 'log)
>> + (eq (selected-window) (active-minibuffer-window)))))
>
> Should these be refactored into a function of their own? It seems
> a tad repetitive as is.
I agree these should be refactored. I was unsure if selected-window
changes during function execution, but this would be better:
diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el
index 346974bdba..4adc01fbfc 100644
--- a/lisp/vc/vc-dispatcher.el
+++ b/lisp/vc/vc-dispatcher.el
@@ -127,8 +127,12 @@ vc-delete-logbuf-window
:group 'vc)
(defcustom vc-command-messages nil
- "If non-nil, display run messages from back-end commands."
- :type 'boolean
+ "If non-nil, log run messages from back-end commands.
+If `log', messages are logged to the *Messages* buffer, but not displayed.
+Other non-nil values also display run messages in the echo area."
+ :type '(choice (const :tag "No display and no log" nil)
+ (const :tag "Display and log messages" t)
+ (const :tag "Only log messages without displaying" log))
:group 'vc)
(defcustom vc-suppress-confirm nil
@@ -311,7 +315,10 @@ vc-do-command
(substring command 0 -1)
command)
" " (vc-delistify flags)
- " " (vc-delistify files))))
+ " " (vc-delistify files)))
+ (vc-inhibit-message
+ (or (eq vc-command-messages 'log)
+ (eq (selected-window) (active-minibuffer-window)))))
(save-current-buffer
(unless (or (eq buffer t)
(and (stringp buffer)
@@ -335,7 +342,7 @@ vc-do-command
(apply #'start-file-process command (current-buffer)
command squeezed))))
(when vc-command-messages
- (let ((inhibit-message (eq (selected-window)
(active-minibuffer-window))))
+ (let ((inhibit-message vc-inhibit-message))
(message "Running in background: %s" full-command)))
;; Get rid of the default message insertion, in case we don't
;; set a sentinel explicitly.
@@ -345,11 +352,11 @@ vc-do-command
(when vc-command-messages
(vc-run-delayed
(let ((message-truncate-lines t)
- (inhibit-message (eq (selected-window)
(active-minibuffer-window))))
+ (inhibit-message vc-inhibit-message))
(message "Done in background: %s" full-command)))))
;; Run synchronously
(when vc-command-messages
- (let ((inhibit-message (eq (selected-window)
(active-minibuffer-window))))
+ (let ((inhibit-message vc-inhibit-message))
(message "Running in foreground: %s" full-command)))
(let ((buffer-undo-list t))
(setq status (apply #'process-file command nil t nil squeezed)))
@@ -364,7 +371,7 @@ vc-do-command
(if (integerp status) (format "status %d" status) status)
full-command))
(when vc-command-messages
- (let ((inhibit-message (eq (selected-window)
(active-minibuffer-window))))
+ (let ((inhibit-message vc-inhibit-message))
(message "Done (status=%d): %s" status full-command)))))
(vc-run-delayed
(run-hook-with-args 'vc-post-command-functions