[ekiga] Roster: Fixed group renaming.
- From: Damien Sandras <dsandras src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ekiga] Roster: Fixed group renaming.
- Date: Sat, 20 Oct 2012 10:55:37 +0000 (UTC)
commit 7cb22a76ec8d3ce27af2eb436c58825672ad8cf0
Author: Damien Sandras <dsandras beip be>
Date: Sat Oct 20 12:53:25 2012 +0200
Roster: Fixed group renaming.
All presentities were put in the new group name even if they were not
in the old one.
.../components/local-roster/local-presentity.cpp | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
---
diff --git a/lib/engine/components/local-roster/local-presentity.cpp b/lib/engine/components/local-roster/local-presentity.cpp
index 145e7fd..3c467ec 100644
--- a/lib/engine/components/local-roster/local-presentity.cpp
+++ b/lib/engine/components/local-roster/local-presentity.cpp
@@ -383,6 +383,7 @@ void
Local::Presentity::rename_group (const std::string old_name,
const std::string new_name)
{
+ bool old_name_present = false;
bool already_in_new_name = false;
std::set<xmlNodePtr> nodes_to_remove;
@@ -402,13 +403,12 @@ Local::Presentity::rename_group (const std::string old_name,
if (xml_str != NULL) {
- if (old_name == (const char*)xml_str) {
-
+ if (!xmlStrcasecmp ((const xmlChar*)old_name.c_str (), xml_str)) {
nodes_to_remove.insert (child); // don't free what we loop on!
+ old_name_present = true;
}
- if (new_name == (const char*)xml_str) {
-
+ if (!xmlStrcasecmp ((const xmlChar*)new_name.c_str (), xml_str)) {
already_in_new_name = true;
}
@@ -427,7 +427,7 @@ Local::Presentity::rename_group (const std::string old_name,
xmlFreeNode (*iter);
}
- if ( !already_in_new_name) {
+ if (old_name_present && !already_in_new_name) {
xmlNewChild (node, NULL,
BAD_CAST "group",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]