gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r20890 - gnunet-gtk/src/gns


From: gnunet
Subject: [GNUnet-SVN] r20890 - gnunet-gtk/src/gns
Date: Tue, 3 Apr 2012 17:41:27 +0200

Author: wachs
Date: 2012-04-03 17:41:27 +0200 (Tue, 03 Apr 2012)
New Revision: 20890

Modified:
   gnunet-gtk/src/gns/gnunet-gns-gtk_zone.c
Log:
- fixing mantis 2554


Modified: gnunet-gtk/src/gns/gnunet-gns-gtk_zone.c
===================================================================
--- gnunet-gtk/src/gns/gnunet-gns-gtk_zone.c    2012-04-03 15:09:37 UTC (rev 
20889)
+++ gnunet-gtk/src/gns/gnunet-gns-gtk_zone.c    2012-04-03 15:41:27 UTC (rev 
20890)
@@ -93,7 +93,7 @@
 }
 
 static void
-check_name_validity_and_commit (struct GNUNET_GNS_Context *gns, gchar *path)
+check_name_validity_and_commit (struct GNUNET_GNS_Context *gns, gchar *path, 
char * oldname)
 {
   GtkTreeIter it;
   GtkTreeIter parent;
@@ -255,7 +255,10 @@
     uc->rd = rd;
     uc->rd_count = records;
     uc->name = strdup (name);
-    GNUNET_NAMESTORE_record_remove(gns->ns, gns->pkey, name, NULL, 
&check_name_validity_and_commit_remove_proc, uc);
+    if (oldname != NULL)
+      GNUNET_NAMESTORE_record_remove(gns->ns, gns->pkey, oldname, NULL, 
&check_name_validity_and_commit_remove_proc, uc);
+    else
+      GNUNET_NAMESTORE_record_remove(gns->ns, gns->pkey, name, NULL, 
&check_name_validity_and_commit_remove_proc, uc);
     g_free (name);
   }
 }
@@ -459,9 +462,7 @@
 
   }
   GNUNET_free (type_str);
-  GNUNET_free_non_null (name_str);
 
-
   /* check if value is still valid */
   gtk_tree_model_get(gns->tm, &it, TREE_COL_VAL_AS_STR, &value_str, -1);
   if (NULL != value_str)
@@ -484,7 +485,8 @@
       gtk_tree_store_set (gns->ts, &child, TREE_COL_VAL_COLOR, "red", -1);
   }
 
-  check_name_validity_and_commit (gns, path);
+  check_name_validity_and_commit (gns, path, NULL);
+  GNUNET_free_non_null (name_str);
 }
 
 
@@ -509,7 +511,7 @@
   gtk_tree_model_get(gns->tm, &it, TREE_COL_IS_PUBLIC, &value, -1);
   gtk_tree_store_set(gns->ts, &it, TREE_COL_IS_PUBLIC, !value, -1);
 
-  check_name_validity_and_commit (gns, path);
+  check_name_validity_and_commit (gns, path, NULL);
 }
 
 static
@@ -664,7 +666,7 @@
                         TREE_COL_EXP_TIME, abstime.abs_value,
                         TREE_COL_EXP_TIME_COLOR, NULL,
                         -1);
-    check_name_validity_and_commit (gns, path);
+    check_name_validity_and_commit (gns, path, NULL);
   }
 }
 
@@ -718,7 +720,7 @@
     {
       gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_COLOR, NULL, -1);
       gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_AS_STR, new_text, -1);
-      check_name_validity_and_commit (gns, path);
+      check_name_validity_and_commit (gns, path, NULL);
     }
     else
     {
@@ -749,6 +751,7 @@
   GtkTreeIter child;
   GtkTreeModel *tm = GTK_TREE_MODEL(gns->ts);
   int not_dummy;
+  char *name;
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "New text for `%s' is `%s'\n", path, 
new_text);
   if ((0 == strcmp (new_text, NEW_NAME_STR)) || (0 == strcmp (new_text, "")))
@@ -756,6 +759,7 @@
 
   gtk_tree_model_get_iter_from_string(tm, &it, path);
   gtk_tree_model_get(tm, &it, TREE_COL_NOT_DUMMY_ROW, &not_dummy, -1);
+  gtk_tree_model_get(tm, &it, TREE_COL_NAME, &name, -1);
 
   if (not_dummy == GNUNET_NO)
   {
@@ -766,7 +770,7 @@
                         TREE_COL_RECORD_TYPE_AS_STR, _(NEW_RECORD_STR),
                         TREE_COL_NOT_DUMMY_ROW, GNUNET_YES,
                         -1);
-    check_name_validity_and_commit (gns, 
gtk_tree_model_get_string_from_iter(gns->tm, &it));
+    check_name_validity_and_commit (gns, 
gtk_tree_model_get_string_from_iter(gns->tm, &it), name);
 
     /* add a new dummy line */
     gtk_tree_store_insert_with_values (gns->ts, &it,NULL, 0,
@@ -794,7 +798,7 @@
       while (TRUE == gtk_tree_model_iter_next (gns->tm, &child));
     }
 
-    check_name_validity_and_commit (gns, 
gtk_tree_model_get_string_from_iter(gns->tm, &it));
+    check_name_validity_and_commit (gns, 
gtk_tree_model_get_string_from_iter(gns->tm, &it), name);
   }
 
   if (GNUNET_SYSERR == GNUNET_NAMESTORE_check_name (new_text))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]