|
|
dc95ab4 |
diff -Nur exo-0.10.6.orig/exo-open/main.c exo-0.10.6/exo-open/main.c
|
|
|
dc95ab4 |
--- exo-0.10.6.orig/exo-open/main.c 2015-05-25 12:04:45.000000000 -0600
|
|
|
dc95ab4 |
+++ exo-0.10.6/exo-open/main.c 2015-07-31 13:16:51.148691020 -0600
|
|
|
dc95ab4 |
@@ -206,11 +206,17 @@
|
|
|
dc95ab4 |
{
|
|
|
dc95ab4 |
gchar *current_dir;
|
|
|
dc95ab4 |
gchar *uri;
|
|
|
dc95ab4 |
+ gchar *escaped_uri;
|
|
|
dc95ab4 |
gchar *path;
|
|
|
dc95ab4 |
|
|
|
dc95ab4 |
/* is an absolute path, return file uri */
|
|
|
dc95ab4 |
if (g_path_is_absolute (string))
|
|
|
dc95ab4 |
- return g_strconcat ("file://", string, NULL);
|
|
|
dc95ab4 |
+ {
|
|
|
dc95ab4 |
+ uri = g_strconcat ("file://", string, NULL);
|
|
|
dc95ab4 |
+ escaped_uri = g_uri_escape_string (uri, G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, TRUE);
|
|
|
dc95ab4 |
+ g_free(uri);
|
|
|
dc95ab4 |
+ return escaped_uri;
|
|
|
dc95ab4 |
+ }
|
|
|
dc95ab4 |
|
|
|
dc95ab4 |
/* treat it like a relative path */
|
|
|
dc95ab4 |
current_dir = g_get_current_dir ();
|
|
|
dc95ab4 |
@@ -221,8 +227,10 @@
|
|
|
dc95ab4 |
if (g_file_test (path, G_FILE_TEST_EXISTS))
|
|
|
dc95ab4 |
{
|
|
|
dc95ab4 |
uri = g_strconcat ("file://", path, NULL);
|
|
|
dc95ab4 |
+ escaped_uri = g_uri_escape_string (uri, G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, TRUE);
|
|
|
dc95ab4 |
g_free (path);
|
|
|
dc95ab4 |
- return uri;
|
|
|
dc95ab4 |
+ g_free (uri);
|
|
|
dc95ab4 |
+ return escaped_uri;
|
|
|
dc95ab4 |
}
|
|
|
dc95ab4 |
g_free (path);
|
|
|
dc95ab4 |
|
|
|
dc95ab4 |
@@ -307,7 +315,6 @@
|
|
|
dc95ab4 |
{
|
|
|
dc95ab4 |
GFile *file;
|
|
|
dc95ab4 |
gchar *scheme;
|
|
|
dc95ab4 |
- gchar *escaped;
|
|
|
dc95ab4 |
GFileInfo *file_info;
|
|
|
dc95ab4 |
gboolean succeed = FALSE;
|
|
|
dc95ab4 |
gboolean retval = FALSE;
|
|
|
dc95ab4 |
@@ -331,15 +338,13 @@
|
|
|
dc95ab4 |
g_free (scheme);
|
|
|
dc95ab4 |
#endif
|
|
|
dc95ab4 |
|
|
|
dc95ab4 |
- escaped = g_uri_escape_string (uri, G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, TRUE);
|
|
|
dc95ab4 |
- file = g_file_new_for_uri (escaped);
|
|
|
dc95ab4 |
+ file = g_file_new_for_uri (uri);
|
|
|
dc95ab4 |
scheme = g_file_get_uri_scheme (file);
|
|
|
dc95ab4 |
|
|
|
dc95ab4 |
/* try to launch common schemes for know preferred applications */
|
|
|
dc95ab4 |
if (scheme != NULL && exo_open_uri_known_category (uri, scheme, &retval))
|
|
|
dc95ab4 |
{
|
|
|
dc95ab4 |
g_free (scheme);
|
|
|
dc95ab4 |
- g_free (escaped);
|
|
|
dc95ab4 |
return retval;
|
|
|
dc95ab4 |
}
|
|
|
dc95ab4 |
|
|
|
dc95ab4 |
@@ -356,7 +361,7 @@
|
|
|
dc95ab4 |
g_debug ("file is directory, use filemanager");
|
|
|
dc95ab4 |
#endif
|
|
|
dc95ab4 |
/* directories should go fine with a file manager */
|
|
|
dc95ab4 |
- retval = exo_open_launch_category ("FileManager", escaped);
|
|
|
dc95ab4 |
+ retval = exo_open_launch_category ("FileManager", uri);
|
|
|
dc95ab4 |
succeed = TRUE;
|
|
|
dc95ab4 |
}
|
|
|
dc95ab4 |
else
|
|
|
dc95ab4 |
@@ -382,7 +387,7 @@
|
|
|
dc95ab4 |
if (executable == NULL
|
|
|
dc95ab4 |
|| strcmp (executable, "exo-open") != 0)
|
|
|
dc95ab4 |
{
|
|
|
dc95ab4 |
- fake_list.data = (gpointer) escaped;
|
|
|
dc95ab4 |
+ fake_list.data = (gpointer) uri;
|
|
|
dc95ab4 |
fake_list.prev = fake_list.next = NULL;
|
|
|
dc95ab4 |
|
|
|
dc95ab4 |
/* launch it */
|
|
|
dc95ab4 |
@@ -410,7 +415,7 @@
|
|
|
dc95ab4 |
/* found scheme, open in file manager */
|
|
|
dc95ab4 |
if (strcmp (scheme, schemes[i]) == 0)
|
|
|
dc95ab4 |
{
|
|
|
dc95ab4 |
- retval = succeed = exo_open_launch_category ("FileManager", escaped);
|
|
|
dc95ab4 |
+ retval = succeed = exo_open_launch_category ("FileManager", uri);
|
|
|
dc95ab4 |
break;
|
|
|
dc95ab4 |
}
|
|
|
dc95ab4 |
}
|
|
|
dc95ab4 |
@@ -429,13 +434,12 @@
|
|
|
dc95ab4 |
/* try ftp uris if the file manager/gio failed to recognize it */
|
|
|
dc95ab4 |
if (scheme != NULL
|
|
|
dc95ab4 |
&& (strcmp (scheme, "ftp") == 0 || strcmp (scheme, "ftps") == 0))
|
|
|
dc95ab4 |
- retval = exo_open_launch_category ("WebBrowser", escaped);
|
|
|
dc95ab4 |
+ retval = exo_open_launch_category ("WebBrowser", uri);
|
|
|
dc95ab4 |
else
|
|
|
dc95ab4 |
- retval = gtk_show_uri (NULL, escaped, 0, error);
|
|
|
dc95ab4 |
+ retval = gtk_show_uri (NULL, uri, 0, error);
|
|
|
dc95ab4 |
}
|
|
|
dc95ab4 |
|
|
|
dc95ab4 |
g_free (scheme);
|
|
|
dc95ab4 |
- g_free (escaped);
|
|
|
dc95ab4 |
|
|
|
dc95ab4 |
if (!retval && error != NULL)
|
|
|
dc95ab4 |
*error = err;
|