1 #include "utf32he.h" 2 3 #ifdef NU_WITH_UTF32HE_READER 4 #ifdef NU_WITH_REVERSE_READ 5 6 #endif /* NU_WITH_REVERSE_READ */ 7 8 #ifdef NU_WITH_VALIDATION 9 nu_utf32he_validread(const char * p,size_t max_len)10int nu_utf32he_validread(const char *p, size_t max_len) { 11 if (utf32_validread_basic(p, max_len) == 0) { 12 return 0; 13 } 14 15 uint32_t u = 0; 16 nu_utf32he_read(p, &u); 17 18 if (u > NU_UTF32_MAX_CODEPOINT) { 19 return 0; 20 } 21 22 return (u >= 0xD800 && u <= 0xDFFF ? 0 : 4); 23 } 24 25 #endif /* NU_WITH_VALIDATION */ 26 #endif /* NU_WITH_UTF32HE_READER */ 27 28 #ifdef NU_WITH_UTF32HE_WRITER 29 nu_utf32he_write(uint32_t unicode,char * utf32)30char* nu_utf32he_write(uint32_t unicode, char *utf32) { 31 *(uint32_t *)(utf32) = unicode; 32 33 return utf32 + 4; 34 } 35 36 #endif /* NU_WITH_UTF32HE_WRITER */ 37