diff options
Diffstat (limited to 'eel')
-rw-r--r-- | eel/eel-glib-extensions.c | 98 | ||||
-rw-r--r-- | eel/eel-glib-extensions.h | 3 |
2 files changed, 0 insertions, 101 deletions
diff --git a/eel/eel-glib-extensions.c b/eel/eel-glib-extensions.c index 63ac74a7..5b016aad 100644 --- a/eel/eel-glib-extensions.c +++ b/eel/eel-glib-extensions.c @@ -775,104 +775,6 @@ eel_remove_weak_pointer (gpointer pointer_location) *object_location = NULL; } -/* Get the filename encoding, returns TRUE if utf8 */ - -typedef struct _EelFilenameCharsetCache EelFilenameCharsetCache; - -struct _EelFilenameCharsetCache -{ - gboolean is_utf8; - gchar *charset; - gchar *filename_charset; -}; - -static void -filename_charset_cache_free (gpointer data) -{ - EelFilenameCharsetCache *cache = data; - g_free (cache->charset); - g_free (cache->filename_charset); - g_free (cache); -} - -/* - * eel_get_filename_charset: - * @charset: return location for the name of the filename encoding - * - * Determines the character set used for filenames by consulting the - * environment variables G_FILENAME_ENCODING and G_BROKEN_FILENAMES. - * - * G_FILENAME_ENCODING may be set to a comma-separated list of character - * set names. The special token "@locale" is taken to mean the character set - * for the current locale. The first character set from the list is taken - * as the filename encoding. - * If G_FILENAME_ENCODING is not set, but G_BROKEN_FILENAMES is, the - * character set of the current locale is taken as the filename encoding. - * - * The returned @charset belongs to Eel and must not be freed. - * - * Return value: %TRUE if the charset used for filename is UTF-8. - */ -gboolean -eel_get_filename_charset (const gchar **filename_charset) -{ - static GStaticPrivate cache_private = G_STATIC_PRIVATE_INIT; - EelFilenameCharsetCache *cache = g_static_private_get (&cache_private); - const gchar *charset; - - if (!cache) - { - cache = g_new0 (EelFilenameCharsetCache, 1); - g_static_private_set (&cache_private, cache, filename_charset_cache_free); - } - - g_get_charset (&charset); - - if (!(cache->charset && strcmp (cache->charset, charset) == 0)) - { - const gchar *new_charset; - gchar *p, *q; - - g_free (cache->charset); - g_free (cache->filename_charset); - cache->charset = g_strdup (charset); - - p = getenv ("G_FILENAME_ENCODING"); - if (p != NULL) - { - q = strchr (p, ','); - if (!q) - q = p + strlen (p); - - if (strncmp ("@locale", p, q - p) == 0) - { - cache->is_utf8 = g_get_charset (&new_charset); - cache->filename_charset = g_strdup (new_charset); - } - else - { - cache->filename_charset = g_strndup (p, q - p); - cache->is_utf8 = (strcmp (cache->filename_charset, "UTF-8") == 0); - } - } - else if (getenv ("G_BROKEN_FILENAMES") != NULL) - { - cache->is_utf8 = g_get_charset (&new_charset); - cache->filename_charset = g_strdup (new_charset); - } - else - { - cache->filename_charset = g_strdup ("UTF-8"); - cache->is_utf8 = TRUE; - } - } - - if (filename_charset) - *filename_charset = cache->filename_charset; - - return cache->is_utf8; -} - static void update_auto_boolean (GSettings *settings, const gchar *key, diff --git a/eel/eel-glib-extensions.h b/eel/eel-glib-extensions.h index 416ebe2f..907a1ec9 100644 --- a/eel/eel-glib-extensions.h +++ b/eel/eel-glib-extensions.h @@ -90,9 +90,6 @@ int eel_round (double void eel_add_weak_pointer (gpointer pointer_location); void eel_remove_weak_pointer (gpointer pointer_location); -/* Get the filename encoding, returns TRUE if utf8 */ -gboolean eel_get_filename_charset (const gchar **filename_charset); - void eel_g_settings_add_auto_enum (GSettings *settings, const char *key, int *storage); |