svn commit: samba r4390 - in branches/SAMBA_4_0/source: gtk/tools include lib/registry/common

jelmer at samba.org jelmer at samba.org
Wed Dec 29 12:28:36 GMT 2004


Author: jelmer
Date: 2004-12-29 12:28:35 +0000 (Wed, 29 Dec 2004)
New Revision: 4390

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=4390

Log:
Registry value and key names are case-insensitive
Nicer menu layout in gregedit

Modified:
   branches/SAMBA_4_0/source/gtk/tools/gregedit.c
   branches/SAMBA_4_0/source/include/registry.h
   branches/SAMBA_4_0/source/lib/registry/common/reg_interface.c


Changeset:
Modified: branches/SAMBA_4_0/source/gtk/tools/gregedit.c
===================================================================
--- branches/SAMBA_4_0/source/gtk/tools/gregedit.c	2004-12-29 07:28:03 UTC (rev 4389)
+++ branches/SAMBA_4_0/source/gtk/tools/gregedit.c	2004-12-29 12:28:35 UTC (rev 4390)
@@ -379,6 +379,16 @@
 	registry_load_hive(root);
 }
 
+static void on_open_local_activate(GtkMenuItem *menuitem, gpointer user_data)
+{
+	WERROR error = reg_open_local(&registry);
+	if(!W_ERROR_IS_OK(error)) {
+		gtk_show_werror(mainwin, error);
+		return;
+	}
+	registry_load_root();
+}
+
 static void on_open_remote_activate(GtkMenuItem *menuitem, gpointer user_data)
 {
 	char *tmp;
@@ -661,6 +671,7 @@
 	GtkWidget *open_w95;
 	GtkWidget *open_gconf;
 	GtkWidget *open_remote;
+	GtkWidget *open_local;
 	GtkWidget *separatormenuitem1;
 	GtkWidget *quit;
 	GtkWidget *men_key;
@@ -694,6 +705,25 @@
 	menu_file_menu = gtk_menu_new ();
 	gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_file), menu_file_menu);
 
+	open_local = gtk_menu_item_new_with_mnemonic ("Open _Local");
+	gtk_container_add (GTK_CONTAINER (menu_file_menu), open_local);
+	g_signal_connect ((gpointer) open_local, "activate",
+					  	  G_CALLBACK (on_open_local_activate), NULL);
+
+	if(reg_has_backend("rpc")) {
+		open_remote = gtk_menu_item_new_with_mnemonic ("Open _Remote");
+		gtk_container_add (GTK_CONTAINER (menu_file_menu), open_remote);
+
+		g_signal_connect ((gpointer) open_remote, "activate",
+						  G_CALLBACK (on_open_remote_activate),
+						  NULL);
+	}
+
+	separatormenuitem1 = gtk_menu_item_new ();
+	gtk_container_add (GTK_CONTAINER (menu_file_menu), separatormenuitem1);
+	gtk_widget_set_sensitive (separatormenuitem1, FALSE);
+
+
 	if(reg_has_backend("nt4")) {
 		open_nt4 = gtk_image_menu_item_new_with_mnemonic("Open _NT4 file");
 		gtk_container_add (GTK_CONTAINER (menu_file_menu), open_nt4);
@@ -721,15 +751,6 @@
 						  NULL);
 	}
 
-	if(reg_has_backend("rpc")) {
-		open_remote = gtk_menu_item_new_with_mnemonic ("Open _Remote");
-		gtk_container_add (GTK_CONTAINER (menu_file_menu), open_remote);
-
-		g_signal_connect ((gpointer) open_remote, "activate",
-						  G_CALLBACK (on_open_remote_activate),
-						  NULL);
-	}
-
 	if(reg_has_backend("ldb")) {
 		open_ldb = gtk_image_menu_item_new_with_mnemonic("Open _LDB file");
 		gtk_container_add (GTK_CONTAINER (menu_file_menu), open_ldb);

Modified: branches/SAMBA_4_0/source/include/registry.h
===================================================================
--- branches/SAMBA_4_0/source/include/registry.h	2004-12-29 07:28:03 UTC (rev 4389)
+++ branches/SAMBA_4_0/source/include/registry.h	2004-12-29 12:28:35 UTC (rev 4390)
@@ -98,6 +98,9 @@
  *  - just one hive (example: nt4, w95)
  *  - several hives (example: rpc).
  * 
+ * Backends should always do case-insensitive compares 
+ * (everything is case-insensitive but case-preserving, 
+ * just like the FS)
  */ 
 
 struct hive_operations {

Modified: branches/SAMBA_4_0/source/lib/registry/common/reg_interface.c
===================================================================
--- branches/SAMBA_4_0/source/lib/registry/common/reg_interface.c	2004-12-29 07:28:03 UTC (rev 4389)
+++ branches/SAMBA_4_0/source/lib/registry/common/reg_interface.c	2004-12-29 12:28:35 UTC (rev 4390)
@@ -119,7 +119,7 @@
 	int i;
 	
 	for (i = 0; predef_names[i].name; i++) {
-		if (!strcmp(predef_names[i].name, name)) return reg_get_predefined_key(ctx, predef_names[i].handle, key);
+		if (!strcasecmp(predef_names[i].name, name)) return reg_get_predefined_key(ctx, predef_names[i].handle, key);
 	}
 
 	DEBUG(1, ("No predefined key with name '%s'\n", name));
@@ -347,7 +347,7 @@
 	} else if(key->hive->functions->get_subkey_by_index) {
 		for(i = 0; W_ERROR_IS_OK(error); i++) {
 			error = reg_key_get_subkey_by_index(mem_ctx, key, i, subkey);
-			if(W_ERROR_IS_OK(error) && !strcmp((*subkey)->name, name)) {
+			if(W_ERROR_IS_OK(error) && !strcasecmp((*subkey)->name, name)) {
 				break;
 			}
 		}
@@ -378,7 +378,7 @@
 	} else {
 		for(i = 0; W_ERROR_IS_OK(error); i++) {
 			error = reg_key_get_value_by_index(mem_ctx, key, i, val);
-			if(W_ERROR_IS_OK(error) && !strcmp((*val)->name, name)) {
+			if(W_ERROR_IS_OK(error) && !strcasecmp((*val)->name, name)) {
 				break;
 			}
 		}



More information about the samba-cvs mailing list