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.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 26649 in the body.
You can then email your comments to 26649 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#26649
; Package
emacs
.
(Tue, 25 Apr 2017 08:16:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Tino Calancha <tino.calancha <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Tue, 25 Apr 2017 08:16:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
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
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#26649
; Package
emacs
.
(Wed, 26 Apr 2017 10:05:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 26649 <at> debbugs.gnu.org (full text, mbox):
> From: Tino Calancha <tino.calancha <at> gmail.com>
> 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?
I don't have an opinion on this, perhaps others will offer theirs. I
do have a few comments:
> Subject: [PATCH] buffer-command: Return the cmd that started a process in
> buffer ^^^^^^
Not "return", "display".
> * lisp/simple.el (buffer-command): Return command executed to
> start a process in BUFFER (Bug#26649).
Likewise. Also, we generally use just "new command" in these cases.
> * doc/lispref/processes.texi (Process Information): Document new command.
It is better to mention the name of the command.
> +@deffn Command buffer-command &optional buffer
I think it would be better to have the command's name start with
"process-", so something like process-command-in-buffer.
> +This command calls @code{process-command} on the process associated
> +with @var{buffer}.
This describes the implementation; it should instead describe the
effect of the command.
> +If @var{buffer} is not associated with a running process, then returns
> +@code{nil}.
The value returned by a command is not interesting, you should
describe the effect of invoking this command in a buffer that has n o
associated process.
> +(defun buffer-command (&optional buffer)
> + "Return the command that was executed to start the process in BUFFER.
Same comment here: describe the effect, not the return value. If the
returned value is important for non-interactive invocations, it should
be described in addition to the effect of an interactive invocation.
> +Buffer defaults to the current buffer.
^^^^^^
BUFFER
> + (error "Not a living buffer '%S'" buffer))
"Not a live buffer '%S'"
> + (cond ((null cmd)
> + (message "No process in buffer '%s'" (buffer-name buf))
It is better to say something like
Buffer '%s' is not associated with any process
Btw, why %s here and %S in the error message?
> + (t
> + (message "%s" (mapconcat #'identity cmd " "))
What will this produce if some of the command-line arguments include
embedded whitespace?
> +(ert-deftest subr-tests--buffer-command ()
> + (let ((program (executable-find "sleep"))
> + (timeout "10") proc)
Instead of bypassing the test where 'sleep' doesn't exist, how about
if you use the Emacs executable instead? That will always exist.
Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#26649
; Package
emacs
.
(Wed, 26 Apr 2017 22:13:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 26649 <at> debbugs.gnu.org (full text, mbox):
> 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’.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#26649
; Package
emacs
.
(Thu, 27 Apr 2017 03:23:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 26649 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
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.
Reply sent
to
Tino Calancha <tino.calancha <at> gmail.com>
:
You have taken responsibility.
(Wed, 03 May 2017 08:26:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Tino Calancha <tino.calancha <at> gmail.com>
:
bug acknowledged by developer.
(Wed, 03 May 2017 08:26:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 26649-done <at> debbugs.gnu.org (full text, mbox):
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.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 31 May 2017 11:24:04 GMT)
Full text and
rfc822 format available.
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.