-
- // U+10000 - U+10FFFF
- if ((cur & 0xF0) == 0xF0)
- char_len = 4;
- // U+0800 - U+FFFF
- else if ((cur & 0xE0) == 0xE0)
- char_len = 3;
- // U+0080 - U+07FF
- else if ((cur & 0xC0) == 0xC0)
- char_len = 2;
- else if (cur & 0x80)
- programming_error ("invalid utf-8 string");
- else
- // avoid the locale-dependent isspace
- if (cur == '\n' || cur == '\t' || cur == '\v')
- (*str)[i] = ' ';
+
+ // avoid the locale-dependent isspace
+ if (cur == '\n' || cur == '\t' || cur == '\v')
+ (*str)[i] = ' ';
+
+ vsize char_len = utf8_char_len (cur);