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)6 int 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)26 char* 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