[Xfce4-commits] <thunar-volman:jannis/port-to-udev> Add support for opening autorun.exe files with wine.
Jannis Pohlmann
noreply at xfce.org
Tue Jul 20 12:42:01 CEST 2010
Updating branch refs/heads/jannis/port-to-udev
to 3e6100bea29272c2b188d51afbe5e09b67bc8f46 (commit)
from cb5ebfae235de5943f722c1a85daa37f4fbd3ee0 (commit)
commit 3e6100bea29272c2b188d51afbe5e09b67bc8f46
Author: Jannis Pohlmann <jannis at xfce.org>
Date: Tue Jul 20 12:39:46 2010 +0200
Add support for opening autorun.exe files with wine.
thunar-volman/tvm-block-device.c | 52 ++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/thunar-volman/tvm-block-device.c b/thunar-volman/tvm-block-device.c
index 7c999e9..d9c4d9f 100644
--- a/thunar-volman/tvm-block-device.c
+++ b/thunar-volman/tvm-block-device.c
@@ -134,6 +134,7 @@ tvm_block_device_autorun (TvmContext *context,
gchar *autoplay_command;
gchar *message;
gchar *mount_path;
+ gchar *wine;
guint n;
gint response;
@@ -219,6 +220,57 @@ tvm_block_device_autorun (TvmContext *context,
}
}
}
+
+ /* check if wine is present */
+ wine = g_find_program_in_path ("wine");
+ if (wine != NULL)
+ {
+ /* check if we have an autorun.exe file */
+ if (tvm_file_test (mount, "autorun.exe", G_FILE_TEST_IS_REGULAR))
+ {
+ /* prompt the user to execute this file */
+ message = g_strdup_printf (_("Would you like to allow \"%s\" to run?"),
+ "autorun.exe");
+ response = tvm_prompt (context, "gnome-fs-executable",
+ _("Auto-Run Confirmation"),
+ _("Auto-Run capability detected"), message,
+ _("Ig_nore"), GTK_RESPONSE_CANCEL,
+ _("_Allow Auto-Run"), TVM_RESPONSE_AUTORUN,
+ NULL);
+ g_free (message);
+
+ /* check if we should run autogen.exe */
+ if (response == TVM_RESPONSE_AUTORUN)
+ {
+ /* determine the mount point as a string */
+ mount_point = g_mount_get_root (mount);
+ mount_path = g_file_get_path (mount_point);
+ g_object_unref (mount_point);
+
+ /* prepare argv to launch the autorun file */
+ argv = g_new0 (gchar *, 3);
+ argv[0] = g_strdup (wine);
+ argv[1] = g_strdup ("autorun.exe");
+ argv[2] = NULL;
+
+ /* try to launch the autorun file */
+ result = g_spawn_async (mount_path, argv, NULL, 0, NULL, NULL, NULL,
+ error);
+
+ /* free strings */
+ g_strfreev (argv);
+ g_free (mount_path);
+
+ /* free path to wine */
+ g_free (wine);
+
+ return result;
+ }
+ }
+
+ /* free path to wine */
+ g_free (wine);
+ }
}
return FALSE;
More information about the Xfce4-commits
mailing list