GNU bug report logs -
#26649
26.0.50; buffer-command: Return the cmd that started a process in buffer
Previous Next
Reported by: Tino Calancha <tino.calancha <at> gmail.com>
Date: Tue, 25 Apr 2017 08:16:02 UTC
Severity: wishlist
Found in version 26.0.50
Done: Tino Calancha <tino.calancha <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#26649: 26.0.50; buffer-command: Return the cmd that started a process in buffer
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 26649 <at> debbugs.gnu.org.
--
26649: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=26649
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Tino Calancha <tino.calancha <at> gmail.com> 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.
[Message part 3 (message/rfc822, inline)]
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 <tino.calancha <at> gmail.com>
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
+@deffn 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
+@code{nil}.
+@end 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
This bug report was last modified 8 years and 23 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.