--- /tmp/libidn2-2.0.4/lib/gen-tables-from-iana.pl 2017-03-13 12:05:38.000000000 +0200 +++ gen-tables-from-iana.pl 2018-05-15 14:07:03.937060765 +0300 @@ -19,7 +19,10 @@ # you will. use strict; - +my @emoji = ("1F300", "1F330", "1F337", "1F380", + "1F3A0", "1F3C6", "1F3E0", "1F400", "1F440", + "1F442", "1F4F9", "1F500", "1F540", "1F550", + "1F5FB", "1F645", "1F680", "1F700"); my ($intable) = 0; my ($line, $start, $end, $state); my ($tablesize) = 0; @@ -42,7 +45,14 @@ if (m, +([0-9A-F]+)(-([0-9A-F]+))? (PVALID|CONTEXTJ|CONTEXTO|DISALLOWED) ,) { $start = $1; $end = $3; - $state = $4; + if($start ~~ @emoji) + { + $state = "PVALID"; + } + else + { + $state = $4; + } printf " {0x$start, 0x$end, $state},\n" if $end; printf " {0x$start, 0x$start, $state},\n" if !$end; $tablesize++;