diff options
author | Timothy Arceri <t_arceri@yahoo.com.au> | 2012-11-09 23:48:38 +1100 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2012-11-09 08:40:43 -0500 |
commit | edeffe0c870d0716ab0f5a5b8d435ef585c71448 (patch) | |
tree | 244fd1acc9f6308c20aef3497919e6e552796f34 | |
parent | a07a5f82aafca64872691313e233295e591e7632 (diff) | |
download | glib-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.c | 29 |
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); |