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 <andy...@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