From 80226ca926c9986dc91686f5682d98f6fc84c748 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 3 Oct 2014 09:29:45 -0400 Subject: [PATCH] GtkBuilder: Undo the type name heuristic changes These turned out to break existing ui files, concretely GWeatherLocationEntry was no longer guessed correctly. Update the testcases to reflect this, and add a testcase for GWeather. --- gtk/gtkbuilder.c | 17 +++++++++-------- testsuite/gtk/typename.c | 25 +++++++++---------------- 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/gtk/gtkbuilder.c b/gtk/gtkbuilder.c index 320c3e6..fbae031 100644 --- a/gtk/gtkbuilder.c +++ b/gtk/gtkbuilder.c @@ -372,23 +372,24 @@ gtk_builder_get_property (GObject *object, * GtkWindow -> gtk_window_get_type * GtkHBox -> gtk_hbox_get_type * GtkUIManager -> gtk_ui_manager_get_type - * GdkRGB -> gdk_rgb_get_type + * GWeatherLocation -> gweather_location_get_type + * + * Keep in sync with testsuite/gtk/typename.c ! */ static gchar * type_name_mangle (const gchar *name) { GString *symbol_name = g_string_new (""); - int i; + gint i; for (i = 0; name[i] != '\0'; i++) { /* skip if uppercase, first or previous is uppercase */ - if ((i > 0 && name[i] == g_ascii_toupper (name[i]) && - (name[i-1] != g_ascii_toupper (name[i-1]) || i == 1)) || - (i > 2 && name[i] == g_ascii_toupper (name[i]) && - name[i-1] == g_ascii_toupper (name[i-1]) && - name[i-2] == g_ascii_toupper (name[i-2]) && - name[i+1] != 0 && name[i+1] != g_ascii_toupper (name[i+1]))) + if ((name[i] == g_ascii_toupper (name[i]) && + i > 0 && name[i-1] != g_ascii_toupper (name[i-1])) || + (i > 2 && name[i] == g_ascii_toupper (name[i]) && + name[i-1] == g_ascii_toupper (name[i-1]) && + name[i-2] == g_ascii_toupper (name[i-2]))) g_string_append_c (symbol_name, '_'); g_string_append_c (symbol_name, g_ascii_tolower (name[i])); } diff --git a/testsuite/gtk/typename.c b/testsuite/gtk/typename.c index 7237631..f94c3ef 100644 --- a/testsuite/gtk/typename.c +++ b/testsuite/gtk/typename.c @@ -18,22 +18,21 @@ #include -/* keep in sync with gtkbuilder.c */ +/* Keep in sync with gtkbuilder.c ! */ static gchar * type_name_mangle (const gchar *name) { GString *symbol_name = g_string_new (""); - int i; + gint i; for (i = 0; name[i] != '\0'; i++) { /* skip if uppercase, first or previous is uppercase */ - if ((i > 0 && name[i] == g_ascii_toupper (name[i]) && - (name[i-1] != g_ascii_toupper (name[i-1]) || i == 1)) || - (i > 2 && name[i] == g_ascii_toupper (name[i]) && - name[i-1] == g_ascii_toupper (name[i-1]) && - name[i-2] == g_ascii_toupper (name[i-2]) && - name[i+1] != 0 && name[i+1] != g_ascii_toupper (name[i+1]))) + if ((name[i] == g_ascii_toupper (name[i]) && + i > 0 && name[i-1] != g_ascii_toupper (name[i-1])) || + (i > 2 && name[i] == g_ascii_toupper (name[i]) && + name[i-1] == g_ascii_toupper (name[i-1]) && + name[i-2] == g_ascii_toupper (name[i-2]))) g_string_append_c (symbol_name, '_'); g_string_append_c (symbol_name, g_ascii_tolower (name[i])); } @@ -55,13 +54,10 @@ check (const gchar *TN, const gchar *gtf) static void test_GtkWindow (void) { check ("GtkWindow", "gtk_window_get_type"); } static void test_GtkHBox (void) { check ("GtkHBox", "gtk_hbox_get_type"); } static void test_GtkUIManager (void) { check ("GtkUIManager", "gtk_ui_manager_get_type"); } -static void test_GString (void) { check ("GString", "g_string_get_type"); } static void test_GtkCList (void) { check ("GtkCList", "gtk_clist_get_type"); } static void test_GtkIMContext (void) { check ("GtkIMContext", "gtk_im_context_get_type"); } -static void test_GdkRGB (void) { check ("GdkRGB", "gdk_rgb_get_type"); } -static void test_GdkRGBA (void) { check ("GdkRGBA", "gdk_rgba_get_type"); } static void test_Me2Shell (void) { check ("Me2Shell", "me_2shell_get_type"); } -static void test_E2Shell (void) { check ("E2Shell", "e_2shell_get_type"); } +static void test_GWeather (void) { check ("GWeatherLocation", "gweather_location_get_type"); } int main (int argc, char *argv[]) @@ -71,13 +67,10 @@ main (int argc, char *argv[]) g_test_add_func ("/builder/get-type/GtkWindow", test_GtkWindow); g_test_add_func ("/builder/get-type/GtkHBox", test_GtkHBox); g_test_add_func ("/builder/get-type/GtkUIManager", test_GtkUIManager); - g_test_add_func ("/builder/get-type/GString", test_GString); g_test_add_func ("/builder/get-type/GtkCList", test_GtkCList); g_test_add_func ("/builder/get-type/GtkIMContext", test_GtkIMContext); - g_test_add_func ("/builder/get-type/GdkRGB", test_GdkRGB); - g_test_add_func ("/builder/get-type/GdkRGBA", test_GdkRGBA); g_test_add_func ("/builder/get-type/Me2Shell", test_Me2Shell); - g_test_add_func ("/builder/get-type/E2Shell", test_E2Shell); + g_test_add_func ("/builder/get-type/GWeather", test_GWeather); return g_test_run (); } -- 2.1.0