Thanks for the feedback. I fixed both issues in the attached patch. Noam Postavsky writes: > John Shahid writes: >> (when (not (or (eobp) term-insert-mode)) >> (let ((pos (point))) >> (term-move-columns columns) >> - (delete-region pos (point)))) >> + (delete-region pos (point)) >> + (term-move-columns (- columns)))) > > I think it's a better idea to just reset term-current-column to nil, > like what happens in Emacs 26. > >> + (should (equal "abcde j" >> + (term-test-screen-from-input >> + 10 12 (concat "\e[mabcdefghij" >> + "\e[H" ;move back to point-min >> + "\e[mabcde" >> + "\e[m j")))) >> + > > The "\e[m" is just to make the strings get processed separately, right? > You can pass a list of strings instead: > > (term-test-screen-from-input > 10 12 (list "abcdefghij" > "\e[H" ;move back to point-min > "abcde" > " j"))