diff options
Diffstat (limited to 'glib/dbus-gutils.c')
-rw-r--r-- | glib/dbus-gutils.c | 28 |
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 /** |