diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/chatlogger.cpp | 26 | ||||
-rw-r--r-- | src/chatlogger.h | 2 |
2 files changed, 19 insertions, 9 deletions
diff --git a/src/chatlogger.cpp b/src/chatlogger.cpp index e126b0ef..904da133 100644 --- a/src/chatlogger.cpp +++ b/src/chatlogger.cpp @@ -124,17 +124,27 @@ std::string ChatLogger::getDateString() const return date; } -std::string ChatLogger::secureName(std::string &name) const +std::string ChatLogger::secureName(std::string &name) { - for (char & f : name) + const size_t sz = name.length(); + for (size_t f = 0; f < sz; f ++) { - if (f < '0' && f > '9' && f < 'a' && f > 'z' - && f < 'A' && f > 'Z' - && f != '-' && f != '+' && f != '=' - && f != '.' && f != ','&& f != ')' - && f != '(' && f != '[' && f != ')') + const unsigned char ch = name[f]; + if ((ch < '0' || ch > '9') && + (ch < 'a' || ch > 'z') && + (ch < 'A' || ch > 'Z') && + ch != '-' && + ch != '+' && + ch != '=' && + ch != '.' && + ch != ',' && + ch != ')' && + ch != '(' && + ch != '[' && + ch != ']' && + ch != '#') { - f = '_'; + name[f] = '_'; } } return name; diff --git a/src/chatlogger.h b/src/chatlogger.h index de7d17d8..e9e53798 100644 --- a/src/chatlogger.h +++ b/src/chatlogger.h @@ -45,7 +45,7 @@ class ChatLogger std::string getDateString() const; - std::string secureName(std::string &str) const; + static std::string secureName(std::string &str); void setServerName(const std::string &serverName); |