From 62f3fbf99c880c7936a254891356497584648f14 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Wed, 6 Apr 2011 14:32:03 +0200 Subject: [PATCH] Buddy::JIDToLegacyName --- include/transport/buddy.h | 2 ++ src/buddy.cpp | 14 ++++++++++++++ src/rostermanager.cpp | 4 ++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/include/transport/buddy.h b/include/transport/buddy.h index 83a64a43..fd728915 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 b0b69cae..98e43e22 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 808ec5ba..7c8f912e 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 +}