Use url encoding for trash fileinfo path as per freedesktop trash specification

https://bugzilla.gnome.org/show_bug.cgi?id=687540
This commit is contained in:
Timothy Arceri 2012-11-09 23:48:38 +11:00 committed by Ryan Lortie
parent a07a5f82aa
commit edeffe0c87

View File

@ -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);