summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/comint.el7
1 files changed, 5 insertions, 2 deletions
diff --git a/lisp/comint.el b/lisp/comint.el
index 03cc7d35782..8d8c0623a76 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -1081,12 +1081,15 @@ Similarly for Soar, Scheme, etc."
(comint-replace-by-expanded-history)
(buffer-substring pmark (point))))
(history (if (not (eq comint-input-autoexpand 'history))
- (comint-arguments input 0 nil)
+ input
;; This is messy 'cos ultimately the original
;; functions used do insertion, rather than return
;; strings. We have to expand, then insert back.
(comint-replace-by-expanded-history)
- (buffer-substring pmark (point)))))
+ (let ((copy (buffer-substring pmark (point))))
+ (delete-region pmark (point))
+ (insert input)
+ copy))))
(if comint-process-echoes
(delete-region pmark (point))
(insert ?\n))