aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Shahid2018-05-30 23:55:16 -0400
committerNoam Postavsky2018-06-01 23:06:34 -0400
commit9ac76456eb104f749aa9c60b99c68a649214efc6 (patch)
treef36f75eb4d82fc4743b1a6e56b7f6e2196c7e787
parent6a672b792512e5c70254844dd59e0ec1ef0870ba (diff)
downloademacs-9ac76456eb104f749aa9c60b99c68a649214efc6.tar.gz
emacs-9ac76456eb104f749aa9c60b99c68a649214efc6.zip
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.el3
-rw-r--r--test/lisp/term-tests.el7
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'."
2904 (when (not (or (eobp) term-insert-mode)) 2904 (when (not (or (eobp) term-insert-mode))
2905 (let ((pos (point))) 2905 (let ((pos (point)))
2906 (term-move-columns columns) 2906 (term-move-columns columns)
2907 (delete-region pos (point)))) 2907 (delete-region pos (point))
2908 (setq term-current-column nil)))
2908 ;; In insert mode if the current line 2909 ;; In insert mode if the current line
2909 ;; has become too long it needs to be 2910 ;; has become too long it needs to be
2910 ;; chopped off. 2911 ;; 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"))
89 "\e[2;1Hc" 89 "\e[2;1Hc"
90 "\e[1;2Hb" 90 "\e[1;2Hb"
91 "\e[1;1Ha") "" t)))) 91 "\e[1;1Ha") "" t))))
92 (should (equal "abcde j"
93 (term-test-screen-from-input
94 10 12 '("abcdefghij"
95 "\e[H" ;move back to point-min
96 "abcde"
97 " j"))))
98
92 ;; Relative positioning. 99 ;; Relative positioning.
93 (should (equal "ab\ncd" 100 (should (equal "ab\ncd"
94 (term-test-screen-from-input 101 (term-test-screen-from-input