}
// Internal helper for functions below
-static inline uint unicode_sanitize_char_internal(uint u, uint limit, uint allowed_ctl)
+static inline uint unicode_sanitize_char_internal(uint u, uint limit, uint allowed_ctl, uint repl)
{
if (u - 0x20 >= 0x60) // Otherwise printable ASCII 0x20..0x7f (optimized for this case)
{
else if (u < 0xa0)
{ // 0x80..0x9f Latin-1 control chars
bad:
- u = UNI_REPLACEMENT;
+ u = repl;
}
}
return u;
**/
static inline uint unicode_sanitize_char(uint u)
{
- return unicode_sanitize_char_internal(u, 0x10000, 1U<<'\t');
+ return unicode_sanitize_char_internal(u, 0x10000, 1U<<'\t', UNI_REPLACEMENT);
}
/**
**/
static inline uint unicode_full_sanitize_char(uint u)
{
- return unicode_sanitize_char_internal(u, 0x110000, 1U<<'\t');
+ return unicode_sanitize_char_internal(u, 0x110000, 1U<<'\t', UNI_REPLACEMENT);
}
/* unicode-utf8.c */