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(®istry); + 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; } }