URL: <https://savannah.gnu.org/bugs/?63634>
Summary: GNU Screen should use wcwdith() in utf8_isdouble() instead of hard-coded tables Project: GNU Screen Submitter: vinc17 Submitted: lun. 09 janv. 2023 11:17:13 Category: None Severity: 3 - Normal Priority: 5 - Normal Status: None Privacy: Public Assigned to: None Open/Closed: Open Release: None Discussion Lock: Any Fixed Release: None Planned Release: None Work Required: None _______________________________________________________ Follow-up Comments: ------------------------------------------------------- Date: lun. 09 janv. 2023 11:17:13 By: Vincent Lefèvre <vinc17> In the utf8_isdouble() function of encoding.c, GNU Screen uses hard-coded tables, which become incomplete when Unicode evolves in the C library. This yields major display issues, such as shifted text in Mutt (based on ncurses), with the risk to lose data in this case if one doesn't notice the text shift: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1027733 Instead of hard-coded tables, GNU Screen should use the standard wcwdith() function (as done in Debian to fix the above bug), which will ensure consistency with other software that already uses it (the real terminal and perhaps libraries like ncurses). If you think that hard-coded tables are still useful, they could be enabled via an option, a bit like what cjkwidth currently does (introduced for bug #16666 "Support for UAX#11 East Asian Ambiguous characters"). BTW, I don't know whether the cjkwidth feature should be kept, but it is likely to have issues with curses applications. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?63634> _______________________________________________ Message posté via Savannah https://savannah.gnu.org/