vala r1608 - in trunk: . gobject vala



Author: juergbi
Date: Tue Jun 17 20:15:14 2008
New Revision: 1608
URL: http://svn.gnome.org/viewvc/vala?rev=1608&view=rev

Log:
2008-06-17  JÃrg Billeter  <j bitron ch>

	* vala/valasymbol.vala:
	* gobject/valaccodeobjecttypesymbolbinding.vala:

	Use CamelCase for methods and signals exported to D-Bus,
	fixes bug 538818


Modified:
   trunk/ChangeLog
   trunk/gobject/valaccodeobjecttypesymbolbinding.vala
   trunk/vala/valasymbol.vala

Modified: trunk/gobject/valaccodeobjecttypesymbolbinding.vala
==============================================================================
--- trunk/gobject/valaccodeobjecttypesymbolbinding.vala	(original)
+++ trunk/gobject/valaccodeobjecttypesymbolbinding.vala	Tue Jun 17 20:15:14 2008
@@ -92,7 +92,7 @@
 			blob.append ("\\0");
 			start++;
 
-			blob.append (m.name);
+			blob.append (Symbol.lower_case_to_camel_case (m.name));
 			blob.append ("\\0");
 			start++;
 
@@ -164,7 +164,7 @@
 
 			dbus_signals.append (dbus_iface_name);
 			dbus_signals.append ("\\0");
-			dbus_signals.append (sig.name);
+			dbus_signals.append (Symbol.lower_case_to_camel_case (sig.name));
 			dbus_signals.append ("\\0");
 		}
 		dbus_signals.append_c('"');

Modified: trunk/vala/valasymbol.vala
==============================================================================
--- trunk/vala/valasymbol.vala	(original)
+++ trunk/vala/valasymbol.vala	Tue Jun 17 20:15:14 2008
@@ -236,6 +236,35 @@
 		return result.str;
 	}
 
+	/**
+	 * Converts a string from lower_case to CamelCase.
+	 *
+	 * @param lower_case a string in lower case
+	 * @return           the specified string converted to camel case
+	 */
+	public static string lower_case_to_camel_case (string lower_case) {
+		var result = new StringBuilder ("");
+
+		weak string i = lower_case;
+
+		bool last_underscore = true;
+		while (i.len () > 0) {
+			unichar c = i.get_char ();
+			if (c == '_') {
+				last_underscore = true;
+			} else if (last_underscore) {
+				result.append_unichar (c.toupper ());
+				last_underscore = false;
+			} else {
+				result.append_unichar (c);
+			}
+			
+			i = i.next_char ();
+		}
+
+		return result.str;
+	}
+
 	// get the top scope from where this symbol is still accessible
 	public Scope? get_top_accessible_scope () {
 		if (access != SymbolAccessibility.PUBLIC) {



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