summaryrefslogtreecommitdiff
path: root/lisp/comint.el
diff options
context:
space:
mode:
authorVisuwesh <visuweshm@gmail.com>2022-07-23 09:15:24 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2022-07-23 09:15:24 +0200
commite5de76b72e75aaa04d83331ebc4d72dadd7eed77 (patch)
treedf4aefd780e606e5301473de9ef0765c337f9554 /lisp/comint.el
parent97abe8511a829861f6efb865209ac2dd0e7ae129 (diff)
downloademacs-e5de76b72e75aaa04d83331ebc4d72dadd7eed77.tar.gz
New user option to disable deleting current input in comint mouse-2
* etc/NEWS: Announce the user option (bug#56646). * lisp/comint.el (comint-delete-old-input): New user option to disable deleting current input when insert an old input using mouse-2. (comint-insert-input): Use it.
Diffstat (limited to 'lisp/comint.el')
-rw-r--r--lisp/comint.el15
1 files changed, 11 insertions, 4 deletions
diff --git a/lisp/comint.el b/lisp/comint.el
index d52623c00ae..3ed04f098c7 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -905,6 +905,12 @@ series of processes in the same Comint buffer. The hook
"Return non-nil if STR contains non-whitespace syntax."
(not (string-match "\\`\\s *\\'" str)))
+(defcustom comint-delete-old-input t
+ "When non-nil, delete old input on inserting previous input with \\<comint-mode-map>\\[comint-insert-input]."
+ :type 'boolean
+ :group 'comint
+ :version "29.1")
+
(defun comint-insert-input (event)
"In a Comint buffer, set the current input to the previous input at point.
If there is no previous input at point, run the command specified
@@ -936,10 +942,11 @@ by the global keymap (usually `mouse-yank-at-click')."
;; Otherwise, insert the previous input.
(goto-char (point-max))
;; First delete any old unsent input at the end
- (delete-region
- (or (marker-position comint-accum-marker)
- (process-mark (get-buffer-process (current-buffer))))
- (point))
+ (when comint-delete-old-input
+ (delete-region
+ (or (marker-position comint-accum-marker)
+ (process-mark (get-buffer-process (current-buffer))))
+ (point)))
;; Insert the input at point
(insert input)))))