FS#55322 - [vte] [vte3] [konsole] missing REP support, required for ncurses >= 6.0+20170827-1
Attached to Project:
Arch Linux
Opened by Chih-Hsuan Yen (yan12125) - Monday, 28 August 2017, 17:12 GMT
Last edited by Antonio Rojas (arojas) - Sunday, 04 February 2018, 21:42 GMT
Opened by Chih-Hsuan Yen (yan12125) - Monday, 28 August 2017, 17:12 GMT
Last edited by Antonio Rojas (arojas) - Sunday, 04 February 2018, 21:42 GMT
|
Details
Description:
After upgrading ncurses to 6.0+20170827-1, htop layout is broken. Attached files are screenshots for old (6.0+20170527-1) and new (6.0+20170827-1) ncurses. The problem is reproducible on aur/qterminal-git, konsole and xfce4-terminal, so I guess it's not a terminal emulator issue. Additional info: ncurses 6.0+20170827-1 htop 2.0.2-2 qterminal-git 0.7.1.32.gae7ecee-1 (built from AUR) konsole 17.08.0-1 xfce4-terminal 0.8.6-1 Steps to reproduce: 1. Upgrading ncurses to 6.0+20170827-1 2. Run `htop` |
This task depends upon
http://invisible-island.net/ncurses/ncurses.faq.html#xterm_generic
While `htop` works fine in xfce4-terminal with my regular locale (en_US.UTF-8), the text is misaligned with some characters missing when using the POSIX locale (i.e.: `LANG=C htop`). More or less the same behavior as seen in OP's screenshots.
It is a limitation of the terminal emulator, which should not set TERM=xterm.
It's reproducible in both xfce4-terminal and gnome-terminal and they both set TERM=xterm-256color.
The FAQ entry linked in your first comment is from 2012; why hadn't this been an issue before 20170729?
The change was made to ensure proper testing of this:
https://invisible-island.net/ncurses/NEWS.html#t20170827
(and taking the limitations of other terminals into account for
the "xterm" entries has never been a factor in updating them).
I am not even sure why that is a question. xterm is allowed to do whatever it wants and make whatever wild changes it wants, even, and if other terminal emulators break it is legally that other terminal emulator's fault for using xterm when they are not, in fact, xterm. Does your testcase work in xterm? ;) If so, we can assume it is in fact an xfce-terminal (or rather, vte) bug, not an ncurses bug...
Three programs (ncurses, vttest and xterm) expect a given behavior for this feature,
and it was not desirable to have an ncurses feature depend on a little-publicized xterm feature.
So... seeing that it was available in all xterm configurations, I added it.
That's been my policy for more than 20 years.
I appreciate your input in this bug and the FAQ does indeed explain the issue. The part that's still confusing to me is that it works fine with the en_US.UTF-8 locale.
@Eli Nobody uses xterm so it's irrelevant whether or not it works on that.
I guess I was wrong to insist that ncurses should keep compatibility with these terminal emulators, and it's probably the other way round.
As long as the issue is fixed, I'm happy. Still wonder why the locale made a difference though.
[1] https://bugzilla.gnome.org/show_bug.cgi?id=787701
[2] https://bugs.kde.org/show_bug.cgi?id=384620
but introduced another problem which is fixed at the end of August.
http://lists.gnu.org/archive/html/bug-ncurses/2017-08/threads.html#00039
Presumably Arch's packagers keep an eye on the bug-reporting list,
and will update their package :-)
KDE bug is still open, so konsole will take more time.
I'm not interested in fixing vte 0.28.x, as it's no longer maintained upstream and the patch to 0.50.1 doesn't apply to it (vte has been rewritten in C++ in the meanwhile).