diff --git a/Jupiter/Readable_String_Imp.h b/Jupiter/Readable_String_Imp.h index c16a34c..a48e232 100644 --- a/Jupiter/Readable_String_Imp.h +++ b/Jupiter/Readable_String_Imp.h @@ -167,14 +167,16 @@ template size_t Jupiter::Readable_String::findi(const Jupiter::Re template size_t Jupiter::Readable_String::span(const Jupiter::Readable_String &in) const { size_t index = 0; - while (in.contains(this->get(index))) index++; + while (index != this->size() && in.contains(this->get(index))) + ++index; return index; } template size_t Jupiter::Readable_String::span(const T *in) const { size_t index = 0; - while (containsSymbol(in, this->get(index))) index++; + while (index != this->size() && containsSymbol(in, this->get(index))) + ++index; return index; } diff --git a/Jupiter/Reference_String.h b/Jupiter/Reference_String.h index 5b99fa0..a2598a0 100644 --- a/Jupiter/Reference_String.h +++ b/Jupiter/Reference_String.h @@ -70,6 +70,11 @@ namespace Jupiter */ virtual size_t truncate(size_t n); + /** + * @brief Erases the string (sets the string's length to 0) + */ + void erase(); + /** * @brief Shifts the string pointer to the left. * diff --git a/Jupiter/Reference_String_Imp.h b/Jupiter/Reference_String_Imp.h index ff0478e..011dd41 100644 --- a/Jupiter/Reference_String_Imp.h +++ b/Jupiter/Reference_String_Imp.h @@ -93,6 +93,13 @@ template size_t Jupiter::Reference_String::truncate(size_t n) return (Jupiter::Reference_String::length -= n); } +// erase + +template void Jupiter::Reference_String::erase() +{ + Jupiter::Reference_String::length = 0; +} + // shift template size_t Jupiter::Reference_String::shiftLeft(size_t len) diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index b50d88b..68b696a 100644 Binary files a/Release/Jupiter.lib and b/Release/Jupiter.lib differ