MCPcopy Create free account
hub / github.com/HaxeFoundation/hxcpp / _hx_utf8_sub

Function _hx_utf8_sub

src/String.cpp:731–760  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

729}
730
731String _hx_utf8_sub(String inString, int inStart, int inLen)
732{
733 #ifdef HX_SMART_STRINGS
734 return inString.substr(inStart,inLen);
735 #else
736 const unsigned char *src = (const unsigned char *)inString.__s;
737 const unsigned char *end = src + inString.length;
738
739 const unsigned char *sLen = getUtf8LenArray();
740 for(int i=0;i<inStart;i++)
741 {
742 src += sLen[*src];
743
744 if (src==end)
745 return String::emptyString;
746 if (src>end)
747 hx::Throw(HX_CSTRING("Invalid UTF8"));
748 }
749 const unsigned char *start = src;
750 for(int i=0;i<inLen;i++)
751 {
752 src += sLen[*src];
753 if (src==end)
754 break;
755 if (src>end)
756 hx::Throw(HX_CSTRING("Invalid UTF8"));
757 }
758 return String::create((const char *)start, src-start);
759 #endif
760}
761
762
763

Callers

nothing calls this directly

Calls 3

getUtf8LenArrayFunction · 0.85
ThrowFunction · 0.85
substrMethod · 0.80

Tested by

no test coverage detected