This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Create isUTF8_CHAR() macro and use it
authorKarl Williamson <khw@cpan.org>
Tue, 6 May 2014 02:43:47 +0000 (20:43 -0600)
committerKarl Williamson <khw@cpan.org>
Sat, 31 May 2014 17:42:40 +0000 (11:42 -0600)
commit6302f837102d66f532a1c151f7299abbef3a15dd
tree242fe154607368b270e65e29f81f8aed4214259c
parentd9f92374c5f4b19ed46c29c6710922b80429de59
Create isUTF8_CHAR() macro and use it

This macro will inline the code to determine if a character is
well-formed UTF-8 for code points below a certain value, falling back to
a slower function for larger ones.  On ASCII platforms, it will inline
for well-beyond all legal Unicode code points.  On EBCDIC, it currently
does it for code points up to 0x3FFF.  This could be increased, but our
porting tests do the regen every time to make sure everything is ok, and
making it larger slows that down.  This is worked around on ASCII by
normally commenting out the code that generates this info, but including
in utf8.h a version that did get generated.  This is static information
and won't change.  (This could be done for EBCDIC too, but I chose not
to at this time as each code page has a different macro generated, and
it gets ugly getting all of them in utf8.h)

Using this macro allowed for simplification of several functions in
utf8.c
embed.fnc
inline.h
pod/perlguts.pod
pod/perlunicode.pod
proto.h
utf8.c
utf8.h