summaryrefslogtreecommitdiffstats
path: root/glib/dbus-gutils.c
diff options
context:
space:
mode:
Diffstat (limited to 'glib/dbus-gutils.c')
-rw-r--r--glib/dbus-gutils.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/glib/dbus-gutils.c b/glib/dbus-gutils.c
index cf12245c..30d00fed 100644
--- a/glib/dbus-gutils.c
+++ b/glib/dbus-gutils.c
@@ -125,6 +125,34 @@ _dbus_gutils_type_to_string (int type)
}
}
+char*
+_dbus_gutils_wincaps_to_uscore (const char *caps)
+{
+ const char *p;
+ GString *str;
+
+ str = g_string_new (NULL);
+ p = caps;
+ while (*p)
+ {
+ if (g_ascii_isupper (*p))
+ {
+ if (str->len > 0 &&
+ (str->len < 2 || str->str[str->len-2] != '_'))
+ g_string_append_c (str, '_');
+ g_string_append_c (str, g_ascii_tolower (*p));
+ }
+ else
+ {
+ g_string_append_c (str, *p);
+ }
+ ++p;
+ }
+
+ return g_string_free (str, FALSE);
+}
+
+
#ifdef DBUS_BUILD_TESTS
/**