summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/caja-location-entry.c10
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)
{