diff options
| author | John Shahid <jvshahid@gmail.com> | 2018-05-30 23:55:16 -0400 |
|---|---|---|
| committer | Noam Postavsky <npostavs@gmail.com> | 2018-06-01 23:06:34 -0400 |
| commit | 9ac76456eb104f749aa9c60b99c68a649214efc6 (patch) | |
| tree | f36f75eb4d82fc4743b1a6e56b7f6e2196c7e787 | |
| parent | 6a672b792512e5c70254844dd59e0ec1ef0870ba (diff) | |
| download | emacs-9ac76456eb104f749aa9c60b99c68a649214efc6.tar.gz | |
Fix column double counting in term.el (Bug#31662)
* lisp/term.el (term-emulate-terminal): Invalidate
`term-current-column' after deleting overwritten text.
| -rw-r--r-- | lisp/term.el | 3 | ||||
| -rw-r--r-- | test/lisp/term-tests.el | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/lisp/term.el b/lisp/term.el index 19e68ddb49e..715f39bbbfc 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -2904,7 +2904,8 @@ See `term-prompt-regexp'." (when (not (or (eobp) term-insert-mode)) (let ((pos (point))) (term-move-columns columns) - (delete-region pos (point)))) + (delete-region pos (point)) + (setq term-current-column nil))) ;; In insert mode if the current line ;; has become too long it needs to be ;; chopped off. diff --git a/test/lisp/term-tests.el b/test/lisp/term-tests.el index 8aaa61a210b..72a9ad1ef74 100644 --- a/test/lisp/term-tests.el +++ b/test/lisp/term-tests.el @@ -89,6 +89,13 @@ first line\r_next line\r\n")) "\e[2;1Hc" "\e[1;2Hb" "\e[1;1Ha") "" t)))) + (should (equal "abcde j" + (term-test-screen-from-input + 10 12 '("abcdefghij" + "\e[H" ;move back to point-min + "abcde" + " j")))) + ;; Relative positioning. (should (equal "ab\ncd" (term-test-screen-from-input |
