+static void fpututf32(utf32 const c, FILE *const out)
+{
+ if (c < 0x80U) {
+ fputc(c, out);
+ } else if (c < 0x800) {
+ fputc(0xC0 | (c >> 6), out);
+ fputc(0x80 | (c & 0x3F), out);
+ } else if (c < 0x10000) {
+ fputc(0xE0 | ( c >> 12), out);
+ fputc(0x80 | ((c >> 6) & 0x3F), out);
+ fputc(0x80 | ( c & 0x3F), out);
+ } else {
+ fputc(0xF0 | ( c >> 18), out);
+ fputc(0x80 | ((c >> 12) & 0x3F), out);
+ fputc(0x80 | ((c >> 6) & 0x3F), out);
+ fputc(0x80 | ( c & 0x3F), out);
+ }
+}
+