diff options
-rw-r--r-- | src/caja-location-entry.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/caja-location-entry.c b/src/caja-location-entry.c index a1db4fb8..e168ac86 100644 --- a/src/caja-location-entry.c +++ b/src/caja-location-entry.c @@ -81,7 +81,7 @@ try_to_expand_path (gpointer callback_data) { CajaLocationEntry *entry; GtkEditable *editable; - char *suffix, *user_location, *absolute_location; + char *suffix, *user_location, *absolute_location, *uri_scheme; int user_location_length, pos; entry = CAJA_LOCATION_ENTRY (callback_data); @@ -90,7 +90,9 @@ try_to_expand_path (gpointer callback_data) user_location_length = g_utf8_strlen (user_location, -1); entry->details->idle_id = 0; - if (!g_path_is_absolute (user_location) && user_location[0] != '~') + uri_scheme = g_uri_parse_scheme (user_location); + + if (!g_path_is_absolute (user_location) && uri_scheme == NULL && user_location[0] != '~') { { absolute_location = g_build_filename (entry->details->current_directory, user_location, NULL); suffix = g_filename_completer_get_completion_suffix (entry->details->completer, @@ -101,9 +103,11 @@ try_to_expand_path (gpointer callback_data) { suffix = g_filename_completer_get_completion_suffix (entry->details->completer, user_location); - g_free (user_location); } + g_free (user_location); + g_free (uri_scheme); + /* if we've got something, add it to the entry */ if (suffix != NULL) { |