diff options
author | David Athay <ko2fan@gmail.com> | 2009-04-13 14:48:07 +0100 |
---|---|---|
committer | David Athay <ko2fan@gmail.com> | 2009-04-13 14:48:07 +0100 |
commit | effc112bed400d632368ca633d8a6600ea8c8aae (patch) | |
tree | 794f9d826e2bc3a3df6ac0796856e7d6bb8f6b17 /src | |
parent | d8e3acb5253eb01231136b131e5b156034aaa7a9 (diff) | |
download | mana-effc112bed400d632368ca633d8a6600ea8c8aae.tar.gz mana-effc112bed400d632368ca633d8a6600ea8c8aae.tar.bz2 mana-effc112bed400d632368ca633d8a6600ea8c8aae.tar.xz mana-effc112bed400d632368ca633d8a6600ea8c8aae.zip |
Fixed @'s in a user's nick
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/widgets/chattab.cpp | 3 | ||||
-rw-r--r-- | src/utils/stringutils.cpp | 13 | ||||
-rw-r--r-- | src/utils/stringutils.h | 8 |
3 files changed, 24 insertions, 0 deletions
diff --git a/src/gui/widgets/chattab.cpp b/src/gui/widgets/chattab.cpp index 1879a918..bbf71e83 100644 --- a/src/gui/widgets/chattab.cpp +++ b/src/gui/widgets/chattab.cpp @@ -163,6 +163,9 @@ void ChatTab::chatLog(std::string line, int own, bool ignoreRecord) tmp.nick = ""; lineColor = "##S"; } + + // check for @, # or [ in nick + tmp.nick = removeBadChars(tmp.nick); #ifdef EATHENA_SUPPORT if (tmp.nick.empty() && tmp.text.substr(0, 17) == "Visible GM status") diff --git a/src/utils/stringutils.cpp b/src/utils/stringutils.cpp index 6a88a12e..2f9bc9a8 100644 --- a/src/utils/stringutils.cpp +++ b/src/utils/stringutils.cpp @@ -61,3 +61,16 @@ const char *ipToString(int address) return asciiIP; } + +std::string &removeBadChars(std::string &str) +{ + std::string::size_type pos; + do + { + pos = str.find_first_of("@#[]"); + if (pos != std::string::npos) + str.erase(pos, 1); + } while (pos != std::string::npos); + + return str; +} diff --git a/src/utils/stringutils.h b/src/utils/stringutils.h index 8b8b7bc2..872a8f52 100644 --- a/src/utils/stringutils.h +++ b/src/utils/stringutils.h @@ -65,4 +65,12 @@ template<typename T> std::string toString(const T &arg) */ const char *ipToString(int address); +/** + * Removes bad characters from a string + * + * @param str the string to remove the bad chars from + * @return a reference to the string without bad chars + */ +std::string &removeBadChars(std::string &str); + #endif // UTILS_STRINGUTILS_H |