[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/StringPredicates.h
From: |
Markus Gothe |
Subject: |
[Gnash-commit] gnash ChangeLog server/StringPredicates.h |
Date: |
Mon, 27 Nov 2006 22:49:08 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Markus Gothe <nihilus> 06/11/27 22:49:07
Modified files:
. : ChangeLog
server : StringPredicates.h
Log message:
Use <cstring>-comparsion-functions.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1792&r2=1.1793
http://cvs.savannah.gnu.org/viewcvs/gnash/server/StringPredicates.h?cvsroot=gnash&r1=1.4&r2=1.5
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1792
retrieving revision 1.1793
diff -u -b -r1.1792 -r1.1793
--- ChangeLog 27 Nov 2006 22:21:39 -0000 1.1792
+++ ChangeLog 27 Nov 2006 22:49:07 -0000 1.1793
@@ -1,6 +1,7 @@
2006-11-25 Markus Gothe <address@hidden>
* server/StringPredicates.h: Changed struct's to classes. Added id-tag.
+ Use <cstring>-comparsion-functions.
2006-11-27 Sandro Santilli <address@hidden>
Index: server/StringPredicates.h
===================================================================
RCS file: /sources/gnash/gnash/server/StringPredicates.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- server/StringPredicates.h 27 Nov 2006 22:21:39 -0000 1.4
+++ server/StringPredicates.h 27 Nov 2006 22:49:07 -0000 1.5
@@ -17,7 +17,7 @@
//
//
-/* $Id: StringPredicates.h,v 1.4 2006/11/27 22:21:39 nihilus Exp $ */
+/* $Id: StringPredicates.h,v 1.5 2006/11/27 22:49:07 nihilus Exp $ */
#ifndef GNASH_STRINGPREDICATES_H
#define GNASH_STRINGPREDICATES_H
@@ -27,58 +27,31 @@
#endif
#include <string>
+#include <cstring> // For str*cmp().
-#include <cassert> // for inlines
+#ifdef HAVE_STRINGCASECMP
+# define STRCASECMP strcasecmp
+#else
+# define STRCASECMP _stricmp
+#endif
namespace gnash {
-/// A case-insensitive string comparator (probably not very performant)
+/// A case-insensitive string comparator.
class StringNoCaseLessThen {
public:
bool operator() (const std::string& a, const std::string& b) const
{
- size_t a_len = a.length();
- size_t b_len = b.length();
-
- size_t cmplen = a_len < b_len ? a_len : b_len;
-
- for (size_t i=0; i<cmplen; ++i)
- {
- char cha = toupper(a[i]);
- char chb = toupper(b[i]);
-
- if (cha < chb) return true;
- else if (cha > chb) return false;
- assert(cha==chb);
- }
-
- // strings are equal for whole lenght of a,
- // a is LessThen b only if 'b' contains more
- // characters then 'a' (if same number of
- // chars 'a' is NOT less then 'b')
-
- if ( a_len < b_len ) return true;
- return false; // equal or greater
-
+ return (strcmp(a.c_str(), b.c_str()) == 0);
}
};
-/// A case-insensitive string equality operator (probably not very performant)
+/// A case-insensitive string equality operator.
class StringNoCaseEqual {
public:
bool operator() (const std::string& a, const std::string& b) const
{
- if ( a.length() != b.length() ) return false;
- for (size_t i=0; i<a.length(); ++i)
- {
- char cha = toupper(a[i]);
- char chb = toupper(b[i]);
-
- if (cha != chb) return false;
- }
-
- return true;
-
+ return (STRCASECMP(a.c_str(), b.c_str()) == 0);
}
};