GNU bug report logs - #52518
Log only vc-command-messages

Previous Next

Package: emacs;

Reported by: Juri Linkov <juri <at> linkov.net>

Date: Wed, 15 Dec 2021 17:33:02 UTC

Severity: wishlist

Tags: patch

Fixed in version 29.0.50

Done: Juri Linkov <juri <at> linkov.net>

Bug is archived. No further changes may be made.

Full log


Message #13 received at 52518 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: Stefan Kangas <stefan <at> marxist.se>
Cc: 52518 <at> debbugs.gnu.org
Subject: Re: bug#52518: Log only vc-command-messages
Date: Thu, 16 Dec 2021 19:15:38 +0200
[Message part 1 (text/plain, inline)]
>>  	    (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:

[vc-inhibit-message.patch (text/x-diff, inline)]
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

This bug report was last modified 3 years and 243 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.