emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#26649: closed (26.0.50; buffer-command: Return the


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#26649: closed (26.0.50; buffer-command: Return the cmd that started a process in buffer)
Date: Wed, 03 May 2017 08:26:02 +0000

Your message dated Wed, 03 May 2017 17:25:47 +0900
with message-id <address@hidden>
and subject line Re: bug#26649: 26.0.50; buffer-command: Return the cmd that 
started a process in buffer
has caused the debbugs.gnu.org bug report #26649,
regarding 26.0.50; buffer-command: Return the cmd that started a process in 
buffer
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
26649: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=26649
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 26.0.50; buffer-command: Return the cmd that started a process in buffer Date: Tue, 25 Apr 2017 17:15:26 +0900
Severity: wishlist

I define in my private customization a command `buffer-command', which
calls `process-command' on the process associated with the current
buffer.
Interactively, it shows in the echo area the command as the last column
of `list-processes' does.
Is anyone interested in adding this feature?
--8<-----------------------------cut here---------------start------------->8---
>From 59ee6e113b7ff557ba5208b79ddf57a26b4578b2 Mon Sep 17 00:00:00 2001
From: Tino Calancha <address@hidden>
Date: Tue, 25 Apr 2017 17:07:07 +0900
Subject: [PATCH] buffer-command: Return the cmd that started a process in
 buffer

* lisp/simple.el (buffer-command): Return command executed to
start a process in BUFFER (Bug#26649).
* doc/lispref/processes.texi (Process Information): Document new command.
* test/lisp/subr-tests.el (subr-tests--buffer-command): Add test
; * etc/NEWS: Add news entry.
---
 doc/lispref/processes.texi |  7 +++++++
 etc/NEWS                   |  4 ++++
 lisp/simple.el             | 18 ++++++++++++++++++
 test/lisp/subr-tests.el    | 11 +++++++++++
 4 files changed, 40 insertions(+)

diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index 630853384e..b182842614 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -975,6 +975,13 @@ Process Information
 @end smallexample
 @end defun
 
address@hidden Command buffer-command &optional buffer
+This command calls @code{process-command} on the process associated
+with @var{buffer}.  @var{buffer} defaults to the current buffer.
+If @var{buffer} is not associated with a running process, then returns
address@hidden
address@hidden deffn
+
 @defun process-contact process &optional key
 This function returns information about how a network, a serial, or a
 pipe connection was set up.  When @var{key} is @code{nil}, it returns
diff --git a/etc/NEWS b/etc/NEWS
index 9d4c72d6dc..87d6c93fa1 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -886,6 +886,10 @@ instead of its first.
 * Lisp Changes in Emacs 26.1
 
 +++
+** New command 'buffer-command' calls 'process-command' on the
+process associated with the current buffer.
+
++++
 ** Emacs now supports records for user-defined types, via the new
 functions 'make-record', 'record', and 'recordp'.  Records are now
 used internally to represent cl-defstruct and defclass instances, for
diff --git a/lisp/simple.el b/lisp/simple.el
index a58164a112..2aed47502e 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -3967,6 +3967,24 @@ list-processes
     (tabulated-list-print))
   (display-buffer buffer)
   nil)
+
+(defun buffer-command (&optional buffer)
+  "Return the command that was executed to start the process in BUFFER.
+Buffer defaults to the current buffer.
+This runs `process-command' on the process associated with BUFFER.
+If BUFFER is not associated with a process, then return nil."
+  (interactive)
+  (when (and buffer (not (buffer-live-p (get-buffer buffer))))
+    (error "Not a living buffer '%S'" buffer))
+  (let* ((buf (get-buffer (or buffer (current-buffer))))
+         (proc (get-buffer-process buf))
+            (cmd (and proc (process-command proc))))
+    (cond ((null cmd)
+              (message "No process in buffer '%s'" (buffer-name buf))
+           nil)
+          (t
+           (message "%s" (mapconcat #'identity cmd " "))
+           cmd))))
 
 ;;;; Prefix commands
 
diff --git a/test/lisp/subr-tests.el b/test/lisp/subr-tests.el
index 0d243cc5d8..f4e6640f9c 100644
--- a/test/lisp/subr-tests.el
+++ b/test/lisp/subr-tests.el
@@ -291,5 +291,16 @@ subr-test--frames-1
   (should-error (eval '(dolist "foo") t)
                 :type 'wrong-type-argument))
 
+(ert-deftest subr-tests--buffer-command ()
+  (let ((program (executable-find "sleep"))
+        (timeout "10") proc)
+    (with-temp-buffer
+      (should-not (buffer-command))
+      (when program
+        (setq proc
+              (start-process "sleep" (current-buffer) program timeout))
+        (set-process-query-on-exit-flag proc nil)
+        (should (equal (buffer-command) (list program timeout)))))))
+
 (provide 'subr-tests)
 ;;; subr-tests.el ends here
-- 
2.11.0

--8<-----------------------------cut here---------------end--------------->8---

In GNU Emacs 26.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
 of 2017-04-25
Repository revision: 5b0fdefb4ca54b0d3dac3047ac1e4b380beb6ba7



--- End Message ---
--- Begin Message --- Subject: Re: bug#26649: 26.0.50; buffer-command: Return the cmd that started a process in buffer Date: Wed, 03 May 2017 17:25:47 +0900 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)
Tino Calancha <address@hidden> writes:

> On Thu, 27 Apr 2017, Juri Linkov wrote:
>
>>> Severity: wishlist
>>>
>>> I define in my private customization a command `buffer-command', which
>>> calls `process-command' on the process associated with the current
>>> buffer.
>>> Interactively, it shows in the echo area the command as the last column
>>> of `list-processes' does.
>>> Is anyone interested in adding this feature?
>>
>> The command name ‘buffer-command’ is confusing.  At first I thought it
>> should read a command in the minibuffer like ‘shell-command’ and execute
>> it in the buffer's process.  But actually it just displays the same info
>> that is available in ‘list-processes’.
> Yeah, this command seems very specific to my workflow.  It doesn't add
> nothing to `list-process', so i agree it's worthless adding it into
> Emacs.
There is no general interest in this proposal, so i am closing the report.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]