--- smsdaemon/Util.cpp 2008/12/08 21:49:49 158 +++ smsdaemon/Util.cpp 2008/12/19 07:03:34 203 @@ -10,6 +10,9 @@ #include #include #include +#include +#include +#include #include #include @@ -146,6 +149,18 @@ return str; } + + vector str_split(string input) + { + string buf; + stringstream ss(input); + vector tokens; + while (ss >> buf) + tokens.push_back(buf); + return tokens; + } + + vector str_split(string input, string delimiter) { vector retval; @@ -168,26 +183,28 @@ return retval; } - char my_toupper(char ch) + char danish_map[3][2] = { {198,230}, {216,248}, {197,229} }; // aelig, oslash, aring + + unsigned char my_toupper(unsigned char ch) { - if (ch == 'æ') - return 'Æ'; - if (ch == 'ø') - return 'Ø'; - if (ch == 'å') - return 'Å'; + if (ch == 230) + return 198; + if (ch == 248) + return 216; + if (ch == 229) + return 197; return ::toupper(ch); } - char my_tolower(char ch) + unsigned char my_tolower(unsigned char ch) { - if (ch == 'Æ') - return 'æ'; - if (ch == 'Ø') - return 'ø'; - if (ch == 'Å') - return 'å'; + if (ch == 198) + return 230; + if (ch == 216) + return 248; + if (ch == 197) + return 229; return ::tolower(ch); } @@ -223,22 +240,28 @@ string rep; rep.append(1,197); str = str_replace(str, "Å", rep); + str = str_replace(str, "Å", rep); rep.at(0) = 198; str = str_replace(str, "Æ", rep); + str = str_replace(str, "Æ", rep); rep.at(0) = 216; str = str_replace(str, "Ø", rep); + str = str_replace(str, "Ø", rep); rep.at(0) = 229; str = str_replace(str, "å", rep); + str = str_replace(str, "å", rep); rep.at(0) = 230; str = str_replace(str, "æ", rep); + str = str_replace(str, "æ", rep); rep.at(0) = 248; str = str_replace(str, "ø", rep); + str = str_replace(str, "ø", rep); return str; } @@ -246,7 +269,8 @@ string str_gsm2latin(string str) { - for (unsigned i=0; i