Details

if we have rainbow flag emoji (&#x1f3f3;&#xfe0f;&#x200d;&#x1f308;)
we can use mouse/keyboard to move cursor inside it because we break it into two clusters, we break on 1F308,

This is wrong as we should treat emoji as a single cluster (based on rules mentioned in Unicode segmentation standard “Do not break within emoji modifier sequences or emoji ZWJ sequences” (https://unicode.org/reports/tr29/#GB11 )).

I noticed that the current unibreak lib used in EFL seems to implement Unicode 9 (latest is Unicode 13) which uses obsolete and unused grapheme break property, such as E_Modifier & Glue_After_ZWJ, so if a new emoji introduced (rainbow flag was introduced after Unicode 9) and based on Unicode 9 it should use property E_Modifier or Glue_After_ZWJ we will have issue with it.

So I have updated unibreak lib using latest released version of unibreak (4.2) which implement Unicode 12.

I needed to remove BREAK_AFTER(i) to pass the tests in D1140 as spaces do not break on latest update (also related to T995).

I didn't update the whole library as it will cause issues with word break and we needs to update our EFL code (for example updating the word break code will change the way we treat spaces, the tests added in https://phab.enlightenment.org/D1140 will fail)

Things are improved, but still, I think there are issues with word movement, that should be fixed, So can you create subtask to this patch? and we can work on fixing D1140 fails.