diff options
author | Karl Williamson <public@khwilliamson.com> | 2012-04-18 15:25:28 -0600 |
---|---|---|
committer | Karl Williamson <public@khwilliamson.com> | 2012-04-26 11:58:56 -0600 |
commit | 0447e8df3db3f566f76a613f62c5f4cdd7262997 (patch) | |
tree | fda9e9e14099a7ee147911071f95dd001bcaa3d1 /utfebcdic.h | |
parent | 0ae1fa71a437dfa435b139674610ec992366d661 (diff) | |
download | perl-0447e8df3db3f566f76a613f62c5f4cdd7262997.tar.gz |
utf8.h: Use correct definition of start byte
The previous definition allowed for (illegal) overlongs. The uses of
this macro in the core assume that it is accurate. The inacurracy can
cause such code to fail.
Diffstat (limited to 'utfebcdic.h')
-rw-r--r-- | utfebcdic.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/utfebcdic.h b/utfebcdic.h index b3b767df26..eff444e7fd 100644 --- a/utfebcdic.h +++ b/utfebcdic.h @@ -584,7 +584,8 @@ END_EXTERN_C #define UNI_IS_INVARIANT(c) ((c) < 0xA0) /* UTF-EBCDIC semantic macros - transform back into I8 and then compare */ -#define UTF8_IS_START(c) (NATIVE_TO_UTF(c) >= 0xA0 && (NATIVE_TO_UTF(c) & 0xE0) != 0xA0) + +#define UTF8_IS_START(c) (NATIVE_TO_UTF(c) >= 0xC5 && NATIVE_TO_UTF(c) != 0xE0) #define UTF8_IS_CONTINUATION(c) ((NATIVE_TO_UTF(c) & 0xE0) == 0xA0) #define UTF8_IS_CONTINUED(c) (NATIVE_TO_UTF(c) >= 0xA0) #define UTF8_IS_DOWNGRADEABLE_START(c) (NATIVE_TO_UTF(c) >= 0xC5 && NATIVE_TO_UTF(c) <= 0xC7) |