Subject: bug#69078: closed (Re: bug#69078: [PATCH] esh-mode: Allow eshell-kill-output to actually kill the output.)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 16 Feb 2024 02:30:02 +0000

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 [email-masked].

-- 
69078: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69078
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#69078: [PATCH] esh-mode: Allow eshell-kill-output to actually kill the output.
From: Jim Porter <[email-masked]>
To: Tomas Volf <[email-masked]>, [email-masked]
Date: Thu, 15 Feb 2024 18:27:34 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

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.

Subject: [PATCH] esh-mode: Allow eshell-kill-output to actually kill the output.
From: Tomas Volf <[email-masked]>
To: [email-masked]
Cc: Tomas Volf <[email-masked]>
Date: Mon, 12 Feb 2024 17:22:39 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

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