summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Arceri <t_arceri@yahoo.com.au>2012-11-09 23:48:38 +1100
committerRyan Lortie <desrt@desrt.ca>2012-11-09 08:40:43 -0500
commitedeffe0c870d0716ab0f5a5b8d435ef585c71448 (patch)
tree244fd1acc9f6308c20aef3497919e6e552796f34
parenta07a5f82aafca64872691313e233295e591e7632 (diff)
downloadglib-edeffe0c870d0716ab0f5a5b8d435ef585c71448.tar.gz
Use url encoding for trash fileinfo path as per freedesktop trash specification
https://bugzilla.gnome.org/show_bug.cgi?id=687540
-rw-r--r--gio/glocalfile.c29
1 files changed, 1 insertions, 28 deletions
diff --git a/gio/glocalfile.c b/gio/glocalfile.c
index c0b6f9d89..674497ff0 100644
--- a/gio/glocalfile.c
+++ b/gio/glocalfile.c
@@ -1734,33 +1734,6 @@ try_make_relative (const char *path,
return g_strdup (path);
}
-static char *
-escape_trash_name (char *name)
-{
- GString *str;
- const gchar hex[16] = "0123456789ABCDEF";
-
- str = g_string_new ("");
-
- while (*name != 0)
- {
- char c;
-
- c = *name++;
-
- if (g_ascii_isprint (c))
- g_string_append_c (str, c);
- else
- {
- g_string_append_c (str, '%');
- g_string_append_c (str, hex[((guchar)c) >> 4]);
- g_string_append_c (str, hex[((guchar)c) & 0xf]);
- }
- }
-
- return g_string_free (str, FALSE);
-}
-
gboolean
_g_local_file_has_trash_dir (const char *dirname, dev_t dir_dev)
{
@@ -2087,7 +2060,7 @@ g_local_file_trash (GFile *file,
original_name = g_strdup (local->filename);
else
original_name = try_make_relative (local->filename, topdir);
- original_name_escaped = escape_trash_name (original_name);
+ original_name_escaped = g_uri_escape_string (original_name, "/", FALSE);
g_free (original_name);
g_free (topdir);