--- smsdaemon/string_nocase.h 2008/12/18 06:47:26 195 +++ smsdaemon/string_nocase.h 2008/12/18 06:53:29 196 @@ -11,47 +11,57 @@ // case insensitive comparison, search struct traits_nocase : std::char_traits { - static bool eq( const char& c1, const char& c2 ) - { return toupper(c1) == toupper(c2) ; } - static bool lt( const char& c1, const char& c2 ) - { return toupper(c1) < toupper(c2) ; } - static int compare( const char* s1, const char* s2, size_t N ) - { - return strncasecmp( s1, s2, N ) ; // posix - // mirosoft C++ - use _strnicmp instead - } - static const char* find( const char* s, size_t N, const char& a ) - { - for( size_t i=0 ; i string_nocase ; -// make string_nocase work like a std::string +// make string_nocase work like a std::string // with streams using std::char_traits // std::basic_istream< char, std::char_traits > (std::istream) and // std::basic_ostream< char, std::char_traits > (std::ostream) -inline std::ostream& operator<< ( std::ostream& stm, const string_nocase& str ) -{ return stm << reinterpret_cast(str) ; } +inline std::ostream& operator<< ( std::ostream& stm, const string_nocase& str ) +{ + return stm << reinterpret_cast(str) ; +} -inline std::istream& operator>> ( std::istream& stm, string_nocase& str ) -{ - std::string s ; stm >> s ; - if(stm) str.assign(s.begin(),s.end()) ; - return stm ; +inline std::istream& operator>> ( std::istream& stm, string_nocase& str ) +{ + std::string s ; + stm >> s ; + if (stm) str.assign(s.begin(),s.end()) ; + return stm ; } inline std::istream& getline( std::istream& stm, string_nocase& str ) -{ - std::string s ; std::getline(stm,s) ; - if(stm) str.assign(s.begin(),s.end()) ; - return stm ; +{ + std::string s ; + std::getline(stm,s) ; + if (stm) str.assign(s.begin(),s.end()) ; + return stm ; } #endif // __STRING_NOCASE_H__