From 8e2e118dd51b56786a9ae0dda33a7e3ec208ce24 Mon Sep 17 00:00:00 2001 From: Isuru Samarathunga Date: Mon, 8 Sep 2025 19:54:50 +0530 Subject: [PATCH] HF --- Src/IACore/imp/inl/IACore/string/string.inl | 6 +++++- Src/IACore/inc/hpp/IACore/File.hpp | 9 ++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Src/IACore/imp/inl/IACore/string/string.inl b/Src/IACore/imp/inl/IACore/string/string.inl index 7631644..3cb69af 100644 --- a/Src/IACore/imp/inl/IACore/string/string.inl +++ b/Src/IACore/imp/inl/IACore/string/string.inl @@ -276,7 +276,11 @@ namespace ia const auto count = last - first; res.reserve((count/stride) + 2); const auto end = start + count + 1; - for(size_type i = start; i < end; i += stride) new (&res.m_data[res.m_count++]) value_type(Base::m_data[i]); + for(size_type i = start; i < end; i += stride) + { + new (&res.m_data[res.m_count++]) value_type(Base::m_data[i]); + if(!Base::m_data[i]) break; + } res.back() = '\0'; return IA_MOVE(res); } diff --git a/Src/IACore/inc/hpp/IACore/File.hpp b/Src/IACore/inc/hpp/IACore/File.hpp index 7f489c6..7f2fa5c 100644 --- a/Src/IACore/inc/hpp/IACore/File.hpp +++ b/Src/IACore/inc/hpp/IACore/File.hpp @@ -121,10 +121,10 @@ namespace ia if constexpr (includeExtension) return path.slice(t + 1, path.end()); - return path.slice(t + 1, path.begin() + (path.rfind('.') - t) - 1); + return path.slice(t + 1, path.rfind('.')); } - String ExtractDirectoryFromPath(IN CONST String &path) + template STATIC String ExtractDirectoryFromPath(IN CONST String &path) { constexpr char pathDelimiter = '/'; @@ -132,7 +132,10 @@ namespace ia if (t == path.end()) return "./"; - return path.slice(0, t + 1); + if CONSTEXPR (includeTrailingSlash) + return path.slice(path.begin(), t + 1); + else + return path.slice(path.begin(), t); } private: