Handle root correctly in g_file_get_relative_path (#508719)
authorAlexander Larsson <alexl@redhat.com>
Mon, 14 Jan 2008 14:55:27 +0000 (14:55 +0000)
committerAlexander Larsson <alexl@src.gnome.org>
Mon, 14 Jan 2008 14:55:27 +0000 (14:55 +0000)
2008-01-14  Alexander Larsson  <alexl@redhat.com>

        * glocalfile.c:
        (match_prefix):
Handle root correctly in g_file_get_relative_path (#508719)

svn path=/trunk/; revision=6305

gio/ChangeLog
gio/glocalfile.c

index ecb52eb2dc9ad235aed6206d6267b7e508d6f95b..5a7ae0aae89ed4929dcc2c81510ee81a1e4190de 100644 (file)
@@ -1,3 +1,9 @@
+2008-01-14  Alexander Larsson  <alexl@redhat.com>
+
+        * glocalfile.c:
+        (match_prefix):
+       Handle root correctly in g_file_get_relative_path (#508719)
+
 2008-01-14  Alexander Larsson  <alexl@redhat.com>
 
         * gasyncresult.c:
index 35ad6ed79f54a691f818d9c731b81e536f8ff32a..1de3e485df8ef5f9bad05cac69791d06a9ea6246 100644 (file)
@@ -475,6 +475,13 @@ match_prefix (const char *path,
   prefix_len = strlen (prefix);
   if (strncmp (path, prefix, prefix_len) != 0)
     return NULL;
+  
+  /* Handle the case where prefix is the root, so that
+   * the IS_DIR_SEPRARATOR check below works */
+  if (prefix_len > 0 &&
+      G_IS_DIR_SEPARATOR (prefix[prefix_len-1]))
+    prefix_len--;
+  
   return path + prefix_len;
 }