[ekiga] Roster: Fixed group renaming.



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]