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)10 int 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)30 char* 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