GNU bug report logs - #69078
[PATCH] esh-mode: Allow eshell-kill-output to actually kill the output.

Previous Next

Package: emacs;

Reported by: Tomas Volf <~@wolfsden.cz>

Date: Mon, 12 Feb 2024 16:26:02 UTC

Severity: normal

Tags: patch

Done: Jim Porter <jporterbugs <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Tomas Volf <~@wolfsden.cz>
Subject: bug#69078: closed (Re: bug#69078: [PATCH] esh-mode: Allow
 eshell-kill-output to actually kill the output.)
Date: Fri, 16 Feb 2024 02:30:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#69078: [PATCH] esh-mode: Allow eshell-kill-output to actually kill the output.

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 69078 <at> debbugs.gnu.org.

-- 
69078: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69078
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Jim Porter <jporterbugs <at> gmail.com>
To: Tomas Volf <~@wolfsden.cz>, 69078-done <at> debbugs.gnu.org
Subject: Re: bug#69078: [PATCH] esh-mode: Allow eshell-kill-output to actually
 kill the output.
Date: Thu, 15 Feb 2024 18:27:34 -0800
On 2/12/2024 8:22 AM, Tomas Volf wrote:
> Before this commit, the function eshell-kill-output, despite the name,
> did not allow to kill the output, it always just deleted it.  This
> commit fixes that, allowing to do the kill with C-u.

Thanks for noticing this. This makes sense to me, so I've merged it to 
the master branch as 572d58b5e8d.

> The function name is misleading (and in comint is is called
> coming-delete-output), but changing it could break code, so I do not think it is
> worth it.  Adding the argument should be enough.

I also fixed this, but added an obsolete alias for the old name. That 
way, it won't break anything, and we can be a little more consistent 
with comint.

Closing this bug now.

[Message part 3 (message/rfc822, inline)]
From: Tomas Volf <~@wolfsden.cz>
To: bug-gnu-emacs <at> gnu.org
Cc: Tomas Volf <~@wolfsden.cz>
Subject: [PATCH] esh-mode: Allow eshell-kill-output to actually kill the
 output.
Date: Mon, 12 Feb 2024 17:22:39 +0100
Before this commit, the function eshell-kill-output, despite the name,
did not allow to kill the output, it always just deleted it.  This
commit fixes that, allowing to do the kill with C-u.

This mimics how comint mode operates, so from this commit C-c C-o and
C-u C-c C-o will work the same way in eshell-mode and shell-mode.

* lisp/eshell/esh-mode.el (eshell-kill-output): New optional argument,
kill.
---
The function name is misleading (and in comint is is called
coming-delete-output), but changing it could break code, so I do not think it is
worth it.  Adding the argument should be enough.

I do not have a copyright assignment, however the change is trivial, and mostly
copied from comint-delete-output, so I do not think it is necessary.

 lisp/eshell/esh-mode.el | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el
index fd279f61673..882fc67b9a1 100644
--- a/lisp/eshell/esh-mode.el
+++ b/lisp/eshell/esh-mode.el
@@ -832,13 +832,18 @@ This function should be in the list `eshell-output-filter-functions'."
       eshell-last-output-start
     eshell-last-output-end))

-(defun eshell-kill-output ()
-  "Kill all output from interpreter since last input.
-Does not delete the prompt."
-  (interactive)
+(defun eshell-kill-output (&optional kill)
+  "Delete all output from interpreter since last input.
+If KILL (interactively, the prefix), save the killed text in the
+kill ring.
+
+This command does not delete the prompt."
+  (interactive "P")
   (save-excursion
     (goto-char (eshell-beginning-of-output))
     (insert "*** output flushed ***\n")
+    (when kill
+      (copy-region-as-kill (point) (eshell-end-of-output)))
     (delete-region (point) (eshell-end-of-output))))

 (defun eshell-show-output (&optional arg)
--
2.41.0



This bug report was last modified 1 year and 153 days ago.

Previous Next


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