[Scummvm-cvs-logs] SF.net SVN: scummvm: [23633] scummvm/trunk/common
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Sun Jul 30 14:17:56 CEST 2006
Revision: 23633
Author: fingolfin
Date: 2006-07-30 05:17:51 -0700 (Sun, 30 Jul 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=23633&view=rev
Log Message:
-----------
Added new equals(IgnoreCase) and compareTo(IgnoreCase) methods to class String
Modified Paths:
--------------
scummvm/trunk/common/str.cpp
scummvm/trunk/common/str.h
Modified: scummvm/trunk/common/str.cpp
===================================================================
--- scummvm/trunk/common/str.cpp 2006-07-30 12:15:52 UTC (rev 23632)
+++ scummvm/trunk/common/str.cpp 2006-07-30 12:17:51 UTC (rev 23633)
@@ -22,6 +22,7 @@
#include "common/stdafx.h"
#include "common/str.h"
+#include "common/hash.h"
#include "common/util.h"
#include <ctype.h>
@@ -283,44 +284,96 @@
_str = newStr;
}
+uint String::hash() const {
+ return hashit(c_str());
+}
+
#pragma mark -
bool String::operator ==(const String &x) const {
- return (0 == strcmp(c_str(), x.c_str()));
+ return equals(x);
}
bool String::operator ==(const char *x) const {
assert(x != 0);
- return (0 == strcmp(c_str(), x));
+ return equals(x);
}
bool String::operator !=(const String &x) const {
- return (0 != strcmp(c_str(), x.c_str()));
+ return !equals(x);
}
bool String::operator !=(const char *x) const {
assert(x != 0);
- return (0 != strcmp(c_str(), x));
+ return !equals(x);
}
bool String::operator < (const String &x) const {
- return strcmp(c_str(), x.c_str()) < 0;
+ return compareTo(x) < 0;
}
bool String::operator <= (const String &x) const {
- return strcmp(c_str(), x.c_str()) <= 0;
+ return compareTo(x) <= 0;
}
bool String::operator > (const String &x) const {
- return (x < *this);
+ return compareTo(x) > 0;
}
bool String::operator >= (const String &x) const {
- return (x <= *this);
+ return compareTo(x) >= 0;
}
#pragma mark -
+bool operator == (const char* y, const String &x) {
+ return (x == y);
+}
+
+bool operator != (const char* y, const String &x) {
+ return x != y;
+}
+
+#pragma mark -
+
+bool String::equals(const String &x) const {
+ return (0 == compareTo(x));
+}
+
+bool String::equals(const char *x) const {
+ assert(x != 0);
+ return (0 == compareTo(x));
+}
+
+bool String::equalsIgnoreCase(const String &x) const {
+ return (0 == compareToIgnoreCase(x));
+}
+
+bool String::equalsIgnoreCase(const char *x) const {
+ assert(x != 0);
+ return (0 == compareToIgnoreCase(x));
+}
+
+int String::compareTo(const String &x) const {
+ return compareTo(x.c_str());
+}
+
+int String::compareTo(const char *x) const {
+ assert(x != 0);
+ return strcmp(c_str(), x);
+}
+
+int String::compareToIgnoreCase(const String &x) const {
+ return compareToIgnoreCase(x.c_str());
+}
+
+int String::compareToIgnoreCase(const char *x) const {
+ assert(x != 0);
+ return scumm_stricmp(c_str(), x);
+}
+
+#pragma mark -
+
String operator +(const String &x, const String &y) {
String temp(x);
temp += y;
@@ -339,14 +392,5 @@
return temp;
}
-#pragma mark -
-bool operator == (const char* y, const String &x) {
- return (x == y);
-}
-
-bool operator != (const char* y, const String &x) {
- return x != y;
-}
-
} // End of namespace Common
Modified: scummvm/trunk/common/str.h
===================================================================
--- scummvm/trunk/common/str.h 2006-07-30 12:15:52 UTC (rev 23632)
+++ scummvm/trunk/common/str.h 2006-07-30 12:17:51 UTC (rev 23633)
@@ -60,11 +60,24 @@
bool operator ==(const char *x) const;
bool operator !=(const String &x) const;
bool operator !=(const char *x) const;
+
bool operator <(const String &x) const;
bool operator <=(const String &x) const;
bool operator >(const String &x) const;
bool operator >=(const String &x) const;
+ bool equals(const String &x) const;
+ bool equalsIgnoreCase(const String &x) const;
+ int compareTo(const String &x) const; // strcmp clone
+ int compareToIgnoreCase(const String &x) const; // stricmp clone
+
+ bool equals(const char *x) const;
+ bool equalsIgnoreCase(const char *x) const;
+ int compareTo(const char *x) const; // strcmp clone
+ int compareToIgnoreCase(const char *x) const; // stricmp clone
+
+
+
bool hasSuffix(const char *x) const;
bool hasPrefix(const char *x) const;
@@ -92,6 +105,8 @@
void toLowercase();
void toUppercase();
+ uint hash() const;
+
public:
typedef char * iterator;
typedef const char * const_iterator;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list