From 62f3fbf99c880c7936a254891356497584648f14 2011-04-06 14:32:03 From: Jan Kaluza Date: 2011-04-06 14:32:03 Subject: [PATCH] Buddy::JIDToLegacyName --- diff --git a/include/transport/buddy.h b/include/transport/buddy.h index 83a64a43eccf350150b7caf5ae71c5fbfda8f04a..fd72891546dc278ef5226a6feacc1d682aeab6aa 100644 --- a/include/transport/buddy.h +++ b/include/transport/buddy.h @@ -129,6 +129,8 @@ class Buddy { /// \return avatar hash or empty string. virtual std::string getIconHash() = 0; + static std::string JIDToLegacyName(const Swift::JID &jid); + private: void generateJID(); diff --git a/src/buddy.cpp b/src/buddy.cpp index b0b69caea32a7fa096a85f4479f7f90e6400bee0..98e43e22688a3bb9c216253b7f62e8d1895ca5cd 100644 --- a/src/buddy.cpp +++ b/src/buddy.cpp @@ -153,4 +153,18 @@ void Buddy::buddyChanged() { } } +std::string Buddy::JIDToLegacyName(const Swift::JID &jid) { + std::string name; + if (jid.getUnescapedNode() == jid.getNode()) { + name = jid.getNode(); + if (name.find_last_of("%") != std::string::npos) { + name.replace(name.find_last_of("%"), 1, "@"); + } + } + else { + name = jid.getUnescapedNode(); + } + return name; +} + } diff --git a/src/rostermanager.cpp b/src/rostermanager.cpp index 808ec5ba88460806fe8c4b5303f36527eabadcb0..7c8f912ea1af1e09d62eeaae4fa88ecadce6ba2e 100644 --- a/src/rostermanager.cpp +++ b/src/rostermanager.cpp @@ -120,7 +120,7 @@ void RosterManager::sendRIE() { } void RosterManager::handleSubscription(Swift::Presence::ref presence) { - + std::string legacyName = Buddy::JIDToLegacyName(presence->getTo()); } -} \ No newline at end of file +}