[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[screen-devel] [bug #50044] Update lookup tables to support Unicode 9.0.
From: |
Brian De Wolf |
Subject: |
[screen-devel] [bug #50044] Update lookup tables to support Unicode 9.0.0 |
Date: |
Thu, 12 Jan 2017 22:57:33 +0000 (UTC) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0 |
Follow-up Comment #1, bug #50044 (project screen):
I didn't have an account, so it cut off my post. Here's the whole thing
again:
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 🔥) 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/