Glib Helper Routines

Glib Helper Routines — Miscellaneous helper routines that could conceivably be moved to glib someday.

Synopsis

void                gsk_g_ptr_array_foreach             (GPtrArray *array,
                                                         GFunc func,
                                                         gpointer data);
gpointer            gsk_g_tree_min                      (GTree *tree);
gpointer            gsk_g_tree_max                      (GTree *tree);
GSList *            gsk_g_tree_key_slist                (GTree *tree);
GSList *            gsk_g_tree_value_slist              (GTree *tree);
GSList *            gsk_g_hash_table_key_slist          (GHashTable *table);
GSList *            gsk_g_hash_table_value_slist        (GHashTable *table);
gint64              gsk_strtoll                         (const char *str,
                                                         char **endp,
                                                         int base);
guint64             gsk_strtoull                        (const char *str,
                                                         char **endp,
                                                         int base);
guint               gsk_strnlen                         (const char *ptr,
                                                         guint max_len);
gboolean            gsk_fd_set_nonblocking              (int fd);

Description

Provide various simple functions that we have found useful.

Details

gsk_g_ptr_array_foreach ()

void                gsk_g_ptr_array_foreach             (GPtrArray *array,
                                                         GFunc func,
                                                         gpointer data);

Like g_slist_foreach(), except it iterates over a GPtrArray instead.

array :

array to iterate over.

func :

function to call on each element of array.

data :

second parameter to func.

gsk_g_tree_min ()

gpointer            gsk_g_tree_min                      (GTree *tree);

Find the minimum key in the tree.

tree :

tree to examine.

Returns :

smallest key in the tree.

gsk_g_tree_max ()

gpointer            gsk_g_tree_max                      (GTree *tree);

Find the maximum key in the tree.

tree :

tree to examine.

Returns :

largest key in the tree.

gsk_g_tree_key_slist ()

GSList *            gsk_g_tree_key_slist                (GTree *tree);

Get a list of all the keys in the trees, sorted.

tree :

the tree to scan.

Returns :

the newly allocated list of pointers to the keys.

gsk_g_tree_value_slist ()

GSList *            gsk_g_tree_value_slist              (GTree *tree);

Get a list of all the values in the trees, sorted by key.

tree :

the tree to scan.

Returns :

the newly allocated list of pointers to the keys.

gsk_g_hash_table_key_slist ()

GSList *            gsk_g_hash_table_key_slist          (GHashTable *table);

Accumulate all the keys in the hash table into a big list. You may not assume anything about the order of the list.

table :

the hash table to scan.

Returns :

an allocated GSList of all the keys in the hash-table.

gsk_g_hash_table_value_slist ()

GSList *            gsk_g_hash_table_value_slist        (GHashTable *table);

Accumulate all the values in the hash table into a big list. You may not assume anything about the order of the list.

table :

the hash table to scan.

Returns :

an allocated GSList of all the values in the hash-table.

gsk_strtoll ()

gint64              gsk_strtoll                         (const char *str,
                                                         char **endp,
                                                         int base);

Like strtol, but for 64-bit integers.

str :

the string to parse a longlong integer (gint64) from.

endp :

optional place to store the character right past the number in str. If *endp == str, then you may assume an error occurred.

base :

the assumed base for the number to parse. eg "2" to parse a binary, "8" for octal, "10" for decimal, "16" for hexidecimal. Also, "0" is autodetects the C-style base.

Returns :

the parsed integer.

gsk_strtoull ()

guint64             gsk_strtoull                        (const char *str,
                                                         char **endp,
                                                         int base);

Like strtol, but for 64-bit unsigned integers.

str :

the string to parse a longlong unsigned integer (guint64) from.

endp :

optional place to store the character right past the number in str. If *endp == str, then you may assume an error occurred.

base :

the assumed base for the number to parse. eg "2" to parse a binary, "8" for octal, "10" for decimal, "16" for hexidecimal. Also, "0" is autodetects the C-style base.

Returns :

the parsed unsigned integer.

gsk_strnlen ()

guint               gsk_strnlen                         (const char *ptr,
                                                         guint max_len);

Find the length of a string, which is only allocated max_len bytes, and does not need to be NUL-terminated.

ptr :

the string to find the length of.

max_len :

the maximum length the string could be.

Returns :

the length.

gsk_fd_set_nonblocking ()

gboolean            gsk_fd_set_nonblocking              (int fd);

Make a file-descriptor non-blocking. When it is non-blocking, operations that would cause it to block should instead return EAGAIN. (Although you should use gsk_errno_is_ignorable() to test, since windoze uses a different code, EWOULDBLOCK, and you should always ignore EINTR.)

fd :

the file-descriptor to make non-blocking.

Returns :

whether it was able to set the file descriptor non-blocking.