![]() |
![]() |
![]() |
telepathy-glib Reference Manual | ![]() |
---|---|---|---|---|
#include <telepathy-glib/util.h> gboolean tp_g_ptr_array_contains (GPtrArray *haystack, gpointer needle); void tp_g_value_slice_free (GValue *value); gboolean tp_strdiff (const gchar *left, const gchar *right); gpointer tp_mixin_offset_cast (gpointer instance, guint offset); gchar* tp_escape_as_identifier (const gchar *name);
Some utility functions used in telepathy-glib which could have been in GLib, but aren't.
gboolean tp_g_ptr_array_contains (GPtrArray *haystack, gpointer needle);
haystack : |
The pointer array to be searched |
needle : |
The pointer to look for |
Returns : | TRUE if needle is one of the elements of haystack
|
void tp_g_value_slice_free (GValue *value);
Unset and free a slice-allocated GValue.
value : |
A GValue which was allocated with the g_slice API |
gboolean tp_strdiff (const gchar *left, const gchar *right);
Return TRUE
if the given strings are different. Unlike strcmp this
function will handle null pointers, treating them as distinct from any
string.
left : |
The first string to compare (may be NULL) |
right : |
The second string to compare (may be NULL) |
Returns : | FALSE if left and right are both NULL , or if
neither is NULL and both have the same contents; TRUE otherwise
|
gpointer tp_mixin_offset_cast (gpointer instance, guint offset);
Extend a pointer by an offset, provided the offset is not 0. This is used to cast from an object instance to one of the telepathy-glib mixin classes.
instance : |
A pointer to a structure |
offset : |
The offset of a structure member in bytes, which must not be 0 |
Returns : | a pointer offset bytes beyond instance
|
gchar* tp_escape_as_identifier (const gchar *name);
Escape an arbitrary string so it follows the rules for a C identifier, and hence an object path component, interface element component, bus name component or member name in D-Bus.
Unlike g_strcanon this is a reversible encoding, so it preserves distinctness.
The escaping consists of replacing all non-alphanumerics, and the first character if it's a digit, with an underscore and two lower-case hex digits:
"0123abc_xyz\x01\xff" -> _30123abc_5fxyz_01_ff
i.e. similar to URI encoding, but with _ taking the role of %, and a smaller allowed set.
name : |
The string to be escaped |
Returns : | the escaped string, which must be freed by the caller with g_free |