Subject: bug#67972: Use *command (&)* instead of shell-command-buffer-name(-async)

From: Nafiz Islam <[email-masked]>
Date: Fri, 22 Dec 2023 12:31:24 -0500

The buffer name for the shell-command or async-shell-command would be much
more useful if they were given the name of the command being executed.

I started working a bit on a patch for that, but it's just code changes
right now. Here's a preview of what I mean.

@@ -4252,12 +4252,6 @@ undo-outer-limit-truncate

 ;;;; Shell commands

-(defconst shell-command-buffer-name "*Shell Command Output*"
-  "Name of the output buffer for shell commands.")
-
-(defconst shell-command-buffer-name-async "*Async Shell Command*"
-  "Name of the output buffer for asynchronous shell commands.")
-
 (defvar shell-command-history nil
   "History list for some commands that read shell commands.

@@ -4671,7 +4660,8 @@ shell-command
  ;; Output goes in a separate buffer.
  (if (string-match "[ \t]*&[ \t]*\\'" command)
     ;; Command ending with ampersand means asynchronous.
-            (let* ((buffer (get-buffer-create
+            (let* ((shell-command-buffer-name-async (concat "*" command
"*"))
+                   (buffer (get-buffer-create
                             (or output-buffer
shell-command-buffer-name-async)))
                    (bname (buffer-name buffer))
                    (proc (get-buffer-process buffer))
@@ -4942,7 +4932,8 @@ shell-command-on-region
        shell-command-default-error-buffer
        t
        (region-noncontiguous-p))))
-  (let ((error-file
+  (let ((shell-command-buffer-name (concat "*" command "*"))
+        (error-file
  (if error-buffer
      (make-temp-file
       (expand-file-name "scor"