[arch-commits] Commit in thunar-archive-plugin/trunk (PKGBUILD thunar-vfs2gio.patch)
andyrtr at archlinux.org
andyrtr at archlinux.org
Sat Jan 22 20:41:21 UTC 2011
Date: Saturday, January 22, 2011 @ 15:41:21
Author: andyrtr
Revision: 107246
upgpkg: thunar-archive-plugin 0.2.4-7
make it work with thunar 1.2.x
Added:
thunar-archive-plugin/trunk/thunar-vfs2gio.patch
Modified:
thunar-archive-plugin/trunk/PKGBUILD
----------------------+
PKGBUILD | 15 -
thunar-vfs2gio.patch | 617 +++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 627 insertions(+), 5 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2011-01-22 19:47:10 UTC (rev 107245)
+++ PKGBUILD 2011-01-22 20:41:21 UTC (rev 107246)
@@ -1,4 +1,5 @@
# $Id$
+# Maintainer: AndyRTR <andyrtr at archlinux.org>
# Contributor: Tobias Kieslich <tobias (at) archlinux.org>
pkgname=thunar-archive-plugin
@@ -9,17 +10,21 @@
license=('GPL2')
url="http://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin"
groups=('xfce4-goodies')
-depends=('thunar>=1.2.0')
+depends=('thunar>=1.2.0' 'thunar-vfs')
makedepends=('intltool')
options=('!libtool')
install=${pkgname}.install
-source=(http://download.berlios.de/xfce-goodies/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('4c389e6328af9322937af76382f0baec')
+source=(http://download.berlios.de/xfce-goodies/${pkgname}-${pkgver}.tar.bz2
+ thunar-vfs2gio.patch)
+md5sums=('4c389e6328af9322937af76382f0baec'
+ 'f1453d7c9cd9dde04f23d78f271298cd')
build() {
cd ${srcdir}/${pkgname}-${pkgver}
- # thunar 1.2 hack
- sed -i "s/thunarx\-1/thunarx\-2/g" configure
+ # thunar 1.2 fix
+ patch -Np1 -i ${srcdir}/thunar-vfs2gio.patch
+# sed -i -e 's/thunarx-1/thunarx-2/g' `grep -l 'thunarx-1' * -R`
+
./configure --prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib/xfce4 \
Added: thunar-vfs2gio.patch
===================================================================
--- thunar-vfs2gio.patch (rev 0)
+++ thunar-vfs2gio.patch 2011-01-22 20:41:21 UTC (rev 107246)
@@ -0,0 +1,617 @@
+diff -aur thunar-archive-plugin-0.2.4/configure thunar-archive-plugin-0.2.4.new//configure
+--- thunar-archive-plugin-0.2.4/configure 2007-01-20 11:44:59.000000000 +0100
++++ thunar-archive-plugin-0.2.4.new//configure 2010-11-28 17:31:59.000000000 +0100
+@@ -22113,26 +22113,26 @@
+ fi
+
+
+- echo "$as_me:$LINENO: checking for thunarx-1 >= 0.4.0" >&5
+-echo $ECHO_N "checking for thunarx-1 >= 0.4.0... $ECHO_C" >&6
+- if $PKG_CONFIG "--atleast-version=0.4.0" "thunarx-1" >/dev/null 2>&1; then
+- THUNARX_VERSION=`$PKG_CONFIG --modversion "thunarx-1"`
++ echo "$as_me:$LINENO: checking for thunarx-2 >= 1.0.1" >&5
++echo $ECHO_N "checking for thunarx-2 >= 1.0.1... $ECHO_C" >&6
++ if $PKG_CONFIG "--atleast-version=1.0.1" "thunarx-2" >/dev/null 2>&1; then
++ THUNARX_VERSION=`$PKG_CONFIG --modversion "thunarx-2"`
+ echo "$as_me:$LINENO: result: $THUNARX_VERSION" >&5
+ echo "${ECHO_T}$THUNARX_VERSION" >&6
+
+ echo "$as_me:$LINENO: checking THUNARX_CFLAGS" >&5
+ echo $ECHO_N "checking THUNARX_CFLAGS... $ECHO_C" >&6
+- THUNARX_CFLAGS=`$PKG_CONFIG --cflags "thunarx-1"`
++ THUNARX_CFLAGS=`$PKG_CONFIG --cflags "thunarx-2"`
+ echo "$as_me:$LINENO: result: $THUNARX_CFLAGS" >&5
+ echo "${ECHO_T}$THUNARX_CFLAGS" >&6
+
+ echo "$as_me:$LINENO: checking THUNARX_LIBS" >&5
+ echo $ECHO_N "checking THUNARX_LIBS... $ECHO_C" >&6
+- THUNARX_LIBS=`$PKG_CONFIG --libs "thunarx-1"`
++ THUNARX_LIBS=`$PKG_CONFIG --libs "thunarx-2"`
+ echo "$as_me:$LINENO: result: $THUNARX_LIBS" >&5
+ echo "${ECHO_T}$THUNARX_LIBS" >&6
+
+- THUNARX_REQUIRED_VERSION=0.4.0
++ THUNARX_REQUIRED_VERSION=1.0.1
+
+
+
+@@ -22140,15 +22140,15 @@
+
+
+
+- elif $PKG_CONFIG --exists "thunarx-1" >/dev/null 2>&1; then
+- xdt_cv_version=`$PKG_CONFIG --modversion "thunarx-1"`
++ elif $PKG_CONFIG --exists "thunarx-2" >/dev/null 2>&1; then
++ xdt_cv_version=`$PKG_CONFIG --modversion "thunarx-2"`
+ echo "$as_me:$LINENO: result: found, but $xdt_cv_version" >&5
+ echo "${ECHO_T}found, but $xdt_cv_version" >&6
+
+
+- echo "*** The required package thunarx-1 was found on your system,"
++ echo "*** The required package thunarx-2 was found on your system,"
+ echo "*** but the installed version ($xdt_cv_version) is too old."
+- echo "*** Please upgrade thunarx-1 to atleast version 0.4.0, or adjust"
++ echo "*** Please upgrade thunarx-2 to atleast version 1.0.1, or adjust"
+ echo "*** the PKG_CONFIG_PATH environment variable if you installed"
+ echo "*** the new version of the package in a nonstandard prefix so"
+ echo "*** pkg-config is able to find it."
+@@ -22159,8 +22159,8 @@
+ echo "${ECHO_T}not found" >&6
+
+
+- echo "*** The required package thunarx-1 was not found on your system."
+- echo "*** Please install thunarx-1 (atleast version 0.4.0) or adjust"
++ echo "*** The required package thunarx-2 was not found on your system."
++ echo "*** Please install thunarx-2 (atleast version 1.0.1) or adjust"
+ echo "*** the PKG_CONFIG_PATH environment variable if you"
+ echo "*** installed the package in a nonstandard prefix so that"
+ echo "*** pkg-config is able to find it."
+@@ -22250,9 +22250,9 @@
+ fi
+
+
+- echo "$as_me:$LINENO: checking for thunar-vfs-1 >= 0.4.0" >&5
+-echo $ECHO_N "checking for thunar-vfs-1 >= 0.4.0... $ECHO_C" >&6
+- if $PKG_CONFIG "--atleast-version=0.4.0" "thunar-vfs-1" >/dev/null 2>&1; then
++ echo "$as_me:$LINENO: checking for thunar-vfs-1 >= 1.0.1" >&5
++echo $ECHO_N "checking for thunar-vfs-1 >= 1.0.1... $ECHO_C" >&6
++ if $PKG_CONFIG "--atleast-version=1.0.1" "thunar-vfs-1" >/dev/null 2>&1; then
+ THUNAR_VFS_VERSION=`$PKG_CONFIG --modversion "thunar-vfs-1"`
+ echo "$as_me:$LINENO: result: $THUNAR_VFS_VERSION" >&5
+ echo "${ECHO_T}$THUNAR_VFS_VERSION" >&6
+@@ -22269,7 +22269,7 @@
+ echo "$as_me:$LINENO: result: $THUNAR_VFS_LIBS" >&5
+ echo "${ECHO_T}$THUNAR_VFS_LIBS" >&6
+
+- THUNAR_VFS_REQUIRED_VERSION=0.4.0
++ THUNAR_VFS_REQUIRED_VERSION=1.0.1
+
+
+
+@@ -22285,7 +22285,7 @@
+
+ echo "*** The required package thunar-vfs-1 was found on your system,"
+ echo "*** but the installed version ($xdt_cv_version) is too old."
+- echo "*** Please upgrade thunar-vfs-1 to atleast version 0.4.0, or adjust"
++ echo "*** Please upgrade thunar-vfs-1 to atleast version 1.0.1, or adjust"
+ echo "*** the PKG_CONFIG_PATH environment variable if you installed"
+ echo "*** the new version of the package in a nonstandard prefix so"
+ echo "*** pkg-config is able to find it."
+@@ -22297,7 +22297,7 @@
+
+
+ echo "*** The required package thunar-vfs-1 was not found on your system."
+- echo "*** Please install thunar-vfs-1 (atleast version 0.4.0) or adjust"
++ echo "*** Please install thunar-vfs-1 (atleast version 1.0.1) or adjust"
+ echo "*** the PKG_CONFIG_PATH environment variable if you"
+ echo "*** installed the package in a nonstandard prefix so that"
+ echo "*** pkg-config is able to find it."
+diff -aur thunar-archive-plugin-0.2.4/configure.in thunar-archive-plugin-0.2.4.new//configure.in
+--- thunar-archive-plugin-0.2.4/configure.in 2007-01-20 11:44:45.000000000 +0100
++++ thunar-archive-plugin-0.2.4.new//configure.in 2010-11-28 17:31:36.000000000 +0100
+@@ -68,8 +68,9 @@
+ dnl ***********************************
+ dnl *** Check for required packages ***
+ dnl ***********************************
+-XDT_CHECK_PACKAGE([THUNARX], [thunarx-1], [0.4.0])
+-XDT_CHECK_PACKAGE([THUNAR_VFS], [thunar-vfs-1], [0.4.0])
++XDT_CHECK_PACKAGE([THUNARX], [thunarx-2], [1.0.1])
++XDT_CHECK_PACKAGE([EXO], [exo-1], [0.5])
++XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.6.0])
+
+ dnl ***********************************
+ dnl *** Check for debugging support ***
+diff -aur thunar-archive-plugin-0.2.4/thunar-archive-plugin/Makefile.am thunar-archive-plugin-0.2.4.new//thunar-archive-plugin/Makefile.am
+--- thunar-archive-plugin-0.2.4/thunar-archive-plugin/Makefile.am 2007-01-20 11:41:50.000000000 +0100
++++ thunar-archive-plugin-0.2.4.new//thunar-archive-plugin/Makefile.am 2010-11-28 17:31:36.000000000 +0100
+@@ -9,7 +9,7 @@
+ -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
+ $(PLATFORM_CPPFLAGS)
+
+-extensionsdir = $(libdir)/thunarx-1
++extensionsdir = $(libdir)/thunarx-2
+ extensions_LTLIBRARIES = \
+ thunar-archive-plugin.la
+
+@@ -23,7 +23,8 @@
+ thunar_archive_plugin_la_CFLAGS = \
+ $(PLATFORM_CFLAGS) \
+ $(THUNARX_CFLAGS) \
+- $(THUNAR_VFS_CFLAGS)
++ $(EXO_CFLAGS) \
++ $(LIBXFCE4UTIL_CFLAGS)
+
+ thunar_archive_plugin_la_LDFLAGS = \
+ -avoid-version \
+diff -aur thunar-archive-plugin-0.2.4/thunar-archive-plugin/tap-backend.c thunar-archive-plugin-0.2.4.new//thunar-archive-plugin/tap-backend.c
+--- thunar-archive-plugin-0.2.4/thunar-archive-plugin/tap-backend.c 2007-01-20 11:41:50.000000000 +0100
++++ thunar-archive-plugin-0.2.4.new//thunar-archive-plugin/tap-backend.c 2010-11-28 17:31:36.000000000 +0100
+@@ -29,36 +29,36 @@
+ #include <string.h>
+ #endif
+
+-#include <thunar-vfs/thunar-vfs.h>
+-
++#include <exo/exo.h>
+ #include <thunar-archive-plugin/tap-backend.h>
+
+
+
+-static ThunarVfsMimeApplication *tap_backend_mime_ask (GList *mime_applications,
+- GtkWidget *parent);
+-static GList *tap_backend_mime_applications (ThunarVfsMimeDatabase *mime_database,
+- GList *mime_infos);
+-static ThunarVfsMimeApplication *tap_backend_mime_application (GList *mime_infos,
+- GtkWidget *window,
+- GError **error);
+-static gchar *tap_backend_mime_wrapper (ThunarVfsMimeApplication *mime_application) G_GNUC_MALLOC;
+-static GPid tap_backend_run (const gchar *action,
+- const gchar *folder,
+- GList *files,
+- GList *mime_infos,
+- GtkWidget *window,
+- GError **error);
++static GAppInfo *tap_backend_mime_ask (GList *mime_applications,
++ GtkWidget *parent);
++static gint tap_backend_mime_application_compare (GAppInfo *a,
++ GAppInfo *b);
++static GList *tap_backend_mime_applications (GList *content_types);
++static GAppInfo *tap_backend_mime_application (GList *content_types,
++ GtkWidget *window,
++ GError **error);
++static gchar *tap_backend_mime_wrapper (GAppInfo *mime_application) G_GNUC_MALLOC;
++static GPid tap_backend_run (const gchar *action,
++ const gchar *folder,
++ GList *files,
++ GList *content_types,
++ GtkWidget *window,
++ GError **error);
+
+
+
+-static ThunarVfsMimeApplication*
++static GAppInfo*
+ tap_backend_mime_ask (GList *mime_applications,
+ GtkWidget *parent)
+ {
+- ThunarVfsMimeApplication *mime_application = NULL;
++ GAppInfo *mime_application = NULL;
+ GtkIconTheme *icon_theme;
+- const gchar *icon_name;
++ GIcon *icon;
+ GtkTooltips *tooltips;
+ GtkWidget *button;
+ GtkWidget *dialog;
+@@ -127,7 +127,7 @@
+ gtk_widget_show (button);
+
+ /* set the command as tooltip, as some archive manager's names are not very useful */
+- command = g_strdup (thunar_vfs_mime_handler_get_command (THUNAR_VFS_MIME_HANDLER (mp->data)));
++ command = g_strdup (g_app_info_get_executable (mp->data));
+ space = strchr (command, ' ');
+ if (G_LIKELY (space != NULL))
+ *space = '\0';
+@@ -140,17 +140,17 @@
+ gtk_widget_show (hbox);
+
+ /* check if we have an icon for the application */
+- icon_name = thunar_vfs_mime_handler_lookup_icon_name (THUNAR_VFS_MIME_HANDLER (mp->data), icon_theme);
+- if (G_LIKELY (icon_name != NULL))
++ icon = g_app_info_get_icon (mp->data);
++ if (G_LIKELY (icon != NULL))
+ {
+ /* add an image */
+- image = gtk_image_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU);
++ image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_MENU);
+ gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
+ gtk_widget_show (image);
+ }
+
+ /* add the label for the application */
+- label = gtk_label_new (thunar_vfs_mime_application_get_name (mp->data));
++ label = gtk_label_new (g_app_info_get_name (mp->data));
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0f, 0.5f);
+ gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
+ gtk_widget_show (label);
+@@ -178,9 +178,17 @@
+
+
+
++static gint
++tap_backend_mime_application_compare (GAppInfo *a,
++ GAppInfo *b)
++{
++ return g_app_info_equal (a, b)?0:1;
++}
++
++
++
+ static GList*
+-tap_backend_mime_applications (ThunarVfsMimeDatabase *mime_database,
+- GList *mime_infos)
++tap_backend_mime_applications (GList *content_types)
+ {
+ GList *mime_applications = NULL;
+ GList *list;
+@@ -190,14 +198,14 @@
+ gchar *s;
+
+ /* determine the set of applications that can handle all mime types */
+- for (lp = mime_infos; lp != NULL; lp = lp->next)
++ for (lp = content_types; lp != NULL; lp = lp->next)
+ {
+ /* no need to check anything if this is the same mime type as the previous one */
+ if (lp->prev != NULL && lp->prev->data == lp->data)
+ continue;
+
+ /* determine the list of applications that can handle this mime type */
+- list = thunar_vfs_mime_database_get_applications (mime_database, lp->data);
++ list = g_app_info_get_all_for_type (lp->data);
+ if (G_UNLIKELY (mime_applications == NULL))
+ {
+ /* first file, so just use the applications list */
+@@ -212,7 +220,7 @@
+ next = ap->next;
+
+ /* check if the application is present in list */
+- if (g_list_find (list, ap->data) == NULL)
++ if (g_list_find_custom (list, ap->data, (GCompareFunc) tap_backend_mime_application_compare) == NULL)
+ {
+ /* drop our reference on the application */
+ g_object_unref (G_OBJECT (ap->data));
+@@ -256,24 +264,19 @@
+
+
+
+-static ThunarVfsMimeApplication*
+-tap_backend_mime_application (GList *mime_infos,
++static GAppInfo*
++tap_backend_mime_application (GList *content_types,
+ GtkWidget *window,
+ GError **error)
+ {
+- ThunarVfsMimeApplication *mime_application = NULL;
+- ThunarVfsMimeDatabase *mime_database;
+- const gchar * const *mime_types;
+- ThunarVfsMimeInfo *mime_info;
++ GAppInfo *mime_application = NULL;
++ GAppInfo *app_info;
+ GError *err = NULL;
+ GList *mime_applications;
+- guint n;
+-
+- /* grab a reference on the mime database */
+- mime_database = thunar_vfs_mime_database_get_default ();
++ GList *lp;
+
+ /* determine the mime applications that can handle the mime types */
+- mime_applications = tap_backend_mime_applications (mime_database, mime_infos);
++ mime_applications = tap_backend_mime_applications (content_types);
+ if (G_UNLIKELY (mime_applications == NULL))
+ {
+ /* tell the user that we cannot handle the specified mime types */
+@@ -290,28 +293,29 @@
+ /* more than one supported archive manager, check if the first
+ * available is the default for all its supported mime types.
+ */
+- mime_types = thunar_vfs_mime_application_get_mime_types (mime_applications->data);
+- for (n = 0; mime_types[n] != NULL; ++n)
++ for (lp = content_types; lp != NULL; lp = lp->next)
+ {
+ /* determine the default application for this mime type */
+- mime_info = thunar_vfs_mime_database_get_info (mime_database, mime_types[n]);
+- mime_application = thunar_vfs_mime_database_get_default_application (mime_database, mime_info);
+- thunar_vfs_mime_info_unref (mime_info);
++ app_info = g_app_info_get_default_for_type (lp->data, FALSE);
++
++ /* no default applications for this mime type */
++ if (app_info == NULL)
++ break;
+
+ /* check if our expected default application is also the default here */
+- if (mime_applications->data != mime_application)
++ if (!g_app_info_equal (app_info, mime_applications->data))
+ {
+ /* no, have to ask the user */
+- g_object_unref (G_OBJECT (mime_application));
++ g_object_unref (app_info);
+ break;
+ }
+
+ /* yep, next one please... */
+- g_object_unref (G_OBJECT (mime_application));
++ g_object_unref (app_info);
+ }
+
+ /* check if we have found a suitable one */
+- if (G_LIKELY (mime_types[n] == NULL))
++ if (G_LIKELY (lp == NULL))
+ {
+ /* use the first available archive manager */
+ mime_application = g_object_ref (G_OBJECT (mime_applications->data));
+@@ -325,20 +329,17 @@
+ /* make the selected application the default for all its
+ * supported mime types, so we don't need to ask once again.
+ */
+- mime_types = thunar_vfs_mime_application_get_mime_types (mime_application);
+- for (n = 0; mime_types[n] != NULL; ++n)
++ for (lp = content_types; lp != NULL; lp = lp->next)
+ {
+ /* set the default application */
+- mime_info = thunar_vfs_mime_database_get_info (mime_database, mime_types[n]);
+- if (!thunar_vfs_mime_database_set_default_application (mime_database, mime_info, mime_application, &err))
++ if (!g_app_info_set_as_default_for_type (mime_application, lp->data, &err))
+ {
+ /* not critical, still we should tell the user that we failed */
+ g_warning ("Failed to make \"%s\" the default application for %s: %s",
+- thunar_vfs_mime_application_get_name (mime_application),
+- thunar_vfs_mime_info_get_name (mime_info), err->message);
++ g_app_info_get_name (mime_application),
++ (char*) lp->data, err->message);
+ g_clear_error (&err);
+ }
+- thunar_vfs_mime_info_unref (mime_info);
+ }
+ }
+ }
+@@ -348,16 +349,13 @@
+ g_list_free (mime_applications);
+ }
+
+- /* release our reference on the mime database */
+- g_object_unref (G_OBJECT (mime_database));
+-
+ return mime_application;
+ }
+
+
+
+ static gchar*
+-tap_backend_mime_wrapper (ThunarVfsMimeApplication *mime_application)
++tap_backend_mime_wrapper (GAppInfo *mime_application)
+ {
+ const gchar *desktop_id;
+ gchar *basename;
+@@ -365,7 +363,7 @@
+ gchar *dot;
+
+ /* determine the basename of the .desktop file */
+- desktop_id = thunar_vfs_mime_application_get_desktop_id (mime_application);
++ desktop_id = g_app_info_get_id (mime_application);
+ basename = g_path_get_basename (desktop_id);
+ dot = strrchr (basename, '.');
+ if (G_LIKELY (dot != NULL))
+@@ -394,12 +392,12 @@
+ tap_backend_run (const gchar *action,
+ const gchar *folder,
+ GList *files,
+- GList *mime_infos,
++ GList *content_types,
+ GtkWidget *window,
+ GError **error)
+ {
+- ThunarVfsMimeApplication *mime_application;
+- ThunarVfsInfo *info;
++ GAppInfo *mime_application;
++ gchar *mime_type;
+ GdkScreen *screen;
+ gchar *wrapper;
+ gchar **argv;
+@@ -409,19 +407,19 @@
+ gint n;
+
+ /* determine the mime infos on-demand */
+- if (G_LIKELY (mime_infos == NULL))
++ if (G_LIKELY (content_types == NULL))
+ {
+ /* determine the mime infos from the files */
+ for (lp = files; lp != NULL; lp = lp->next)
+ {
+- info = thunarx_file_info_get_vfs_info (THUNARX_FILE_INFO (lp->data));
+- mime_infos = g_list_append (mime_infos, thunar_vfs_mime_info_ref (info->mime_info));
+- thunar_vfs_info_unref (info);
++ mime_type = thunarx_file_info_get_mime_type (THUNARX_FILE_INFO (lp->data));
++ content_types = g_list_append (content_types, g_content_type_from_mime_type (mime_type));
++ g_free (mime_type);
+ }
+ }
+
+ /* determine the mime application to use */
+- mime_application = tap_backend_mime_application (mime_infos, window, error);
++ mime_application = tap_backend_mime_application (content_types, window, error);
+ if (G_LIKELY (mime_application != NULL))
+ {
+ /* determine the wrapper script for the application */
+@@ -463,7 +461,8 @@
+ }
+
+ /* cleanup */
+- thunar_vfs_mime_info_list_free (mime_infos);
++ g_list_foreach (content_types, (GFunc) g_free, NULL);
++ g_list_free (content_types);
+
+ return pid;
+ }
+@@ -493,24 +492,21 @@
+ GtkWidget *window,
+ GError **error)
+ {
+- ThunarVfsMimeDatabase *mime_database;
+- GList *mime_infos = NULL;
++ GList *content_types = NULL;
+
+ g_return_val_if_fail (files != NULL, -1);
+ g_return_val_if_fail (GTK_IS_WINDOW (window), -1);
+ g_return_val_if_fail (g_path_is_absolute (folder), -1);
+ g_return_val_if_fail (error == NULL || *error == NULL, -1);
+
+- /* determine the mime infos for zip and tar files (all supported archives must be able to handle them) */
+- mime_database = thunar_vfs_mime_database_get_default ();
+- mime_infos = g_list_append (mime_infos, thunar_vfs_mime_database_get_info (mime_database, "application/x-compressed-tar"));
+- mime_infos = g_list_append (mime_infos, thunar_vfs_mime_database_get_info (mime_database, "application/x-tar"));
+- mime_infos = g_list_append (mime_infos, thunar_vfs_mime_database_get_info (mime_database, "application/x-zip"));
+- mime_infos = g_list_append (mime_infos, thunar_vfs_mime_database_get_info (mime_database, "application/zip"));
+- g_object_unref (G_OBJECT (mime_database));
++ /* determine the content types for zip and tar files (all supported archives must be able to handle them) */
++ content_types = g_list_append (content_types, g_content_type_from_mime_type ("application/x-compressed-tar"));
++ content_types = g_list_append (content_types, g_content_type_from_mime_type ("application/x-tar"));
++ content_types = g_list_append (content_types, g_content_type_from_mime_type ("application/x-zip"));
++ content_types = g_list_append (content_types, g_content_type_from_mime_type ("application/zip"));
+
+ /* run the action, the mime infos will be freed by the _run() method */
+- return tap_backend_run ("create", folder, files, mime_infos, window, error);
++ return tap_backend_run ("create", folder, files, content_types, window, error);
+ }
+
+
+diff -aur thunar-archive-plugin-0.2.4/thunar-archive-plugin/tap-provider.c thunar-archive-plugin-0.2.4.new//thunar-archive-plugin/tap-provider.c
+--- thunar-archive-plugin-0.2.4/thunar-archive-plugin/tap-provider.c 2007-01-20 11:41:50.000000000 +0100
++++ thunar-archive-plugin-0.2.4.new//thunar-archive-plugin/tap-provider.c 2010-11-28 17:31:36.000000000 +0100
+@@ -26,7 +26,7 @@
+ #include <unistd.h>
+ #endif
+
+-#include <thunar-vfs/thunar-vfs.h>
++#include <libxfce4util/libxfce4util.h>
+
+ #include <thunar-archive-plugin/tap-backend.h>
+ #include <thunar-archive-plugin/tap-provider.h>
+@@ -419,8 +419,7 @@
+ GtkWidget *window,
+ GList *files)
+ {
+- ThunarVfsPathScheme scheme;
+- ThunarVfsInfo *info;
++ gchar *scheme;
+ TapProvider *tap_provider = TAP_PROVIDER (menu_provider);
+ GtkAction *action;
+ GClosure *closure;
+@@ -434,13 +433,15 @@
+ for (lp = files; lp != NULL; lp = lp->next, ++n_files)
+ {
+ /* check if the file is a local file */
+- info = thunarx_file_info_get_vfs_info (lp->data);
+- scheme = thunar_vfs_path_get_scheme (info->path);
+- thunar_vfs_info_unref (info);
++ scheme = thunarx_file_info_get_uri_scheme (lp->data);
+
+ /* unable to handle non-local files */
+- if (G_UNLIKELY (scheme != THUNAR_VFS_PATH_SCHEME_FILE))
+- return NULL;
++ if (G_UNLIKELY (strcmp (scheme, "file")))
++ {
++ g_free (scheme);
++ return NULL;
++ }
++ g_free (scheme);
+
+ /* check if this file is a supported archive */
+ if (all_archives && !tap_is_archive (lp->data))
+@@ -547,8 +548,7 @@
+ ThunarxFileInfo *folder,
+ GList *files)
+ {
+- ThunarVfsPathScheme scheme;
+- ThunarVfsInfo *info;
++ gchar *scheme;
+ TapProvider *tap_provider = TAP_PROVIDER (menu_provider);
+ GtkAction *action;
+ GClosure *closure;
+@@ -556,25 +556,29 @@
+ gint n_files = 0;
+
+ /* check if the folder is a local folder */
+- info = thunarx_file_info_get_vfs_info (folder);
+- scheme = thunar_vfs_path_get_scheme (info->path);
+- thunar_vfs_info_unref (info);
++ scheme = thunarx_file_info_get_uri_scheme (folder);
+
+ /* unable to extract to non-local folders */
+- if (G_UNLIKELY (scheme != THUNAR_VFS_PATH_SCHEME_FILE))
+- return NULL;
++ if (G_UNLIKELY (strcmp (scheme, "file")))
++ {
++ g_free (scheme);
++ return NULL;
++ }
++ g_free (scheme);
+
+ /* check all supplied files */
+ for (lp = files; lp != NULL; lp = lp->next, ++n_files)
+ {
+ /* check if the file is a local file */
+- info = thunarx_file_info_get_vfs_info (lp->data);
+- scheme = thunar_vfs_path_get_scheme (info->path);
+- thunar_vfs_info_unref (info);
++ scheme = thunarx_file_info_get_uri_scheme (lp->data);
+
+ /* unable to handle non-local files */
+- if (G_UNLIKELY (scheme != THUNAR_VFS_PATH_SCHEME_FILE))
+- return NULL;
++ if (G_UNLIKELY (strcmp (scheme, "file")))
++ {
++ g_free (scheme);
++ return NULL;
++ }
++ g_free (scheme);
+
+ /* check if this file is a supported archive */
+ if (G_LIKELY (!tap_is_archive (lp->data)))
+@@ -676,26 +680,26 @@
+ gint status,
+ gpointer user_data)
+ {
+- ThunarVfsMonitor *monitor;
+- ThunarVfsPath *path;
+- TapProvider *tap_provider = TAP_PROVIDER (user_data);
++ //TODO: ThunarVfsMonitor *monitor;
++ //TODO: ThunarVfsPath *path;
++ //TODO: TapProvider *tap_provider = TAP_PROVIDER (user_data);
+
+ GDK_THREADS_ENTER ();
+
+ /* verify that we still have a valid child_watch_path */
+- if (G_LIKELY (tap_provider->child_watch_path != NULL))
++ //TODO: if (G_LIKELY (tap_provider->child_watch_path != NULL))
+ {
+ /* determine the corresponding ThunarVfsPath */
+- path = thunar_vfs_path_new (tap_provider->child_watch_path, NULL);
+- if (G_LIKELY (path != NULL))
++ //TODO: path = thunar_vfs_path_new (tap_provider->child_watch_path, NULL);
++ //TODO: if (G_LIKELY (path != NULL))
+ {
+ /* schedule a changed notification on the path */
+- monitor = thunar_vfs_monitor_get_default ();
+- thunar_vfs_monitor_feed (monitor, THUNAR_VFS_MONITOR_EVENT_CHANGED, path);
+- g_object_unref (G_OBJECT (monitor));
++ //TODO: monitor = thunar_vfs_monitor_get_default ();
++ //TODO: thunar_vfs_monitor_feed (monitor, THUNAR_VFS_MONITOR_EVENT_CHANGED, path);
++ //TODO: g_object_unref (G_OBJECT (monitor));
+
+ /* release the ThunarVfsPath */
+- thunar_vfs_path_unref (path);
++ //TODO: thunar_vfs_path_unref (path);
+ }
+ }
+
+Only in thunar-archive-plugin-0.2.4.new//thunar-archive-plugin: tap-provider.c.orig
More information about the arch-commits
mailing list