From: Lars Ingebrigtsen Date: Mon, 19 Jul 2021 15:13:11 +0000 (+0200) Subject: Allow comint-delete-output to save the output on the kill ring X-Git-Tag: emacs-28.0.90~1808 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4ffa928b93cbb53f16b475ccf3742144392d98d8;p=emacs.git 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). --- 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"