MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / hoedown_buffer_put_utf8

Function hoedown_buffer_put_utf8

libraries/hoedown/src/buffer.c:276–308  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

274}
275
276void hoedown_buffer_put_utf8(hoedown_buffer *buf, unsigned int c) {
277 unsigned char unichar[4];
278
279 assert(buf && buf->unit);
280
281 if (c < 0x80) {
282 hoedown_buffer_putc(buf, c);
283 }
284 else if (c < 0x800) {
285 unichar[0] = 192 + (c / 64);
286 unichar[1] = 128 + (c % 64);
287 hoedown_buffer_put(buf, unichar, 2);
288 }
289 else if (c - 0xd800u < 0x800) {
290 HOEDOWN_BUFPUTSL(buf, "\xef\xbf\xbd");
291 }
292 else if (c < 0x10000) {
293 unichar[0] = 224 + (c / 4096);
294 unichar[1] = 128 + (c / 64) % 64;
295 unichar[2] = 128 + (c % 64);
296 hoedown_buffer_put(buf, unichar, 3);
297 }
298 else if (c < 0x110000) {
299 unichar[0] = 240 + (c / 262144);
300 unichar[1] = 128 + (c / 4096) % 64;
301 unichar[2] = 128 + (c / 64) % 64;
302 unichar[3] = 128 + (c % 64);
303 hoedown_buffer_put(buf, unichar, 4);
304 }
305 else {
306 HOEDOWN_BUFPUTSL(buf, "\xef\xbf\xbd");
307 }
308}

Callers

nothing calls this directly

Calls 2

hoedown_buffer_putcFunction · 0.85
hoedown_buffer_putFunction · 0.85

Tested by

no test coverage detected