MCPcopy Create free account
hub / github.com/NazaraEngine/NazaraEngine / SubString

Method SubString

src/Nazara/Core/String.cpp:3858–3882  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3856 */
3857
3858 String String::SubString(std::intmax_t startPos, std::intmax_t endPos) const
3859 {
3860 if (startPos < 0)
3861 startPos = std::max<std::size_t>(m_sharedString->size + startPos, 0);
3862
3863 std::size_t start = static_cast<std::size_t>(startPos);
3864
3865 if (endPos < 0)
3866 {
3867 endPos = m_sharedString->size+endPos;
3868 if (endPos < 0)
3869 return String();
3870 }
3871
3872 std::size_t minEnd = std::min(static_cast<std::size_t>(endPos), m_sharedString->size - 1);
3873 if (start > minEnd || start >= m_sharedString->size)
3874 return String();
3875
3876 std::size_t size = minEnd - start + 1;
3877
3878 auto str = std::make_shared<SharedString>(size);
3879 std::memcpy(str->string.get(), &m_sharedString->string[start], size);
3880
3881 return String(std::move(str));
3882 }
3883
3884 /*!
3885 * \brief Returns a sub string of the string from a character

Callers 8

ExecuteInputMethod · 0.80
OnKeyPressedMethod · 0.80
OnTextEnteredMethod · 0.80
ParseMethod · 0.80
ParseMeshMethod · 0.80
ParseMethod · 0.80
CreateMethod · 0.80
AbsolutePathMethod · 0.80

Calls 1

StringClass · 0.50

Tested by

no test coverage detected