GflsEncoding

GflsEncoding — Character encoding

Functions

Types and Values

Object Hierarchy

    GBoxed
    ╰── GflsEncoding
    GEnum
    ╰── GflsEncodingDuplicates

Includes

#include <gfls/gfls.h>

Description

The GflsEncoding boxed type represents a character encoding.

Note that the text in GTK widgets is always encoded in UTF-8.

Functions

gfls_encoding_new ()

GflsEncoding *
gfls_encoding_new (const gchar *charset);

Creates a new GflsEncoding from a character set such as "UTF-8" or "ISO-8859-1".

The gfls_encoding_get_charset() function will return exactly the same string as the charset passed in to this constructor.

Parameters

charset

a character set.

 

Returns

the new GflsEncoding. Free with gfls_encoding_free().

[transfer full]

Since: 0.5


gfls_encoding_new_utf8 ()

GflsEncoding *
gfls_encoding_new_utf8 (void);

Creates a new GflsEncoding with the "UTF-8" character set.

Returns

the new GflsEncoding. Free with gfls_encoding_free().

[transfer full]

Since: 0.5


gfls_encoding_new_from_locale ()

GflsEncoding *
gfls_encoding_new_from_locale (void);

Creates a new GflsEncoding from the current locale, as returned by g_get_charset().

Returns

the new GflsEncoding. Free with gfls_encoding_free().

[transfer full]

Since: 0.5


gfls_encoding_copy ()

GflsEncoding *
gfls_encoding_copy (const GflsEncoding *enc);

Parameters

enc

a GflsEncoding.

 

Returns

a copy of enc .

[transfer full]

Since: 0.5


gfls_encoding_copy_func ()

gpointer
gfls_encoding_copy_func (gconstpointer src,
                         gpointer data);

A GCopyFunc provided for convenience. It does the same as gfls_encoding_copy(). It is useful for example for g_slist_copy_deep().

Parameters

src

a GflsEncoding.

 

data

Additional data (ignored).

 

Returns

a copy of src .

Since: 0.5


gfls_encoding_free ()

void
gfls_encoding_free (GflsEncoding *enc);

Parameters

enc

a GflsEncoding, or NULL.

[nullable]

Since: 0.5


gfls_encoding_get_charset ()

const gchar *
gfls_encoding_get_charset (const GflsEncoding *enc);

Gets the character set of the GflsEncoding, such as "UTF-8" or "ISO-8859-1".

Parameters

enc

a GflsEncoding.

 

Returns

the character set of the GflsEncoding.

Since: 0.5


gfls_encoding_has_known_charset ()

gboolean
gfls_encoding_has_known_charset (const GflsEncoding *enc);

Returns TRUE if enc has a charset known by GflsEncoding. In other words: if enc is equal to an encoding returned by gfls_encoding_get_all().

When the charset string comes from an untrusted source, it can be desirable to check it.

Parameters

enc

a GflsEncoding.

 

Returns

whether enc has a charset known by GflsEncoding.

Since: 0.5


gfls_encoding_get_name ()

const gchar *
gfls_encoding_get_name (const GflsEncoding *enc);

Gets the name of the GflsEncoding such as "Unicode" or "Western". If the charset is unknown by GflsEncoding, "Unknown" is returned. The return value is already translated by gettext.

Parameters

enc

a GflsEncoding.

 

Returns

the name of the GflsEncoding.

Since: 0.5


gfls_encoding_to_string ()

gchar *
gfls_encoding_to_string (const GflsEncoding *enc);

Returns the encoding name with the charset in parenthesis, for example "Unicode (UTF-8)". If the name is unknown, just the charset is returned. The name is translated by gettext.

Parameters

enc

a GflsEncoding.

 

Returns

a string representation. Free with g_free() when no longer needed.

Since: 0.5


gfls_encoding_is_utf8 ()

gboolean
gfls_encoding_is_utf8 (const GflsEncoding *enc);

Returns whether enc is a UTF-8 encoding.

If enc was created with gfls_encoding_new_utf8(), the charset is "UTF-8". But iconv supports other variants: "UTF8", "utf-8" and "utf8". This function returns TRUE for all UTF-8 variants supported by iconv.

Parameters

enc

a GflsEncoding.

 

Returns

whether enc is a UTF-8 encoding.

Since: 0.5


gfls_encoding_is_locale ()

gboolean
gfls_encoding_is_locale (const GflsEncoding *enc);

Parameters

enc

a GflsEncoding.

 

Returns

whether enc is the locale encoding (see gfls_encoding_new_from_locale()).

Since: 0.5


gfls_encoding_equals ()

gboolean
gfls_encoding_equals (const GflsEncoding *enc1,
                      const GflsEncoding *enc2);

Returns whether enc1 and enc2 are equal. It returns TRUE if and only if:

  • Both enc1 and enc2 are NULL;

  • Or both enc1 and enc2 have a UTF-8 charset (see gfls_encoding_is_utf8());

  • Or the charsets are equal according to g_ascii_strcasecmp() (because iconv-compatible charsets are case insensitive).

Parameters

enc1

a GflsEncoding, or NULL.

[nullable]

enc2

a GflsEncoding, or NULL.

[nullable]

Returns

whether enc1 and enc2 are equal.

Since: 0.5


gfls_encoding_compare_func ()

gint
gfls_encoding_compare_func (gconstpointer a,
                            gconstpointer b);

A GCompareFunc provided for convenience. When 0 is returned it means that the two encodings are equal according to gfls_encoding_equals().

It is useful for example for g_slist_find_custom().

Parameters

a

a GflsEncoding.

[nullable]

b

a GflsEncoding.

[nullable]

Returns

an integer according to GCompareFunc.

Since: 0.5


gfls_encoding_get_all ()

GSList *
gfls_encoding_get_all (void);

Gets a list of all encodings known by GflsEncoding.

Returns

a list of GflsEncoding's.

[transfer full][element-type GflsEncoding]

Since: 0.5


gfls_encoding_get_default_candidates ()

GSList *
gfls_encoding_get_default_candidates (void);

Gets the list of default candidate encodings to try when loading a file.

This function returns a different list depending on the current locale (i.e., language, country and default encoding). The UTF-8 encoding and the current locale encoding are guaranteed to be present in the returned list.

Note that the returned list doesn't contain all encodings known by GflsEncoding, it is a limited list that contains only the encodings that have the most likelihood to fit for the current locale.

Returns

the list of default candidate encodings.

[transfer full][element-type GflsEncoding]

Since: 0.5


gfls_encoding_remove_duplicates ()

GSList *
gfls_encoding_remove_duplicates (GSList *list,
                                 GflsEncodingDuplicates removal_type);

A convenience function to remove duplicated encodings in a list.

Parameters

list

a list of GflsEncoding's.

[transfer full][element-type GflsEncoding]

removal_type

the GflsEncodingDuplicates.

 

Returns

the new start of the GSList.

[transfer full][element-type GflsEncoding]

Since: 0.5

Types and Values

GflsEncoding

typedef struct _GflsEncoding GflsEncoding;

enum GflsEncodingDuplicates

Specifies which GflsEncoding occurrence to keep when removing duplicated encodings in a list with gfls_encoding_remove_duplicates().

Members

GFLS_ENCODING_DUPLICATES_KEEP_FIRST

Keep the first occurrence.

 

GFLS_ENCODING_DUPLICATES_KEEP_LAST

Keep the last occurrence.

 

Since: 0.5