Fixed equals on zstring when length mismatches occured.

This commit is contained in:
Brad Arant 2021-08-31 17:59:24 -07:00
parent deb88cb14d
commit 191899fbb7
2 changed files with 24 additions and 11 deletions

View File

@ -36,7 +36,7 @@ namespace coreutils {
data = zstring.data;
length = zstring.length;
cursor = zstring.cursor;
Log(LOG_DEBUG_2) << "ZSrting Copy Constructor: ";
// Log(LOG_DEBUG_2) << "ZSrting Copy Constructor: ";
}
std::vector<ZString> &ZString::getList() {
@ -109,15 +109,23 @@ namespace coreutils {
ZString &ZString::operator[](int index) {
return list[index];
}
bool ZString::eod() {
return cursor >= data + length;
}
bool ZString::equals(const char *value) {
if(strlen(value) != length)
return false;
return strncmp(data, value, length) == 0;
}
bool ZString::equals(char *value) {
if(strlen(value) != length)
return false;
return strncmp(data, value, length) == 0;
}
bool ZString::equals(ZString &zstring) {
if(zstring.getLength() != getLength())
return false;
@ -127,7 +135,7 @@ namespace coreutils {
bool ZString::equals(std::string &string) {
return string == std::string(data, length);
}
bool ZString::ifNext(const char *value) {
bool test = (strncmp(cursor, value, strlen(value)) == 0);
if(test)

View File

@ -58,7 +58,6 @@ namespace coreutils {
friend std::ostream& operator<<(std::ostream& os, const ZString& zstring);
friend std::ostream& operator<<(std::ostream& os, const std::string& string);
friend std::ostream& operator+(std::ostream& os, const ZString& zstring);
///
@ -131,19 +130,25 @@ namespace coreutils {
///
///
///
bool equals(const char *value);
///
///
///
bool equals(char *value);
///
///
///
bool equals(ZString &zstring);
///
///
///
bool equals(std::string &string);
///