[gtk+] GtkBuilder: Undo the type name heuristic changes



commit 80226ca926c9986dc91686f5682d98f6fc84c748
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Oct 3 09:29:45 2014 -0400

    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 <glib.h>
 
-/* 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 ();
 }


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