moved case insensitive comparison utility functions into CString

from CHTTPProtocol.
This commit is contained in:
crs
2002-06-03 16:34:22 +00:00
parent 1cbdaee31b
commit 014b781fb0
6 changed files with 76 additions and 71 deletions

47
base/CString.cpp Normal file
View File

@@ -0,0 +1,47 @@
#include "CString.h"
#include <ctype.h>
#include <algorithm>
//
// CStringUtil::CaselessCmp
//
bool CStringUtil::CaselessCmp::cmpEqual(
const CString::value_type& a,
const CString::value_type& b)
{
// FIXME -- use std::tolower
return tolower(a) == tolower(b);
}
bool CStringUtil::CaselessCmp::cmpLess(
const CString::value_type& a,
const CString::value_type& b)
{
// FIXME -- use std::tolower
return tolower(a) < tolower(b);
}
bool CStringUtil::CaselessCmp::less(
const CString& a,
const CString& b)
{
return std::lexicographical_compare(
a.begin(), a.end(),
b.begin(), b.end(),
&CStringUtil::CaselessCmp::cmpLess);
}
bool CStringUtil::CaselessCmp::equal(
const CString& a,
const CString& b)
{
return !(less(a, b) || less(b, a));
}
bool CStringUtil::CaselessCmp::operator()(
const CString& a,
const CString& b) const
{
return less(a, b);
}