mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-11 23:16:14 +01:00
glocalfile: fix g_file_get_parse_name() on win32
When getting the parse name for a file: URI on win32, we were not translating "\" to "/", resulting in incorrect output. https://bugzilla.gnome.org/show_bug.cgi?id=669331
This commit is contained in:
parent
b2ddbd8f55
commit
5c91af7e41
@ -414,6 +414,23 @@ g_local_file_get_parse_name (GFile *file)
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef G_OS_WIN32
|
||||
char *dup_filename, *p, *backslash;
|
||||
|
||||
/* Turn backslashes into forward slashes like
|
||||
* g_filename_to_uri() would do (but we can't use that because
|
||||
* it doesn't output IRIs).
|
||||
*/
|
||||
dup_filename = g_strdup (filename);
|
||||
filename = p = dup_filename;
|
||||
|
||||
while ((backslash = strchr (p, '\\')) != NULL)
|
||||
{
|
||||
*backslash = '/';
|
||||
p = backslash + 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
escaped_path = g_uri_escape_string (filename,
|
||||
G_URI_RESERVED_CHARS_ALLOWED_IN_PATH_ELEMENT "/",
|
||||
TRUE);
|
||||
@ -423,7 +440,9 @@ g_local_file_get_parse_name (GFile *file)
|
||||
NULL);
|
||||
|
||||
g_free (escaped_path);
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
g_free (dup_filename);
|
||||
#endif
|
||||
if (free_utf8_filename)
|
||||
g_free (utf8_filename);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user