/* Compare S1 and S2, ignoring differences in normalization.
NF must be either UNINORM_NFD or UNINORM_NFKD.
- If successful, set *RESULT to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and
- return 0. Upon failure, return the error number. */
+ If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and
+ return 0. Upon failure, return -1 with errno set. */
extern int
u8_normcmp (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2,
- uninorm_t nf, int *result);
+ uninorm_t nf, int *resultp);
extern int
u16_normcmp (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2,
- uninorm_t nf, int *result);
+ uninorm_t nf, int *resultp);
extern int
u32_normcmp (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2,
- uninorm_t nf, int *result);
+ uninorm_t nf, int *resultp);
-/* Converts the string S of length N to a string in locale encoding, in such a
- way that comparing uN_normxfrm (S1) and uN_normxfrm (S2) with memcmp2() is
+/* Converts the string S of length N to a NUL-terminated byte sequence, in such
+ a way that comparing uN_normxfrm (S1) and uN_normxfrm (S2) with uN_cmp2() is
equivalent to comparing S1 and S2 with uN_normcoll().
NF must be either UNINORM_NFC or UNINORM_NFKC. */
extern char *
char *resultbuf, size_t *lengthp);
+/* Compare S1 and S2, ignoring differences in normalization, using the
+ collation rules of the current locale.
+ NF must be either UNINORM_NFC or UNINORM_NFKC.
+ If successful, set *RESULTP to -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2, and
+ return 0. Upon failure, return -1 with errno set. */
+extern int
+ u8_normcoll (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2,
+ uninorm_t nf, int *resultp);
+extern int
+ u16_normcoll (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2,
+ uninorm_t nf, int *resultp);
+extern int
+ u32_normcoll (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2,
+ uninorm_t nf, int *resultp);
+
+
/* Normalization of a stream of Unicode characters.
A "stream of Unicode characters" is essentially a function that accepts an