[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[screen-devel] [bug #63634] GNU Screen should use wcwdith() in utf8_isdo

From: Vincent Lefèvre
Subject: [screen-devel] [bug #63634] GNU Screen should use wcwdith() in utf8_isdouble() instead of hard-coded tables
Date: Mon, 9 Jan 2023 06:17:15 -0500 (EST)


                 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:

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:


Message posté via Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]