28
28
#include "nm-utils.h"
30
gchar *nm_dbus_escape_object_path (const gchar *utf8_string)
30
gchar *nm_dbus_escape_object_path_item (const gchar *item)
33
33
gchar *object_path;
36
g_return_val_if_fail (utf8_string != NULL, NULL);
37
g_return_val_if_fail (g_utf8_validate (utf8_string, -1, NULL), NULL);
39
string = g_string_sized_new ((strlen (utf8_string) + 1) * 6);
41
for (p = utf8_string; *p != '\0'; p = g_utf8_next_char (p))
45
character = g_utf8_get_char (p);
47
if (((character >= ((gunichar) 'a')) &&
48
(character <= ((gunichar) 'z'))) ||
49
((character >= ((gunichar) 'A')) &&
50
(character <= ((gunichar) 'Z'))) ||
51
((character >= ((gunichar) '0')) &&
52
(character <= ((gunichar) '9'))) ||
53
(character == ((gunichar) '/')))
55
g_string_append_c (string, (gchar) character);
59
g_string_append_printf (string, "_%x_", character);
36
g_return_val_if_fail (item != NULL, NULL);
38
string = g_string_sized_new ((strlen (item) + 1) * 6);
40
for (p = (unsigned char *) item; *p != '\0'; p++) {
41
if (((*p >= 'a') && (*p <= 'z')) ||
42
((*p >= 'A') && (*p <= 'Z')) ||
43
((*p >= '0') && (*p <= '9')))
44
g_string_append_c (string, *p);
46
g_string_append_printf (string, "_%02x_", (unsigned char) *p);
62
49
object_path = string->str;
64
50
g_string_free (string, FALSE);
66
51
return object_path;