diff options
author | Jonas Smedegaard <dr@jones.dk> | 2017-06-24 09:21:31 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2017-06-24 09:21:31 +0200 |
commit | c21cbbf9667991d2b928562a9c199e625d3f9bba (patch) | |
tree | ffd5e6895a578102ed9055fbb02a88031154ae0b /src/irc/iid.cpp | |
parent | de62b6456bebd130f98ce6192cd63ff42e654fac (diff) | |
parent | 23a3372144215c9ba7a30d599164677284813fa4 (diff) | |
download | biboumi-c21cbbf9667991d2b928562a9c199e625d3f9bba.tar.gz biboumi-c21cbbf9667991d2b928562a9c199e625d3f9bba.tar.bz2 biboumi-c21cbbf9667991d2b928562a9c199e625d3f9bba.tar.xz biboumi-c21cbbf9667991d2b928562a9c199e625d3f9bba.zip |
New upstream version 5.0
Diffstat (limited to 'src/irc/iid.cpp')
-rw-r--r-- | src/irc/iid.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/irc/iid.cpp b/src/irc/iid.cpp index d442013..a63a1c3 100644 --- a/src/irc/iid.cpp +++ b/src/irc/iid.cpp @@ -1,3 +1,4 @@ +#include <utility> #include <utils/tolower.hpp> #include <config/config.hpp> #include <bridge/bridge.hpp> @@ -7,10 +8,10 @@ constexpr char Iid::separator[]; -Iid::Iid(const std::string& local, const std::string& server, Iid::Type type): +Iid::Iid(std::string local, std::string server, Iid::Type type): type(type), - local(local), - server(server) + local(std::move(local)), + server(std::move(server)) { } @@ -34,9 +35,10 @@ Iid::Iid(const std::string& iid, const Bridge *bridge) void Iid::set_type(const std::set<char>& chantypes) { + if (this->local.empty() && this->server.empty()) + this->type = Iid::Type::None; if (this->local.empty()) return; - if (chantypes.count(this->local[0]) == 1) this->type = Iid::Type::Channel; else @@ -105,6 +107,8 @@ namespace std { { if (iid.type == Iid::Type::Server) return iid.get_server(); + else if (iid.get_local().empty() && iid.get_server().empty()) + return {}; else return iid.get_encoded_local() + iid.separator + iid.get_server(); } |