all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Bruno CHARRON <bruno@charron.email>
To: npostavs@gmail.com
Cc: 33230@debbugs.gnu.org
Subject: bug#33230: 26.1; Soft-wrap issue in term.el with term-suppress-hard-newline
Date: Fri, 2 Nov 2018 09:50:57 +0900	[thread overview]
Message-ID: <CAKx9rszXVvO-in25dN=+Pe9HFAc7T37W7x_jd6gTnf0w5hi-5Q@mail.gmail.com> (raw)
In-Reply-To: <87h8h0if4u.fsf@gmail.com>

On Fri, Nov 2, 2018 at 7:53 AM Noam Postavsky <npostavs@gmail.com> wrote:
> Can you explain exactly what you're typing in?  I don't understand what
> 'x^M^[[K' means here.  Is specific to zsh?  Is it specific to your
> prompt settings?

Sorry the line break ate the space, the shell response is 'x ^M^[[K' and the
issue is with the space.

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.

When the command line has some attributes, e.g. bold red, the shell sends
'^[[1m^[[31mx^[[m^[[39m ^M^[[K', which means turn on bold ('^[[1m') red
('^[[31m'), insert 'x', reset attributes ('^[[m') and set default color
('^[[39m'), insert space, then '^M^[[K' as before.
Interestingly, in that case, term.el will first process the 'x' then the ' '
because there are control commands in between, and there is no issue (it wraps).

See a gif of that behavior in [3].

The behavior is the same with 'bash --norc', although it only returns 'x ^M', no
'^[[K'.
It does not depend on my prompt and also happens with 'zsh -f'.

[1] https://stackoverflow.com/a/31360700
[2] http://man7.org/linux/man-pages/man4/console_codes.4.html
[3] https://i.imgur.com/1dIQ8c6.gif





  reply	other threads:[~2018-11-02  0:50 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-01 18:11 bug#33230: 26.1; Soft-wrap issue in term.el with term-suppress-hard-newline Bruno CHARRON
2018-11-01 22:53 ` Noam Postavsky
2018-11-02  0:50   ` Bruno CHARRON [this message]
2018-11-03  2:15     ` Noam Postavsky
2018-11-04  7:23       ` Bruno CHARRON
2018-11-04  9:07         ` martin rudalics
2018-11-04  9:56           ` martin rudalics
2018-11-04 11:06             ` Bruno CHARRON
2018-11-13  9:07               ` martin rudalics
2018-11-13 17:18                 ` Eli Zaretskii
2018-11-14  8:32                   ` martin rudalics
2018-11-14 15:36                     ` Eli Zaretskii
2018-11-18  9:22               ` martin rudalics
2018-11-18 16:17                 ` Bruno Charron
2018-11-18 19:40                   ` martin rudalics
2022-03-22 15:42                   ` Lars Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAKx9rszXVvO-in25dN=+Pe9HFAc7T37W7x_jd6gTnf0w5hi-5Q@mail.gmail.com' \
    --to=bruno@charron.email \
    --cc=33230@debbugs.gnu.org \
    --cc=npostavs@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.