diff --git a/Jupiter/CString.h b/Jupiter/CString.h index a129af2..2f22194 100644 --- a/Jupiter/CString.h +++ b/Jupiter/CString.h @@ -194,7 +194,7 @@ namespace Jupiter bool contains(const T &value); /** Access Operator */ - inline T &operator[](size_t pos) { return Jupiter::CString_Type::curr[pos]; }; + inline T &operator[](size_t pos) { return Jupiter::String_Type::str[pos]; }; /** Assignment Operators */ inline CString_Type &operator=(const CString_Type &right) { this->set(right); return *this; }; @@ -205,7 +205,6 @@ namespace Jupiter protected: T *base; /** Base pointer for the underlying C-style string */ - T *curr; /** Active pointer for the underlying C-style string */ size_t strLen; /** Length of underlying C-style string */ }; diff --git a/Jupiter/CString_Imp.h b/Jupiter/CString_Imp.h index 31aaa87..4e3f214 100644 --- a/Jupiter/CString_Imp.h +++ b/Jupiter/CString_Imp.h @@ -34,7 +34,7 @@ template const T *Jupiter::CString_Type::c_str() const { - return Jupiter::CString_Type::curr; + return Jupiter::String_Type::str; } template size_t Jupiter::CString_Type::size() const @@ -54,7 +54,7 @@ template int Jupiter::CString_Type::compare(const std::basic_stri template int Jupiter::CString_Type::compare(const T *s2) const { - const T *s1 = Jupiter::CString_Type::curr; + const T *s1 = Jupiter::String_Type::str; while (*s1 != 0 && *s1 == *s2) { s1++; @@ -65,7 +65,7 @@ template int Jupiter::CString_Type::compare(const T *s2) const template int Jupiter::CString_Type::compare(const T s2) const { - return *Jupiter::CString_Type::curr - s2; + return *Jupiter::String_Type::str - s2; } template bool Jupiter::CString_Type::equals(const Jupiter::String_Type &in) const @@ -83,12 +83,12 @@ template bool Jupiter::CString_Type::equals(const std::basic_stri template bool Jupiter::CString_Type::equals(const T *in) const { if (in == nullptr) return Jupiter::CString_Type::strLen == 0; - return Jupiter::streql(Jupiter::CString_Type::curr, in); + return Jupiter::streql(Jupiter::String_Type::str, in); } template bool Jupiter::CString_Type::equals(const T in) const { - return *Jupiter::CString_Type::curr == in && ((in == 0) || Jupiter::CString_Type::curr[1] == 0); + return *Jupiter::String_Type::str == in && ((in == 0) || Jupiter::String_Type::str[1] == 0); } // equalsi() @@ -107,12 +107,12 @@ template bool Jupiter::CString_Type::equalsi(const std::basic_str template<> bool inline Jupiter::CString_Type::equalsi(const char *in) const { - return streqli(Jupiter::CString_Type::curr, in); + return streqli(Jupiter::String_Type::str, in); } template<> bool inline Jupiter::CString_Type::equalsi(const wchar_t *in) const { - return wstreqli(Jupiter::CString_Type::curr, in); + return wstreqli(Jupiter::String_Type::str, in); } template bool Jupiter::CString_Type::equalsi(const T *in) const @@ -122,12 +122,12 @@ template bool Jupiter::CString_Type::equalsi(const T *in) const template<> bool inline Jupiter::CString_Type::equalsi(const char in) const { - return toupper(*Jupiter::CString_Type::curr) == toupper(in) && ((in == 0) || Jupiter::CString_Type::curr[1] == 0); + return toupper(*Jupiter::String_Type::str) == toupper(in) && ((in == 0) || Jupiter::String_Type::str[1] == 0); } template<> bool inline Jupiter::CString_Type::equalsi(const wchar_t in) const { - return towupper(*Jupiter::CString_Type::curr) == towupper(in) && ((in == 0) || Jupiter::CString_Type::curr[1] == 0); + return towupper(*Jupiter::String_Type::str) == towupper(in) && ((in == 0) || Jupiter::String_Type::str[1] == 0); } template bool Jupiter::CString_Type::equalsi(const T in) const @@ -149,12 +149,12 @@ template bool Jupiter::CString_Type::match(const std::basic_strin template<> inline bool Jupiter::CString_Type::match(const char *format) const { - return strmatch(format, Jupiter::CString_Type::curr); + return strmatch(format, Jupiter::String_Type::str); } template<> inline bool Jupiter::CString_Type::match(const wchar_t *format) const { - return wstrmatch(format, Jupiter::CString_Type::curr); + return wstrmatch(format, Jupiter::String_Type::str); } template bool Jupiter::CString_Type::match(const T *format) const @@ -176,12 +176,12 @@ template bool Jupiter::CString_Type::matchi(const std::basic_stri template<> bool inline Jupiter::CString_Type::matchi(const char *format) const { - return strmatchi(format, Jupiter::CString_Type::curr); + return strmatchi(format, Jupiter::String_Type::str); } template<> bool inline Jupiter::CString_Type::matchi(const wchar_t *format) const { - return wstrmatchi(format, Jupiter::CString_Type::curr); + return wstrmatchi(format, Jupiter::String_Type::str); } template bool Jupiter::CString_Type::matchi(const T *format) const @@ -256,7 +256,7 @@ template size_t Jupiter::CString_Type::aformat(const T *format, . template unsigned int Jupiter::CString_Type::wordCount(const T *whitespace) const { unsigned int result = 0; - T *p = Jupiter::CString_Type::curr; + T *p = Jupiter::String_Type::str; bool prev = true; while (*p != 0) { @@ -278,26 +278,26 @@ template size_t Jupiter::CString_Type::truncate(size_t n) { if (n >= Jupiter::CString_Type::strLen) { - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - *Jupiter::CString_Type::curr = 0; + Jupiter::String_Type::str = Jupiter::CString_Type::base; + *Jupiter::String_Type::str = 0; Jupiter::CString_Type::strLen = 0; return 0; } Jupiter::CString_Type::strLen -= n; - Jupiter::CString_Type::curr[Jupiter::CString_Type::strLen] = 0; + Jupiter::String_Type::str[Jupiter::CString_Type::strLen] = 0; return Jupiter::CString_Type::strLen; } template T &Jupiter::CString_Type::get(size_t index) const { - return Jupiter::CString_Type::curr[index]; + return Jupiter::String_Type::str[index]; } template size_t Jupiter::CString_Type::shiftLeft(size_t length) { - size_t offset = Jupiter::CString_Type::curr - Jupiter::CString_Type::base; + size_t offset = Jupiter::String_Type::str - Jupiter::CString_Type::base; if (length > offset) length = offset; - Jupiter::CString_Type::curr -= length; + Jupiter::String_Type::str -= length; Jupiter::CString_Type::strLen += length; return length; } @@ -305,7 +305,7 @@ template size_t Jupiter::CString_Type::shiftLeft(size_t length) template size_t Jupiter::CString_Type::shiftRight(size_t length) { if (length > Jupiter::CString_Type::strLen) length = Jupiter::CString_Type::strLen; - Jupiter::CString_Type::curr += length; + Jupiter::String_Type::str += length; Jupiter::CString_Type::strLen -= length; return length; } @@ -314,7 +314,7 @@ template bool Jupiter::CString_Type::remove(T &value) { for (unsigned int i = 0; i < Jupiter::CString_Type::strLen; i++) { - if (Jupiter::CString_Type::curr[i] == value) + if (Jupiter::String_Type::str[i] == value) { if (i == strLen - 1) Jupiter::CString_Type::truncate(1); else if (i == 0) @@ -324,7 +324,7 @@ template bool Jupiter::CString_Type::remove(T &value) } else { - Jupiter::strcpy(Jupiter::CString_Type::curr + i, Jupiter::CString_Type::curr + i + 1); + Jupiter::strcpy(Jupiter::String_Type::str + i, Jupiter::String_Type::str + i + 1); Jupiter::CString_Type::strLen--; } return true; @@ -335,7 +335,7 @@ template bool Jupiter::CString_Type::remove(T &value) template bool Jupiter::CString_Type::contains(const T &value) { - for (unsigned int i = 0; i < Jupiter::CString_Type::strLen; i++) if (Jupiter::CString_Type::curr[i] == value) return true; + for (unsigned int i = 0; i < Jupiter::CString_Type::strLen; i++) if (Jupiter::String_Type::str[i] == value) return true; return false; } @@ -347,8 +347,8 @@ template bool Jupiter::CString_Type::contains(const T &value) template Jupiter::CString_Strict::CString_Strict() { Jupiter::CString_Type::base = new T[1]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - *Jupiter::CString_Type::curr = 0; + Jupiter::String_Type::str = Jupiter::CString_Type::base; + *Jupiter::String_Type::str = 0; Jupiter::CString_Type::strLen = 0; } @@ -356,24 +356,24 @@ template Jupiter::CString_Strict::CString_Strict(const Jupiter::C { Jupiter::CString_Type::strLen = in.strLen; Jupiter::CString_Type::base = new T[Jupiter::CString_Type::strLen + 1]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - Jupiter::strcpy(Jupiter::CString_Type::curr, in.curr); + Jupiter::String_Type::str = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::String_Type::str, in.str); } template Jupiter::CString_Strict::CString_Strict(const Jupiter::String_Type &in) { Jupiter::CString_Type::strLen = in.size(); Jupiter::CString_Type::base = new T[Jupiter::CString_Type::strLen + 1]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - Jupiter::strcpy(Jupiter::CString_Type::curr, in.c_str()); + Jupiter::String_Type::str = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::String_Type::str, in.c_str()); } template Jupiter::CString_Strict::CString_Strict(const std::basic_string &in) { Jupiter::CString_Type::strLen = in.size(); Jupiter::CString_Type::base = new T[Jupiter::CString_Type::strLen + 1]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - Jupiter::strcpy(Jupiter::CString_Type::curr, in.c_str()); + Jupiter::String_Type::str = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::String_Type::str, in.c_str()); } template Jupiter::CString_Strict::CString_Strict(const T *in) @@ -382,15 +382,15 @@ template Jupiter::CString_Strict::CString_Strict(const T *in) { Jupiter::CString_Type::strLen = 0; Jupiter::CString_Type::base = new T[1]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - *Jupiter::CString_Type::curr = 0; + Jupiter::String_Type::str = Jupiter::CString_Type::base; + *Jupiter::String_Type::str = 0; } else { Jupiter::CString_Type::strLen = Jupiter::strlen(in); Jupiter::CString_Type::base = new T[Jupiter::CString_Type::strLen + 1]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - Jupiter::strcpy(Jupiter::CString_Type::curr, in); + Jupiter::String_Type::str = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::String_Type::str, in); } } @@ -400,16 +400,16 @@ template Jupiter::CString_Strict::CString_Strict(const T c) { Jupiter::CString_Type::strLen = 0; Jupiter::CString_Type::base = new T[1]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - *Jupiter::CString_Type::curr = 0; + Jupiter::String_Type::str = Jupiter::CString_Type::base; + *Jupiter::String_Type::str = 0; } else { Jupiter::CString_Type::strLen = 1; Jupiter::CString_Type::base = new T[Jupiter::CString_Type::strLen + 1]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - *Jupiter::CString_Type::curr = c; - Jupiter::CString_Type::curr[1] = 0; + Jupiter::String_Type::str = Jupiter::CString_Type::base; + *Jupiter::String_Type::str = c; + Jupiter::String_Type::str[1] = 0; } } @@ -433,10 +433,10 @@ template<> size_t inline Jupiter::CString_Strict::vformat(const char *form delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = new char[minLen + 1]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = minLen; - vsnprintf(Jupiter::CString_Type::curr, Jupiter::CString_Type::strLen, format, args); - Jupiter::CString_Type::curr[Jupiter::CString_Type::strLen] = 0; + vsnprintf(Jupiter::String_Type::str, Jupiter::CString_Type::strLen, format, args); + Jupiter::String_Type::str[Jupiter::CString_Type::strLen] = 0; return Jupiter::CString_Type::strLen; } @@ -453,10 +453,10 @@ template<> size_t inline Jupiter::CString_Strict::vformat(const wchar_t delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = new wchar_t[minLen + 1]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = minLen; - vswprintf(Jupiter::CString_Type::curr, Jupiter::CString_Type::strLen, format, args); - Jupiter::CString_Type::curr[Jupiter::CString_Type::strLen] = 0; + vswprintf(Jupiter::String_Type::str, Jupiter::CString_Type::strLen, format, args); + Jupiter::String_Type::str[Jupiter::CString_Type::strLen] = 0; return Jupiter::CString_Type::strLen; } @@ -477,15 +477,15 @@ template<> size_t inline Jupiter::CString_Strict::avformat(const char *for if (minLen < 0) return 0; // We simply can not work with this. char *t = new char[minLen + Jupiter::CString_Type::strLen + 1]; - Jupiter::strcpy(t, Jupiter::CString_Type::curr); + Jupiter::strcpy(t, Jupiter::String_Type::str); delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = t; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; - minLen = vsnprintf(Jupiter::CString_Type::curr + Jupiter::CString_Type::strLen, minLen, format, args); + minLen = vsnprintf(Jupiter::String_Type::str + Jupiter::CString_Type::strLen, minLen, format, args); if (minLen <= 0) return 0; Jupiter::CString_Type::strLen += minLen; - Jupiter::CString_Type::curr[Jupiter::CString_Type::strLen] = 0; + Jupiter::String_Type::str[Jupiter::CString_Type::strLen] = 0; return minLen; } @@ -499,15 +499,15 @@ template<> size_t inline Jupiter::CString_Strict::avformat(const wchar_ if (minLen < 0) return 0; // We simply can not work with this. wchar_t *t = new wchar_t[minLen + Jupiter::CString_Type::strLen + 1]; - Jupiter::strcpy(t, Jupiter::CString_Type::curr); + Jupiter::strcpy(t, Jupiter::String_Type::str); delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = t; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; - minLen = vswprintf(Jupiter::CString_Type::curr + Jupiter::CString_Type::strLen, minLen, format, args); + minLen = vswprintf(Jupiter::String_Type::str + Jupiter::CString_Type::strLen, minLen, format, args); if (minLen <= 0) return 0; Jupiter::CString_Type::strLen += minLen; - Jupiter::CString_Type::curr[Jupiter::CString_Type::strLen] = 0; + Jupiter::String_Type::str[Jupiter::CString_Type::strLen] = 0; return minLen; } @@ -530,7 +530,7 @@ template Jupiter::CString_Strict Jupiter::CString_Strict::subs { Jupiter::CString_Strict r; r.setString(new char[length + 1], length); - r.strLen = Jupiter::strlen(Jupiter::strcpy(r.curr, Jupiter::CString_Type::curr + pos, length)); + r.strLen = Jupiter::strlen(Jupiter::strcpy(r.str, Jupiter::String_Type::str + pos, length)); return r; } @@ -572,13 +572,13 @@ template Jupiter::CString_Strict Jupiter::CString_Strict::getW r.strLen = y - x; delete[] r.base; r.base = new char[r.strLen + 1]; - r.curr = r.base; + r.str = r.base; for (i = 0; x < y; i++) { - r.curr[i] = in[x]; + r.str[i] = in[x]; x++; } - r.curr[r.strLen] = 0; + r.str[r.strLen] = 0; return r; } @@ -622,9 +622,9 @@ template size_t Jupiter::CString_Strict::set(const String_Type delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = new T[sSize + 1]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = sSize; - Jupiter::strcpy(Jupiter::CString_Type::curr, in.c_str()); + Jupiter::strcpy(Jupiter::String_Type::str, in.c_str()); return sSize; } @@ -636,9 +636,9 @@ template size_t Jupiter::CString_Strict::set(const std::basic_str delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = new T[sSize + 1]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = sSize; - Jupiter::strcpy(Jupiter::CString_Type::curr, in.c_str()); + Jupiter::strcpy(Jupiter::String_Type::str, in.c_str()); return sSize; } @@ -650,9 +650,9 @@ template size_t Jupiter::CString_Strict::set(const T *in) delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = new T[sSize + 1]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = sSize; - Jupiter::strcpy(Jupiter::CString_Type::curr, in); + Jupiter::strcpy(Jupiter::String_Type::str, in); return sSize; } @@ -660,8 +660,8 @@ template size_t Jupiter::CString_Strict::set(const T in) { if (in == 0) { - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - *Jupiter::CString_Type::curr = 0; + Jupiter::String_Type::str = Jupiter::CString_Type::base; + *Jupiter::String_Type::str = 0; return Jupiter::CString_Type::strLen = 0; } if (Jupiter::CString_Type::strLen < 1) @@ -669,9 +669,9 @@ template size_t Jupiter::CString_Strict::set(const T in) delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = new T[2]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - *Jupiter::CString_Type::curr = in; - Jupiter::CString_Type::curr[1] = 0; + Jupiter::String_Type::str = Jupiter::CString_Type::base; + *Jupiter::String_Type::str = in; + Jupiter::String_Type::str[1] = 0; return Jupiter::CString_Type::strLen = 1; } @@ -684,7 +684,7 @@ template size_t Jupiter::CString_Strict::setString(T *in, size_t { delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = in; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; return Jupiter::CString_Type::strLen = size; } @@ -692,11 +692,11 @@ template size_t Jupiter::CString_Strict::concat(const String_Type { size_t nSize = Jupiter::CString_Type::strLen + in.size(); T *tmp = new T[nSize + 1]; - Jupiter::strcpy(tmp, Jupiter::CString_Type::curr); + Jupiter::strcpy(tmp, Jupiter::String_Type::str); Jupiter::strcpy(tmp + Jupiter::CString_Type::strLen, in.c_str()); delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = tmp; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = nSize; return nSize; } @@ -705,11 +705,11 @@ template size_t Jupiter::CString_Strict::concat(const std::basic_ { size_t nSize = Jupiter::CString_Type::strLen + in.size(); T *tmp = new T[nSize + 1]; - Jupiter::strcpy(tmp, Jupiter::CString_Type::curr); + Jupiter::strcpy(tmp, Jupiter::String_Type::str); Jupiter::strcpy(tmp + Jupiter::CString_Type::strLen, in.c_str()); delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = tmp; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = nSize; return nSize; } @@ -718,11 +718,11 @@ template size_t Jupiter::CString_Strict::concat(const T *in) { size_t nSize = Jupiter::CString_Type::strLen + Jupiter::strlen(in); T *tmp = new T[nSize + 1]; - Jupiter::strcpy(tmp, Jupiter::CString_Type::curr); + Jupiter::strcpy(tmp, Jupiter::String_Type::str); Jupiter::strcpy(tmp + Jupiter::CString_Type::strLen, in); delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = tmp; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = nSize; return nSize; } @@ -731,12 +731,12 @@ template size_t Jupiter::CString_Strict::concat(const T c) { size_t nSize = Jupiter::CString_Type::strLen + 1; T *tmp = new T[nSize + 1]; - Jupiter::strcpy(tmp, Jupiter::CString_Type::curr); + Jupiter::strcpy(tmp, Jupiter::String_Type::str); tmp[nSize - 1] = c; tmp[nSize] = 0; delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = tmp; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = nSize; return nSize; } @@ -750,8 +750,8 @@ template Jupiter::CString_Loose::CString_Loose() { Jupiter::CString_Loose::strSize = Jupiter::CString_Loose::start_size; Jupiter::CString_Type::base = new T[Jupiter::CString_Loose::strSize]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - *Jupiter::CString_Type::curr = 0; + Jupiter::String_Type::str = Jupiter::CString_Type::base; + *Jupiter::String_Type::str = 0; Jupiter::CString_Type::strLen = 0; } @@ -759,8 +759,8 @@ template Jupiter::CString_Loose::CString_Loose(const Jupiter::CSt { Jupiter::CString_Loose::strSize = in.strSize; Jupiter::CString_Type::base = new T[Jupiter::CString_Loose::strSize]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - Jupiter::strcpy(Jupiter::CString_Type::curr, in.curr); + Jupiter::String_Type::str = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::String_Type::str, in.str); Jupiter::CString_Type::strLen = in.strLen; } @@ -770,8 +770,8 @@ template Jupiter::CString_Loose::CString_Loose(const Jupiter::Str Jupiter::CString_Loose::strSize = getPowerTwo32(Jupiter::CString_Type::strLen + 1); if (Jupiter::CString_Loose::strSize < 8) Jupiter::CString_Loose::strSize = 8; Jupiter::CString_Type::base = new T[Jupiter::CString_Loose::strSize]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - Jupiter::strcpy(Jupiter::CString_Type::curr, in.c_str()); + Jupiter::String_Type::str = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::String_Type::str, in.c_str()); } template Jupiter::CString_Loose::CString_Loose(const std::basic_string &in) @@ -780,8 +780,8 @@ template Jupiter::CString_Loose::CString_Loose(const std::basic_s Jupiter::CString_Loose::strSize = getPowerTwo32(Jupiter::CString_Type::strLen + 1); if (Jupiter::CString_Loose::strSize < 8) Jupiter::CString_Loose::strSize = 8; Jupiter::CString_Type::base = new T[Jupiter::CString_Loose::strSize]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - Jupiter::strcpy(Jupiter::CString_Type::curr, in.c_str()); + Jupiter::String_Type::str = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::String_Type::str, in.c_str()); } template Jupiter::CString_Loose::CString_Loose(const T *in) @@ -790,8 +790,8 @@ template Jupiter::CString_Loose::CString_Loose(const T *in) { Jupiter::CString_Loose::strSize = Jupiter::CString_Loose::start_size; Jupiter::CString_Type::base = new T[Jupiter::CString_Loose::strSize]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - *Jupiter::CString_Type::curr = 0; + Jupiter::String_Type::str = Jupiter::CString_Type::base; + *Jupiter::String_Type::str = 0; Jupiter::CString_Type::strLen = 0; } else @@ -800,8 +800,8 @@ template Jupiter::CString_Loose::CString_Loose(const T *in) Jupiter::CString_Loose::strSize = getPowerTwo32(Jupiter::CString_Type::strLen + 1); if (Jupiter::CString_Loose::strSize < 8) Jupiter::CString_Loose::strSize = 8; Jupiter::CString_Type::base = new T[Jupiter::CString_Loose::strSize]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - Jupiter::strcpy(Jupiter::CString_Type::curr, in); + Jupiter::String_Type::str = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::String_Type::str, in); } } @@ -809,17 +809,17 @@ template Jupiter::CString_Loose::CString_Loose(const T in) { Jupiter::CString_Loose::strSize = Jupiter::CString_Loose::start_size; Jupiter::CString_Type::base = new T[Jupiter::CString_Loose::strSize]; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; if (in == 0) { Jupiter::CString_Type::strLen = 0; - *Jupiter::CString_Type::curr = 0; + *Jupiter::String_Type::str = 0; } else { Jupiter::CString_Type::strLen = 1; - *Jupiter::CString_Type::curr = in; - Jupiter::CString_Type::curr[1] = 0; + *Jupiter::String_Type::str = in; + Jupiter::String_Type::str[1] = 0; } } @@ -842,10 +842,10 @@ template<> size_t inline Jupiter::CString_Loose::vformat(const char *forma Jupiter::CString_Loose::strSize = getPowerTwo32(minLen + 1); Jupiter::CString_Type::base = new char[Jupiter::CString_Loose::strSize]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = minLen; - vsnprintf(Jupiter::CString_Type::curr, Jupiter::CString_Loose::strSize, format, args); - Jupiter::CString_Type::curr[Jupiter::CString_Type::strLen] = 0; + vsnprintf(Jupiter::String_Type::str, Jupiter::CString_Loose::strSize, format, args); + Jupiter::String_Type::str[Jupiter::CString_Type::strLen] = 0; return Jupiter::CString_Type::strLen; } @@ -863,10 +863,10 @@ template<> size_t inline Jupiter::CString_Loose::vformat(const wchar_t Jupiter::CString_Loose::strSize = getPowerTwo32(minLen + 1); Jupiter::CString_Type::base = new wchar_t[Jupiter::CString_Loose::strSize]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = minLen; - vswprintf(Jupiter::CString_Type::curr, Jupiter::CString_Loose::strSize, format, args); - Jupiter::CString_Type::curr[Jupiter::CString_Type::strLen] = 0; + vswprintf(Jupiter::String_Type::str, Jupiter::CString_Loose::strSize, format, args); + Jupiter::String_Type::str[Jupiter::CString_Type::strLen] = 0; return Jupiter::CString_Type::strLen; } @@ -888,20 +888,20 @@ template<> size_t inline Jupiter::CString_Loose::avformat(const char *form { Jupiter::CString_Loose::strSize = getPowerTwo32(minLen + 1); char *tmpStr = new char[Jupiter::CString_Loose::strSize]; - Jupiter::strcpy(tmpStr, Jupiter::CString_Type::curr); + Jupiter::strcpy(tmpStr, Jupiter::String_Type::str); delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = tmpStr; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - else if ((unsigned)minLen + 1 + (Jupiter::CString_Type::curr - Jupiter::CString_Type::base) > Jupiter::CString_Loose::strSize) + else if ((unsigned)minLen + 1 + (Jupiter::String_Type::str - Jupiter::CString_Type::base) > Jupiter::CString_Loose::strSize) { - Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::CString_Type::curr); - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::String_Type::str); + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - minLen = vsnprintf(Jupiter::CString_Type::curr + Jupiter::CString_Type::strLen, Jupiter::CString_Loose::strSize - Jupiter::CString_Type::strLen, format, args); + minLen = vsnprintf(Jupiter::String_Type::str + Jupiter::CString_Type::strLen, Jupiter::CString_Loose::strSize - Jupiter::CString_Type::strLen, format, args); if (minLen <= 0) return 0; Jupiter::CString_Type::strLen += minLen; - Jupiter::CString_Type::curr[Jupiter::CString_Type::strLen] = 0; + Jupiter::String_Type::str[Jupiter::CString_Type::strLen] = 0; return minLen; } @@ -918,20 +918,20 @@ template<> size_t inline Jupiter::CString_Loose::avformat(const wchar_t { Jupiter::CString_Loose::strSize = getPowerTwo32(minLen + 1); wchar_t *tmpStr = new wchar_t[Jupiter::CString_Loose::strSize]; - Jupiter::strcpy(tmpStr, Jupiter::CString_Type::curr); + Jupiter::strcpy(tmpStr, Jupiter::String_Type::str); delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = tmpStr; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - else if ((unsigned)minLen + 1 + (Jupiter::CString_Type::curr - Jupiter::CString_Type::base) > Jupiter::CString_Loose::strSize) + else if ((unsigned)minLen + 1 + (Jupiter::String_Type::str - Jupiter::CString_Type::base) > Jupiter::CString_Loose::strSize) { - Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::CString_Type::curr); - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::String_Type::str); + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - minLen = vswprintf(Jupiter::CString_Type::curr + Jupiter::CString_Type::strLen, Jupiter::CString_Loose::strSize - Jupiter::CString_Type::strLen, format, args); + minLen = vswprintf(Jupiter::String_Type::str + Jupiter::CString_Type::strLen, Jupiter::CString_Loose::strSize - Jupiter::CString_Type::strLen, format, args); if (minLen <= 0) return 0; Jupiter::CString_Type::strLen += minLen; - Jupiter::CString_Type::curr[Jupiter::CString_Type::strLen] = 0; + Jupiter::String_Type::str[Jupiter::CString_Type::strLen] = 0; return minLen; } @@ -956,9 +956,9 @@ template Jupiter::CString_Loose Jupiter::CString_Loose::substr r.strSize = getPowerTwo32(length + 1); delete[] r.base; r.base = new char[r.strSize]; - r.curr = r.base; + r.str = r.base; r.strLen = length; - Jupiter::strcpy(r.curr, Jupiter::CString_Type::curr + pos, length); + Jupiter::strcpy(r.str, Jupiter::String_Type::str + pos, length); return r; } @@ -1000,13 +1000,13 @@ template Jupiter::CString_Loose Jupiter::CString_Loose::getWor r.strSize = getPowerTwo32(r.strLen + 1); delete[] r.base; r.base = new char[r.strSize]; - r.curr = r.base; + r.str = r.base; for (i = 0; x < y; i++) { - r.curr[i] = in[x]; + r.str[i] = in[x]; x++; } - r.curr[i] = 0; + r.str[i] = 0; return r; } @@ -1050,9 +1050,9 @@ template size_t Jupiter::CString_Loose::set(const CString_Loose::strSize = in.strSize; Jupiter::CString_Type::base = new T[Jupiter::CString_Loose::strSize]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = in.strLen; - Jupiter::strcpy(Jupiter::CString_Type::curr, in.curr); + Jupiter::strcpy(Jupiter::String_Type::str, in.str); return Jupiter::CString_Type::strLen; } @@ -1065,9 +1065,9 @@ template size_t Jupiter::CString_Loose::set(const String_Type Jupiter::CString_Loose::strSize = getPowerTwo32(sSize); Jupiter::CString_Type::base = new T[Jupiter::CString_Loose::strSize]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = sSize - 1; - Jupiter::strcpy(Jupiter::CString_Type::curr, in.c_str()); + Jupiter::strcpy(Jupiter::String_Type::str, in.c_str()); return Jupiter::CString_Type::strLen; } @@ -1080,9 +1080,9 @@ template size_t Jupiter::CString_Loose::set(const std::basic_stri Jupiter::CString_Loose::strSize = getPowerTwo32(sSize); Jupiter::CString_Type::base = new T[Jupiter::CString_Loose::strSize]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = sSize - 1; - Jupiter::strcpy(Jupiter::CString_Type::curr, in.c_str()); + Jupiter::strcpy(Jupiter::String_Type::str, in.c_str()); return Jupiter::CString_Type::strLen; } @@ -1095,9 +1095,9 @@ template size_t Jupiter::CString_Loose::set(const T *in) Jupiter::CString_Loose::strSize = getPowerTwo32(sSize); Jupiter::CString_Type::base = new T[Jupiter::CString_Loose::strSize]; } - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; Jupiter::CString_Type::strLen = sSize - 1; - Jupiter::strcpy(Jupiter::CString_Type::curr, in); + Jupiter::strcpy(Jupiter::String_Type::str, in); return Jupiter::CString_Type::strLen; } @@ -1105,14 +1105,14 @@ template size_t Jupiter::CString_Loose::set(const T in) { if (in == 0) { - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - *Jupiter::CString_Type::curr = 0; + Jupiter::String_Type::str = Jupiter::CString_Type::base; + *Jupiter::String_Type::str = 0; return Jupiter::CString_Type::strLen = 0; } Jupiter::CString_Type::strLen = 1; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; - *Jupiter::CString_Type::curr = in; - Jupiter::CString_Type::curr[1] = 0; + Jupiter::String_Type::str = Jupiter::CString_Type::base; + *Jupiter::String_Type::str = in; + Jupiter::String_Type::str[1] = 0; return 1; } @@ -1123,17 +1123,17 @@ template size_t Jupiter::CString_Loose::concat(const String_Type< { Jupiter::CString_Loose::strSize = getPowerTwo32(nLen + 1); T *tmp = new T[Jupiter::CString_Loose::strSize]; - Jupiter::strcpy(tmp, Jupiter::CString_Type::curr); + Jupiter::strcpy(tmp, Jupiter::String_Type::str); delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = tmp; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - else if (nLen + 1 + (Jupiter::CString_Type::curr - Jupiter::CString_Type::base) > Jupiter::CString_Loose::strSize) + else if (nLen + 1 + (Jupiter::String_Type::str - Jupiter::CString_Type::base) > Jupiter::CString_Loose::strSize) { - Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::CString_Type::curr); - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::String_Type::str); + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - Jupiter::strcpy(Jupiter::CString_Type::curr + Jupiter::CString_Type::strLen, in.c_str()); + Jupiter::strcpy(Jupiter::String_Type::str + Jupiter::CString_Type::strLen, in.c_str()); Jupiter::CString_Type::strLen = nLen; return Jupiter::CString_Type::strLen; } @@ -1145,17 +1145,17 @@ template size_t Jupiter::CString_Loose::concat(const std::basic_s { Jupiter::CString_Loose::strSize = getPowerTwo32(nLen + 1); T *tmp = new T[Jupiter::CString_Loose::strSize]; - Jupiter::strcpy(tmp, Jupiter::CString_Type::curr); + Jupiter::strcpy(tmp, Jupiter::String_Type::str); delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = tmp; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - else if (nLen + 1 + (Jupiter::CString_Type::curr - Jupiter::CString_Type::base) > Jupiter::CString_Loose::strSize) + else if (nLen + 1 + (Jupiter::String_Type::str - Jupiter::CString_Type::base) > Jupiter::CString_Loose::strSize) { - Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::CString_Type::curr); - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::String_Type::str); + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - Jupiter::strcpy(Jupiter::CString_Type::curr + Jupiter::CString_Type::strLen, in.c_str()); + Jupiter::strcpy(Jupiter::String_Type::str + Jupiter::CString_Type::strLen, in.c_str()); Jupiter::CString_Type::strLen = nLen; return Jupiter::CString_Type::strLen; } @@ -1167,17 +1167,17 @@ template size_t Jupiter::CString_Loose::concat(const T *in) { Jupiter::CString_Loose::strSize = getPowerTwo32(nLen + 1); T *tmp = new T[Jupiter::CString_Loose::strSize]; - Jupiter::strcpy(tmp, Jupiter::CString_Type::curr); + Jupiter::strcpy(tmp, Jupiter::String_Type::str); delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = tmp; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - else if (nLen + 1 + (Jupiter::CString_Type::curr - Jupiter::CString_Type::base) > Jupiter::CString_Loose::strSize) + else if (nLen + 1 + (Jupiter::String_Type::str - Jupiter::CString_Type::base) > Jupiter::CString_Loose::strSize) { - Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::CString_Type::curr); - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::String_Type::str); + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - Jupiter::strcpy(Jupiter::CString_Type::curr + Jupiter::CString_Type::strLen, in); + Jupiter::strcpy(Jupiter::String_Type::str + Jupiter::CString_Type::strLen, in); Jupiter::CString_Type::strLen = nLen; return Jupiter::CString_Type::strLen; } @@ -1188,19 +1188,19 @@ template size_t Jupiter::CString_Loose::concat(const T in) { Jupiter::CString_Loose::strSize = getPowerTwo32(Jupiter::CString_Loose::strSize + 1); T *tmp = new T[Jupiter::CString_Loose::strSize]; - Jupiter::strcpy(tmp, Jupiter::CString_Type::curr); + Jupiter::strcpy(tmp, Jupiter::String_Type::str); delete[] Jupiter::CString_Type::base; Jupiter::CString_Type::base = tmp; - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - else if (Jupiter::CString_Type::strLen + 1 + (Jupiter::CString_Type::curr - Jupiter::CString_Type::base) >= Jupiter::CString_Loose::strSize) + else if (Jupiter::CString_Type::strLen + 1 + (Jupiter::String_Type::str - Jupiter::CString_Type::base) >= Jupiter::CString_Loose::strSize) { - Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::CString_Type::curr); - Jupiter::CString_Type::curr = Jupiter::CString_Type::base; + Jupiter::strcpy(Jupiter::CString_Type::base, Jupiter::String_Type::str); + Jupiter::String_Type::str = Jupiter::CString_Type::base; } - Jupiter::CString_Type::curr[Jupiter::CString_Type::strLen] = in; + Jupiter::String_Type::str[Jupiter::CString_Type::strLen] = in; Jupiter::CString_Type::strLen++; - Jupiter::CString_Type::curr[Jupiter::CString_Type::strLen] = 0; + Jupiter::String_Type::str[Jupiter::CString_Type::strLen] = 0; return Jupiter::CString_Type::strLen; } diff --git a/Jupiter/String_Type.h b/Jupiter/String_Type.h index 3b9f0f3..52c1708 100644 --- a/Jupiter/String_Type.h +++ b/Jupiter/String_Type.h @@ -245,6 +245,9 @@ namespace Jupiter * A copy constructor for std::basic_string. * A copy constructor for C-style strings. */ + + protected: + T *str; /** Pointer for the underlying string of elements */ }; /** Generic String Type */