From 2a349c6ceb4dd0ebeb9ad3dd34bb19ad3d29dc95 Mon Sep 17 00:00:00 2001 From: Brad Arant Date: Tue, 23 Aug 2022 09:30:56 -0700 Subject: [PATCH] Many fixes for MString, ZString. --- File.cpp | 5 +++++ File.h | 3 ++- MString.cpp | 22 +++++++++++----------- ZString.cpp | 28 ++++++++++++++++++++-------- ZString.h | 31 +++++++++++++++++++------------ testing/mstring_test | Bin 410952 -> 410960 bytes testing/mstring_test.cpp | 3 ++- testing/zstring_test | Bin 363512 -> 363520 bytes testing/zstring_test.cpp | 7 ++++++- 9 files changed, 65 insertions(+), 34 deletions(-) diff --git a/File.cpp b/File.cpp index aed1731..33211ad 100644 --- a/File.cpp +++ b/File.cpp @@ -63,4 +63,9 @@ namespace coreutils { return std::string(buffer, size); } + coreutils::ZString & File::asZString() { + zstring = ZString(buffer, size); + return zstring; + } + } diff --git a/File.h b/File.h index 7f2c13f..d2bb3e9 100644 --- a/File.h +++ b/File.h @@ -24,7 +24,7 @@ namespace coreutils { void write(std::string data); void write(coreutils::ZString &data); std::string asString(); - + coreutils::ZString& asZString(); char *buffer; size_t size; @@ -33,6 +33,7 @@ namespace coreutils { private: void open(std::string fileName, int mode, int authority); int fd; + coreutils::ZString zstring; }; diff --git a/MString.cpp b/MString.cpp index a7cf8e0..8c3d43f 100644 --- a/MString.cpp +++ b/MString.cpp @@ -105,30 +105,30 @@ namespace coreutils { int len = strlen(value); setSize(len + length); memcpy(data + temp, value, len); - return *this; + return *this; } MString& MString::operator<<(const int value) { std::stringstream temp; temp << value; *this << temp.str(); - return *this; + return *this; } - // MString& MString::operator<<(coreutils::ZString &zstring) { - // int temp = length; - // int len = length + zstring.getLength(); - // setSize(len); - // memcpy(data + temp, zstring.getData(), zstring.getLength()); - // return *this; - // } +// MString& MString::operator<<(coreutils::ZString &zstring) { +// int temp = length; +// int len = length + zstring.getLength(); +// setSize(len); +// memcpy(data + temp, zstring.getData(), zstring.getLength()); +// return *this; +// } MString& MString::operator<<(coreutils::ZString zstring) { int temp = length; int len = length + zstring.getLength(); setSize(len); memcpy(data + temp, zstring.getData(), zstring.getLength()); - return *this; + return *this; } MString& MString::operator<<(std::string value) { @@ -136,7 +136,7 @@ namespace coreutils { int len = length + value.length(); setSize(len); memcpy(data + temp, value.c_str(), value.length()); - return *this; + return *this; } MString& MString::write(char ch) { diff --git a/ZString.cpp b/ZString.cpp index 81c5c9f..e583997 100644 --- a/ZString.cpp +++ b/ZString.cpp @@ -45,14 +45,20 @@ namespace coreutils { // Log(LOG_DEBUG_2) << "ZString Copy Constructor: "; } - ZString::ZString(std::string data) { + ZString::ZString(std::string &data) { this->data = (char *)data.c_str(); length = data.length(); cursor = (char *)data.c_str(); } +// ZString::ZString(std::string data) { +// this->data = (char *)data.c_str(); +// length = data.length(); +// cursor = (char *)data.c_str(); +// } + ZString::~ZString() { - if(cdata) + if(cdata != NULL) free(cdata); } @@ -64,10 +70,16 @@ namespace coreutils { return (strncmp(data, valuex.data, valuex.length <= length ? valuex.length : length) > 0); } - bool ZString::operator==(const ZString &valuex) const { + bool ZString::operator==(const ZString &valuex) { return (strncmp(data, valuex.data, valuex.length <= length ? valuex.length : length) == 0); } + bool ZString::operator==(std::string value) { + if(value.length() != length) + return false; + return (strncmp(data, value.c_str(), length) == 0); + } + bool ZString::operator==(const char *valuex) const { return (strncmp(data, valuex, length) == 0); } @@ -105,14 +117,14 @@ namespace coreutils { } void ZString::push() { - stack.push(cursor); + stack.push(cursor); } void ZString::pop() { cursor = stack.top(); - stack.pop(); + stack.pop(); } - + std::string ZString::str() { return std::string(data, length); } @@ -126,7 +138,7 @@ namespace coreutils { strncpy(cdata, data, length); cdata[length] = '\0'; return cdata; - } + } ZString ZString::substring(int start) { char *end = data + length; @@ -167,7 +179,7 @@ namespace coreutils { } } list.push_back(ZString(cursor, pos - cursor)); - cursor = pos; + cursor = data; return list; } diff --git a/ZString.h b/ZString.h index b7790e7..af0b45f 100644 --- a/ZString.h +++ b/ZString.h @@ -56,7 +56,7 @@ namespace coreutils { /// /// /// - + ZString(const char *data, size_t length); /// @@ -69,7 +69,13 @@ namespace coreutils { /// Consructor from a string. /// - ZString(std::string string); + ZString(std::string &string); + + /// + /// Consructor from a string. + /// + +// ZString(std::string string); /// /// Destructor for the ZString. @@ -90,15 +96,16 @@ namespace coreutils { /// /// /// - + bool operator<(const ZString &valuex) const; /// /// /// - + bool operator>(const ZString &valuex) const; - bool operator==(const ZString &valuex) const; + bool operator==(const ZString &valuex); + bool operator==(std::string value); bool operator==(const char *valuex) const; bool operator!=(const ZString &valuex) const; bool operator!=(const char *valuex) const; @@ -165,9 +172,9 @@ namespace coreutils { /// /// /// - + ZString substring(int start, int len); - + /// /// /// @@ -197,7 +204,7 @@ namespace coreutils { /// /// /// - + ZString getTokenExclude(std::string exclude); /// @@ -252,13 +259,13 @@ namespace coreutils { /// /// /// - + bool ifNext(ZString &value); /// /// /// - + int ifEqualsCount(ZString &comparator); /// @@ -296,7 +303,7 @@ namespace coreutils { /// /// /// - + void setCursor(char *cursor); /// @@ -323,7 +330,7 @@ namespace coreutils { /// /// /// - + ZString unparsed(); /// diff --git a/testing/mstring_test b/testing/mstring_test index 01f0d21381e402e1954326c95c83ea383f8adb37..422aee40551d16796ea6d15f05207e5134e74f47 100755 GIT binary patch delta 29450 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 a)#?C9V4raaV%s=OVGlWEvRWP8YW#nr@a-l5 diff --git a/testing/mstring_test.cpp b/testing/mstring_test.cpp index 9fb9fc5..e499d0a 100644 --- a/testing/mstring_test.cpp +++ b/testing/mstring_test.cpp @@ -17,8 +17,9 @@ int main(int argc, char **argv) { test3 = 'a'; std::cout << "char operator=: [" << test3 << "]." << std::endl; + coreutils::ZString test7("zstring data"); coreutils::MString test4; - test4 << "this is a test."; + test4 << "this is a test." << test7; std::cout << "char* operator<<: [" << test4 << "]." << std::endl; test4 << "another test " << 75; std::cout << "char* operator<<: [" << test4 << "]." << std::endl; diff --git a/testing/zstring_test b/testing/zstring_test index 5d13824db0ffcd54db05758cecfefd291439187d..c2d7ff616f01672142b34da69e95c79d38929472 100755 GIT binary patch delta 27862 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 W7MKCR5BNBEu@xK!va1