From: Timothy Arceri Date: Fri, 9 Nov 2012 12:48:38 +0000 (+1100) Subject: Use url encoding for trash fileinfo path as per freedesktop trash specification X-Git-Tag: 2.35.2~49 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=edeffe0c870d0716ab0f5a5b8d435ef585c71448;p=platform%2Fupstream%2Fglib.git Use url encoding for trash fileinfo path as per freedesktop trash specification https://bugzilla.gnome.org/show_bug.cgi?id=687540 --- diff --git a/gio/glocalfile.c b/gio/glocalfile.c index c0b6f9d..674497f 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);