Follow-up Comment #2, bug #50044 (project screen): Oh, it doesn't like the emoji. Third time's a charm:
I use weechat inside a screen session inside mate-terminal for IRC and lately emoji have begun showing up and my terminal gets corrupted. I was able to track this down to screen's wide character handling. Because screen doesn't correctly detect that new emoji (such as U+1F525) are wide characters, it inserts cursor-forward commands where none are necessary. For example, weechat will print an emoji at 20,20 and 22,20. Screen will receive this and print the character at 20,20, emit cursor-forward (^[C), then print the next emoji at 22,20. This causes mate-terminal to see what is actually a 2 character sequence as a 3 character sequence. This causes all sorts of havoc as later character movements are distorted, leaving emoji and other characters unerased on the screen. Anyway, I tracked this down to glib (what mate-terminal uses to detect widths of characters) being Unicode 9.0.0 compatible. To test my theory, I patched in the tables that glib uses into screen. With this patch, the newer wide characters appear and are manipulated correctly. It replaces a smaller set of tests which appear to be a subset of the ranges that are now checked. The table is taken from https://raw.githubusercontent.com/GNOME/glib/glib-2-50/glib/gunichartables.h and is a product of https://github.com/GNOME/glib/blob/glib-2-50/glib/gen-unicode-tables.pl Note: My patch does not update the ambiguous tables, which might also need updating. _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?50044> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/