This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Change filter of problematic code points for EBCDIC
authorKarl Williamson <khw@cpan.org>
Fri, 15 May 2015 20:48:23 +0000 (14:48 -0600)
committerKarl Williamson <khw@cpan.org>
Fri, 4 Sep 2015 16:21:17 +0000 (10:21 -0600)
commitac6f1fbe3462b7efc6bfb0e77bde7e04d14f02c2
tree59a949d083d1c799ab6606bd56fe0eb867e12bcc
parenta62b247b9f3d5cc6214f83defea2e06d12398275
Change filter of problematic code points for EBCDIC

There are three classes of problematic Unicode code points that may
require special handling.  Which code points are problematic is fairly
complicated, requiring lots of branches.  However, the smallest of them
is 0xD800, which means that most code points in modern use are below
them all, and a single test can be used to exclude just about everything
likely to be encountered.  The problem was that the way this test was
done on EBCDIC caused way too many things to pass and have to be checked
with the more complicated branches.  The digits 0-9 and some capital
letters were not filtered out, for example.  This commit changes the
EBCDIC test to transform into I8 (an array lookup), and this fixes it to
exclude things that shouldn't have passed before.
utf8.c
utf8.h