--- AnyEvent/util/gen_uts46data 2020/09/30 07:34:47 1.9 +++ AnyEvent/util/gen_uts46data 2020/09/30 07:48:47 1.10 @@ -67,9 +67,15 @@ print $fh "\$uts46_imap = q\x02$imap\x00\x02;\n"; # try to find a valid quoting character - there usually are many legal combos -for (1..127) { # stay out of utf-8 range +for (33..112, 1..31) { # stay out of utf-8 range, prefer printable things if (0 >= index $valid, chr) { - print $fh "\$uts46_valid = q", chr, $valid, chr, ";\n"; + my $q = chr; + + # primitive compression + $valid =~ s/(\x00{32,})/"$q.(\"\x00\"x" . (length $1) . ").$q"/ge; + $valid =~ s/(\xff{32,})/"$q.(\"\xff\"x" . (length $1) . ").$q"/ge; + + print $fh "\$uts46_valid = q$q$valid$q;\n"; goto valid_ok; } }