## GOString

GOString

## Synopsis

                        GOString;
                        GOStringPhonetic;
    GOString *          go_string_ERROR                     (void);
    int                 go_string_cmp                       (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);
    int                 go_string_cmp_ignorecase            (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);
    gboolean            go_string_equal                     (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);
    gboolean            go_string_equal_ignorecase          (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);
    gboolean            go_string_equal_rich                (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);
    void                go_string_foreach_base              (GHFunc callback,
                                                             gpointer data);
    char const	 *       go_string_get_casefold              (GOString const *gstr);
    char const       *  go_string_get_casefolded_collate    (GOString const *gstr);
    char const	 *       go_string_get_collation             (GOString const *gstr);
    guint32             go_string_get_len                   (GOString const *gstr);
    PangoAttrList *     go_string_get_markup                (GOString const *gstr);
    GOStringPhonetic *  go_string_get_phonetic              (GOString const *gstr);
    unsigned int        go_string_get_ref_count             (GOString const *gstr);
    guint32             go_string_hash                      (gconstpointer gstr);
    GOString *          go_string_new                       (char const *str);
    GOString *          go_string_new_len                   (char const *str,
                                                             guint32 len);
    GOString *          go_string_new_nocopy                (char *str);
    GOString *          go_string_new_nocopy_len            (char *str,
                                                             guint32 len);
    GOString *          go_string_new_rich                  (char const *str,
                                                             int byte_len,
                                                             PangoAttrList *markup,
                                                             GOStringPhonetic *phonetic);
    GOString *          go_string_new_rich_nocopy           (char *str,
                                                             int byte_len,
                                                             PangoAttrList *markup,
                                                             GOStringPhonetic *phonetic);
    GOString *          go_string_ref                       (GOString *gstr);
    GOString *          go_string_trim                      (GOString *gstr,
                                                             gboolean internal);
    void                go_string_unref                     (GOString *gstr);

## Object Hierarchy

      GBoxed
       +----GOString

## Description

## Details

### GOString

    typedef struct {
    	char const *str; /* utf-8 */
    	/* <private data> */
    } GOString;

GOString is a structure containing a string.

char const *`str`; | the embeded UTF-8 string

### GOStringPhonetic

    typedef struct _GOStringPhonetic GOStringPhonetic;

### go_string_ERROR ()

    GOString *          go_string_ERROR                     (void);

A convenience for g_return_val to share one error string without adding a reference to functions that do not add references to the result

Returns : | A string saying 'ERROR' but does not add a ref to it.

### go_string_cmp ()

    int                 go_string_cmp                       (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);

### go_string_cmp_ignorecase ()

    int                 go_string_cmp_ignorecase            (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);

### go_string_equal ()

    gboolean            go_string_equal                     (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);

### go_string_equal_ignorecase ()

    gboolean            go_string_equal_ignorecase          (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);

`gstr_a` : | string.
`gstr_b` : | string.
Returns : | TRUE if the two strings are equal when ignoring letter case.

### go_string_equal_rich ()

    gboolean            go_string_equal_rich                (gconstpointer gstr_a,
                                                             gconstpointer gstr_b);

`gstr_a` : | string.
`gstr_b` : | string.

### go_string_foreach_base ()

    void                go_string_foreach_base              (GHFunc callback,
                                                             gpointer data);

Iterates through the strings data base and apply `callback` to each.

`callback` : | callback. [scope call]
`data` : | user data

### go_string_get_casefold ()

    char const	 *       go_string_get_casefold              (GOString const *gstr);

### go_string_get_casefolded_collate ()

    char const       *  go_string_get_casefolded_collate    (GOString const *gstr);

### go_string_get_collation ()

    char const	 *       go_string_get_collation             (GOString const *gstr);

### go_string_get_len ()

    guint32             go_string_get_len                   (GOString const *gstr);

`gstr` : | string.

### go_string_get_markup ()

    PangoAttrList *     go_string_get_markup                (GOString const *gstr);

`gstr` : | string.

### go_string_get_phonetic ()

    GOStringPhonetic *  go_string_get_phonetic              (GOString const *gstr);

Warning: Not implemented, always returns NULL.

`gstr` : | GOString.
Returns : | the phonetic data. [transfer none]

### go_string_get_ref_count ()

    unsigned int        go_string_get_ref_count             (GOString const *gstr);

### go_string_hash ()

    guint32             go_string_hash                      (gconstpointer gstr);

### go_string_new ()

    GOString *          go_string_new                       (char const *str);

GOString duplicates `str` if no string already exists.

`str` : | string (optionally `NULL`)
Returns : | a reference to a GOString containing `str`, or `NULL` if `str` is NULL

### go_string_new_len ()

    GOString *          go_string_new_len                   (char const *str,
                                                             guint32 len);

GOString duplicates `str` if no string already exists.

`str` : | string (optionally `NULL`)
`len` : | guint32
Returns : | a reference to a GOString containing `str`, or `NULL` if `str` is NULL

### go_string_new_nocopy ()

    GOString *          go_string_new_nocopy                (char *str);

GOString takes ownership of `str`

`str` : | string
Returns : | a reference to a GOString containing `str`

### go_string_new_nocopy_len ()

    GOString *          go_string_new_nocopy_len            (char *str,
                                                             guint32 len);

GOString takes ownership of `str`

`str` : | string (optionally `NULL`)
`len` : | guint32
Returns : | a reference to a GOString containing `str`

### go_string_new_rich ()

    GOString *          go_string_new_rich                  (char const *str,
                                                             int byte_len,
                                                             PangoAttrList *markup,
                                                             GOStringPhonetic *phonetic);

`str` : | string.
`byte_len` : | < 0 will call strlen.
`markup` : | optionally `NULL` list, GOString steals the ref.
`phonetic` : | optionally `NULL` list of phonetic extensions, GOString steals the ref.
Returns : | a string.

### go_string_new_rich_nocopy ()

    GOString *          go_string_new_rich_nocopy           (char *str,
                                                             int byte_len,
                                                             PangoAttrList *markup,
                                                             GOStringPhonetic *phonetic);

`str` : | string; GOString takes ownership
`byte_len` : | < 0 will call strlen.
`markup` : | optionally `NULL` list, GOString steals the ref.
`phonetic` : | optionally `NULL` list of phonetic extensions, GOString steals the ref.
Returns : | a string.

### go_string_ref ()

    GOString *          go_string_ref                       (GOString *gstr);

### go_string_trim ()

    GOString *          go_string_trim                      (GOString *gstr,
                                                             gboolean internal);

`gstr` : | string.
`internal` : | Trim multiple consequtive internal spaces.
Returns : | `gstr`

### go_string_unref ()

    void                go_string_unref                     (GOString *gstr);