MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / fxStringifyUnicodeEscape

Function fxStringifyUnicodeEscape

xs/sources/xsCommon.c:944–969  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

942}
943
944txString fxStringifyUnicodeEscape(txString string, txInteger character, txInteger separator)
945{
946 const char* digits = (separator == '%') ? gxHexUpper : gxHexLower;
947 txU1* p = (txU1*)string;
948 txInteger surrogate;
949 if (character > 0xFFFF) {
950 character -= 0x10000;
951 surrogate = 0xDC00 | (character & 0x3FF);
952 character = 0xD800 | (character >> 10);
953 }
954 else
955 surrogate = 0;
956 *p++ = c_read8(digits + ((character & 0x0000F000) >> 12));
957 *p++ = c_read8(digits + ((character & 0x00000F00) >> 8));
958 *p++ = c_read8(digits + ((character & 0x000000F0) >> 4));
959 *p++ = c_read8(digits + (character & 0x0000000F));
960 if (surrogate) {
961 *p++ = separator;
962 *p++ = 'u';
963 *p++ = c_read8(digits + ((surrogate & 0x0000F000) >> 12));
964 *p++ = c_read8(digits + ((surrogate & 0x00000F00) >> 8));
965 *p++ = c_read8(digits + ((surrogate & 0x000000F0) >> 4));
966 *p++ = c_read8(digits + (surrogate & 0x0000000F));
967 }
968 return (txString)p;
969}
970
971int fxUTF8Compare(txString p1, txString p2)
972{

Callers 3

fx_escapeFunction · 0.85
fxPrintStringFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected