1*a62be085SSadaf Ebrahimi // This file contains string processing functions related to 2*a62be085SSadaf Ebrahimi // uppercase, lowercase, etc. 3*a62be085SSadaf Ebrahimi // 4*a62be085SSadaf Ebrahimi // These functions are for ASCII only. If you need to process UTF8 strings, 5*a62be085SSadaf Ebrahimi // take a look at files in i18n/utf8. 6*a62be085SSadaf Ebrahimi 7*a62be085SSadaf Ebrahimi #ifndef DYNAMIC_DEPTH_INTERNAL_STRINGS_CASE_H_ // NOLINT 8*a62be085SSadaf Ebrahimi #define DYNAMIC_DEPTH_INTERNAL_STRINGS_CASE_H_ // NOLINT 9*a62be085SSadaf Ebrahimi 10*a62be085SSadaf Ebrahimi #include <string> 11*a62be085SSadaf Ebrahimi 12*a62be085SSadaf Ebrahimi #include "base/port.h" 13*a62be085SSadaf Ebrahimi 14*a62be085SSadaf Ebrahimi namespace dynamic_depth { 15*a62be085SSadaf Ebrahimi 16*a62be085SSadaf Ebrahimi // Returns true if the two strings are equal, case-insensitively speaking. 17*a62be085SSadaf Ebrahimi // Uses C/POSIX locale. StringCaseEqual(const string & s1,const string & s2)18*a62be085SSadaf Ebrahimiinline bool StringCaseEqual(const string& s1, const string& s2) { 19*a62be085SSadaf Ebrahimi return strcasecmp(s1.c_str(), s2.c_str()) == 0; 20*a62be085SSadaf Ebrahimi } 21*a62be085SSadaf Ebrahimi 22*a62be085SSadaf Ebrahimi // ---------------------------------------------------------------------- 23*a62be085SSadaf Ebrahimi // LowerString() 24*a62be085SSadaf Ebrahimi // LowerStringToBuf() 25*a62be085SSadaf Ebrahimi // Convert the characters in "s" to lowercase. 26*a62be085SSadaf Ebrahimi // Works only with ASCII strings; for UTF8, see ToLower in 27*a62be085SSadaf Ebrahimi // util/utf8/public/unilib.h 28*a62be085SSadaf Ebrahimi // Changes contents of "s". LowerStringToBuf copies at most 29*a62be085SSadaf Ebrahimi // "n" characters (including the terminating '\0') from "s" 30*a62be085SSadaf Ebrahimi // to another buffer. 31*a62be085SSadaf Ebrahimi // ---------------------------------------------------------------------- 32*a62be085SSadaf Ebrahimi void LowerString(string* s); 33*a62be085SSadaf Ebrahimi 34*a62be085SSadaf Ebrahimi namespace strings { ToLower(const string & s)35*a62be085SSadaf Ebrahimiinline string ToLower(const string& s) { 36*a62be085SSadaf Ebrahimi string out(s); 37*a62be085SSadaf Ebrahimi LowerString(&out); 38*a62be085SSadaf Ebrahimi return out; 39*a62be085SSadaf Ebrahimi } 40*a62be085SSadaf Ebrahimi 41*a62be085SSadaf Ebrahimi } // namespace strings 42*a62be085SSadaf Ebrahimi } // namespace dynamic_depth 43*a62be085SSadaf Ebrahimi 44*a62be085SSadaf Ebrahimi #endif // DYNAMIC_DEPTH_INTERNAL_STRINGS_CASE_H_ // NOLINT 45