Hey hackers,
I found this problem with LibFm, tested with last sources from git master.
Create a file called "New1".
Create a file called "New 1".
Create a file with special characters, like accentuated ones,
for example : "Accentué"
Trash these files, then from the Trash Can click restore.
On my system I can only restore "New1", I get an error with other files.
(Tested with src/libfm-demo)
I fixed it this way :
GFile *fm_path_to_gfile (FmPath *path)
{
GFile *gf;
char *str = fm_path_to_str (path);
if (fm_path_is_native (path))
{
gf = g_file_new_for_path (str);
}
else
{
// Escape the path so that it supports spaces and special
characters like accentuated ones...
char *tmp_str = g_uri_escape_string (str,
G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, TRUE);
gf = g_file_new_for_uri (tmp_str);
g_free (tmp_str);
}
g_free (str);
return gf;
}
g_uri_escape_string adds escape characters,
"trash:///\home\hotnuma\Bureau\.Trash-1000\files\New%201"
becomes :
"trash:///%5Chome%5Chotnuma%5CBureau%5C.Trash-1000%5Cfiles%5CNew%25201"
That's what you get if you copy the file from Nautilus or Thunar and
paste the string in a text editor.
I found also a problem in fm_str_replace
I fixed it this way :
char *fm_str_replace (char *str, char *old, char *new)
{
int i;
int len = strlen (str);
int old_len = strlen (old);
GString *buf = g_string_sized_new (len);
char *found;
while (found = strstr (str, old))
{
g_string_append_len (buf, str, (found - str));
g_string_append (buf, new);
str = found + old_len;
}
for (; *str; ++str)
g_string_append_c (buf, *str);
return g_string_free (buf, FALSE);
}
"str = found + old_len;" instead of "str = found + 1;"
Cheers!
--
Axel FILMORE
#--------------------------------------------#
https://github.com/afilmore
#--------------------------------------------#
Vala - Compiler For The GObject Type System
https://live.gnome.org/Vala
#--------------------------------------------#
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Lxde-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lxde-list