summaryrefslogtreecommitdiff
path: root/rsvg-base-file-util.c
diff options
context:
space:
mode:
Diffstat (limited to 'rsvg-base-file-util.c')
-rw-r--r--rsvg-base-file-util.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/rsvg-base-file-util.c b/rsvg-base-file-util.c
index c4be0d59..6b2aca14 100644
--- a/rsvg-base-file-util.c
+++ b/rsvg-base-file-util.c
@@ -88,10 +88,18 @@ rsvg_handle_new_from_file (const gchar * file_name, GError ** error)
gsize data_len;
RsvgHandle *handle = NULL;
GFile *file;
+ char *scheme;
rsvg_return_val_if_fail (file_name != NULL, NULL, error);
- file = g_file_new_for_path (file_name);
+ scheme = g_uri_parse_scheme (file_name);
+ if (scheme) {
+ file = g_file_new_for_uri (file_name);
+ g_free (scheme);
+ } else {
+ file = g_file_new_for_path (file_name);
+ }
+
base_uri = g_file_get_uri (file);
if (!base_uri) {
g_set_error (error,