mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@21 3b4a5df2-a311-0410-b5c6-a8a6f20db521
28 lines
618 B
C++
28 lines
618 B
C++
//
|
|
// Snap: Implementation of case-insensitive string comparison classes
|
|
//
|
|
#include "stringicmp.h"
|
|
//#include <cctype>
|
|
#include <ctype.h>
|
|
|
|
|
|
|
|
bool TStringiLess::operator() (std::string const& s1, std::string const& s2) const
|
|
{
|
|
// An MSVC compliance issue...
|
|
//using std::toupper;
|
|
|
|
std::string::const_iterator p1 = s1.begin();
|
|
std::string::const_iterator p2 = s2.begin();
|
|
|
|
while (p1 != s1.end() && p2 != s2.end() && toupper(*p1) == toupper(*p2)) {
|
|
++p1;
|
|
++p2;
|
|
}
|
|
|
|
if (p1 == s1.end()) return p2 != s2.end();
|
|
if (p2 == s2.end()) return false;
|
|
|
|
return toupper(*p1) < toupper(*p2);
|
|
}
|