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).
This commit is contained in:
Lars Ingebrigtsen 2021-07-19 17:13:11 +02:00
parent 3094c12c45
commit 4ffa928b93

View file

@ -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"