https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=211360

Jilles Tjoelker <jil...@freebsd.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jil...@freebsd.org

--- Comment #1 from Jilles Tjoelker <jil...@freebsd.org> ---
The breaking change is in libedit, not sh itself. The libedit in FreeBSD 11.x
uses a simple screen image array of wide characters indexed by the position, so
characters c with wcwidth(c) == 0 are discarded. This includes not only control
characters but also combining characters such as U+0308 combining diaeresis.
Unix-like systems usually use precomposed characters such as U+00E4 latin small
letter a with diaeresis which do not have this problem but precomposed
characters do not exist for all combinations.

The libedit in FreeBSD 10.x uses a simple screen image array of bytes, all of
which are assumed to be one cell wide. Therefore, control sequences confuse
libedit's idea of the cursor position, and commands longer than the terminal
width are not displayed properly if the prompt contains control sequences.
Libedit has a feature to make this work (EL_PROMPT_ESC) but sh does not support
it and I have not tested it.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
freebsd-amd64@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-amd64
To unsubscribe, send any mail to "freebsd-amd64-unsubscr...@freebsd.org"

Reply via email to