[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