summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Olexa <darkside@gentoo.org>2009-06-13 03:13:11 +0000
committerJeremy Olexa <darkside@gentoo.org>2009-06-13 03:13:11 +0000
commit873ca42ef0207bf3d9ae668a9bc3619db59dca42 (patch)
tree5bb561a86ff3b03bb81321997a959899eb7f6117 /xfce-extra/exo/files
parentAdd upstream patch for buggy chsh behavior, bug 271521 (diff)
downloadgentoo-2-873ca42ef0207bf3d9ae668a9bc3619db59dca42.tar.gz
gentoo-2-873ca42ef0207bf3d9ae668a9bc3619db59dca42.tar.bz2
gentoo-2-873ca42ef0207bf3d9ae668a9bc3619db59dca42.zip
Add small patch to fix exo-mount on localized systems, patch from ALTLinux, bug 271441
(Portage version: 2.1.6.13/cvs/Linux x86_64, RepoMan options: --force)
Diffstat (limited to 'xfce-extra/exo/files')
-rw-r--r--xfce-extra/exo/files/exo-0.3.101-iocharset.patch79
1 files changed, 79 insertions, 0 deletions
diff --git a/xfce-extra/exo/files/exo-0.3.101-iocharset.patch b/xfce-extra/exo/files/exo-0.3.101-iocharset.patch
new file mode 100644
index 000000000000..a667f116652b
--- /dev/null
+++ b/xfce-extra/exo/files/exo-0.3.101-iocharset.patch
@@ -0,0 +1,79 @@
+diff --git a/exo-mount/exo-mount-hal.c b/exo-mount/exo-mount-hal.c
+index 791a536..4b130c3 100644
+--- a/exo-mount/exo-mount-hal.c
++++ b/exo-mount/exo-mount-hal.c
+@@ -34,6 +34,8 @@
+ #include <unistd.h>
+ #endif
+
++#include <langinfo.h>
++
+ #include <libhal-storage.h>
+
+ #include <exo-hal/exo-hal.h>
+@@ -616,6 +618,30 @@ oom: g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_NOMEM, g_strerror (ENOMEM))
+
+
+ /**
++ * exo_mount_hal_iocharset:
++ *
++ * Determines the preferred iocharset for filesystems
++ * that support it.
++ *
++ * Return value: iocharset string or %NULL if none.
++ **/
++static const gchar*
++exo_mount_hal_iocharset ()
++{
++ const gchar* cs = g_getenv("EXO_MOUNT_IOCHARSET");
++ if (cs != NULL)
++ return cs;
++
++ const char* codeset = nl_langinfo (CODESET);
++ if (codeset && !strcmp (codeset, "UTF-8"))
++ return "utf8";
++
++ return NULL;
++}
++
++
++
++/**
+ * exo_mount_hal_device_mount:
+ * @device : an #ExoMountHalDevice.
+ * @error : return location for errors or %NULL.
+@@ -676,6 +702,12 @@ exo_mount_hal_device_mount (ExoMountHalDevice *device,
+ /* however this one is FreeBSD specific */
+ options[n++] = g_strdup ("longnames");
+ }
++ else if (strcmp (device->fsoptions[m], "iocharset=") == 0)
++ {
++ const gchar* iocharset = exo_mount_hal_iocharset();
++ if (iocharset != NULL)
++ options[n++] = g_strdup_printf ("iocharset=%s", iocharset);
++ }
+ }
+ }
+
+diff --git a/exo-mount/main.c b/exo-mount/main.c
+index 80eae1d..f442019 100644
+--- a/exo-mount/main.c
++++ b/exo-mount/main.c
+@@ -39,6 +39,8 @@
+ #include <string.h>
+ #endif
+
++#include <locale.h>
++
+ #include <glib/gstdio.h>
+
+ #include <exo-hal/exo-hal.h>
+@@ -97,6 +99,8 @@ main (int argc, char **argv)
+ /* initialize the i18n support */
+ xfce_textdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8");
+
++ setlocale(LC_CTYPE, "");
++
+ /* initialize GTK+ */
+ if (!gtk_init_with_args (&argc, &argv, "Xfce mount", entries, GETTEXT_PACKAGE, &err))
+ {