Subject: bug#33230: 26.1; Soft-wrap issue in term.el with term-suppress-hard-newline

From: Noam Postavsky <[email-masked]>
Date: Fri, 02 Nov 2018 22:15:17 -0400

found 33230 24.4
tags 33230 + confirmed
quit

Bruno CHARRON <[email-masked]> writes:

> Basically I am typing 'x' repeatedly in the command line until it reaches the
> right screen edge.
> Setting term-log-buffer as t, I can see what the shell is sending to emacs in
> the Messages buffer.
> When I type 'x' in the middle of the screen, the shell responds 'x' to print an
> 'x' at the current cursor position.
> When I type 'x' on the last column, the shell responds 'x ^M^[[K', which I could
> understand with this explanation [1].
> It seems to be the standard way to ask the terminal to wrap the line under
> uncertainty on its behavior.
> First it asks to insert 'x' on the last column, then some terminals will wrap
> then but just in case it asks to insert an additional ' ' to force wrapping then
> erases the new line (carriage return '^M' then erase to end of line '^[[K', see
> [2]).
> If term.el processes 'x' first then ' ', it will wrap when processing the ' '
> but when term-suppress-hard-newline is t, it processes both at the same time and
> doesn't wrap due to the reason explained in the original post.

Ah, got it.  I got mixed up a few times, because I didn't realize it
only happens after the first line (otherwise there's nowhere to go back
up to).  I can reproduce this also with 24.4 (when
term-suppress-hard-newline was introduced).

It seems like this option is somewhat incompatible with shells, it's not
clear what the right behaviour would be.  You say the problem is that
there is no wrapping, but isn't term-suppress-hard-newline exactly
intended to suppress this kind of wrapping?