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