From 4ffa928b93cbb53f16b475ccf3742144392d98d8 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Mon, 19 Jul 2021 17:13:11 +0200 Subject: [PATCH] Allow comint-delete-output to save the output on the kill ring * lisp/comint.el (comint-delete-output): Allow saving the output to the kill ring (bug#1496). --- lisp/comint.el | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lisp/comint.el b/lisp/comint.el index 9e406614b9a..78012616215 100644 --- a/lisp/comint.el +++ b/lisp/comint.el @@ -2471,10 +2471,13 @@ This function could be in the list `comint-output-filter-functions'." ;; Random input hackage -(defun comint-delete-output () +(defun comint-delete-output (&optional kill) "Delete all output from interpreter since last input. -Does not delete the prompt." - (interactive) +If KILL (interactively, the prefix), save the killed text in the +kill ring. + +This command does not delete the prompt." + (interactive "P") (let ((proc (get-buffer-process (current-buffer))) (replacement nil) (inhibit-read-only t)) @@ -2482,6 +2485,8 @@ Does not delete the prompt." (let ((pmark (progn (goto-char (process-mark proc)) (forward-line 0) (point-marker)))) + (when kill + (copy-region-as-kill comint-last-input-end pmark)) (delete-region comint-last-input-end pmark) (goto-char (process-mark proc)) (setq replacement (concat "*** output flushed ***\n" -- 2.39.2