I8 Code Points 1st Byte 2nd Byte 3rd 4th 5th 6th 7th 8th 9th-14th
- 0x0000..0x00BF 00..BF
+ 0x0000..0x009F 00..9F
0x00A0..0x00FF * C5..C7 A0..BF
U+0100..U+03FF C8..DF A0..BF
U+0400..U+3FFF * E1..EF A0..BF A0..BF
* for more */
#define QUESTION_MARK_CTRL LATIN1_TO_NATIVE(0x9F)
-/* Any I8 string larger than this will overflow the word if it were converted into a UV */
-#if defined(UV_IS_QUAD)
-# define HIGHEST_REPRESENTABLE_UTF8 "\xFF\xAF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF\xBF"
-#else
-# define HIGHEST_REPRESENTABLE_UTF8 "\xFF\xA0\xA0\xA0\xA0\xA0\xA0\xA3\xBF\xBF\xBF\xBF\xBF\xBF"
-#endif
-
/* Helper macros for isUTF8_CHAR_foo, so use those instead of this. These were
* generated by regen/regcharclass.pl, and then moved here. Then they were
* hand-edited to add some LIKELY() calls, presuming that malformations are
* has this start byte (expressed in I8) as the maximum */
#define _IS_UTF8_CHAR_HIGHEST_START_BYTE 0xF9
+#define UNICODE_IS_PERL_EXTENDED(uv) UNLIKELY((UV) (uv) > 0x3FFFFFFF)
+
/*
* ex: set ts=8 sts=4 sw=4 et:
*/