Utility Functions
3
LIBEDATASERVER Library

# Utility Functions

Miscellaneous utility functions for evolution-data-server.

## Synopsis

    struct              tm;
    int                 e_util_mkdir_hier                   (const char *path,
                                                             mode_t mode);
    gchar*              e_util_strstrcase                   (const gchar *haystack,
                                                             const gchar *needle);
    gchar*              e_util_unicode_get_utf8             (const gchar *text,
                                                             gunichar *out);
    const gchar*        e_util_utf8_strstrcase              (const gchar *haystack,
                                                             const gchar *needle);
    const gchar*        e_util_utf8_strstrcasedecomp        (const gchar *haystack,
                                                             const gchar *needle);
    size_t              e_utf8_strftime                     (char *s,
                                                             size_t max,
                                                             const char *fmt,
                                                             const struct tm *tm);
    size_t              e_strftime                          (char *s,
                                                             size_t max,
                                                             const char *fmt,
                                                             const struct tm *tm);

## Description

## Details

### struct tm

    struct tm;

### e_util_mkdir_hier ()

    int                 e_util_mkdir_hier                   (const char *path,
                                                             mode_t mode);

Creates a directory hierarchy based on the string `path`. If `path` is an absolute path, the directories will be created relative to the root of the file system; otherwise, the directories will be created relative to the current directory.

`path` :

  The directory hierarchy to create.

`mode` :

  The permissions to use for the directories.

Returns :

  0 on success; -1 on failure.

### e_util_strstrcase ()

    gchar*              e_util_strstrcase                   (const gchar *haystack,
                                                             const gchar *needle);

Find the first instance of `needle` in `haystack`, ignoring case for bytes that are ASCII characters.

`haystack` :

  The string to search in.

`needle` :

  The string to search for.

Returns :

  A pointer to the start of `needle` in `haystack`, or NULL if `needle` is not found.

### e_util_unicode_get_utf8 ()

    gchar*              e_util_unicode_get_utf8             (const gchar *text,
                                                             gunichar *out);

Get a UTF-8 character from the beginning of `text`.

`text` :

  The string to take the UTF-8 character from.

`out` :

  The location to store the UTF-8 character in.

Returns :

  A pointer to the next character in `text` after `out`.

### e_util_utf8_strstrcase ()

    const gchar*        e_util_utf8_strstrcase              (const gchar *haystack,
                                                             const gchar *needle);

Find the first instance of `needle` in `haystack`, ignoring case. (No proper case folding or decomposing is done.) Both `needle` and `haystack` are UTF-8 strings.

`haystack` :

  The string to search in.

`needle` :

  The string to search for.

Returns :

  A pointer to the first instance of `needle` in `haystack`, or `NULL` if no match is found, or if either of the strings are not legal UTF-8 strings.

### e_util_utf8_strstrcasedecomp ()

    const gchar*        e_util_utf8_strstrcasedecomp        (const gchar *haystack,
                                                             const gchar *needle);

Find the first instance of `needle` in `haystack`, where both `needle` and `haystack` are UTF-8 strings. Both strings are stripped and decomposed for comparison, and case is ignored.

`haystack` :

  The string to search in.

`needle` :

  The string to search for.

Returns :

  A pointer to the first instance of `needle` in `haystack`, or `NULL` if either of the strings are not legal UTF-8 strings.

### e_utf8_strftime ()

    size_t              e_utf8_strftime                     (char *s,
                                                             size_t max,
                                                             const char *fmt,
                                                             const struct tm *tm);

The UTF-8 equivalent of `e_strftime()`.

`s` :

  The string array to store the result in.

`max` :

  The size of array `s`.

`fmt` :

  The formatting to use on `tm`.

`tm` :

  The time value to format.

Returns :

  The number of characters placed in `s`.

### e_strftime ()

    size_t              e_strftime                          (char *s,
                                                             size_t max,
                                                             const char *fmt,
                                                             const struct tm *tm);

This function is a wrapper around the strftime(3) function, which converts the &percnt;l and &percnt;k (12h and 24h) format variables if necessary.

`s` :

  The string array to store the result in.

`max` :

  The size of array `s`.

`fmt` :

  The formatting to use on `tm`.

`tm` :

  The time value to format.

Returns :

  The number of characters placed in `s`.