MCPcopy Create free account
hub / github.com/Tiiny-AI/PowerInfer / append_utf8

Function append_utf8

smallthinker/common/console.cpp:318–336  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

316 }
317
318 static void append_utf8(char32_t ch, std::string & out) {
319 if (ch <= 0x7F) {
320 out.push_back(static_cast<unsigned char>(ch));
321 } else if (ch <= 0x7FF) {
322 out.push_back(static_cast<unsigned char>(0xC0 | ((ch >> 6) & 0x1F)));
323 out.push_back(static_cast<unsigned char>(0x80 | (ch & 0x3F)));
324 } else if (ch <= 0xFFFF) {
325 out.push_back(static_cast<unsigned char>(0xE0 | ((ch >> 12) & 0x0F)));
326 out.push_back(static_cast<unsigned char>(0x80 | ((ch >> 6) & 0x3F)));
327 out.push_back(static_cast<unsigned char>(0x80 | (ch & 0x3F)));
328 } else if (ch <= 0x10FFFF) {
329 out.push_back(static_cast<unsigned char>(0xF0 | ((ch >> 18) & 0x07)));
330 out.push_back(static_cast<unsigned char>(0x80 | ((ch >> 12) & 0x3F)));
331 out.push_back(static_cast<unsigned char>(0x80 | ((ch >> 6) & 0x3F)));
332 out.push_back(static_cast<unsigned char>(0x80 | (ch & 0x3F)));
333 } else {
334 // Invalid Unicode code point
335 }
336 }
337
338 // Helper function to remove the last UTF-8 character from a string
339 static void pop_back_utf8_char(std::string & line) {

Callers 1

readline_advancedFunction · 0.70

Calls 1

push_backMethod · 0.45

Tested by

no test coverage detected