[gnome-builder/gnome-builder-42] libide/io: do not use absolete for relative path
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/gnome-builder-42] libide/io: do not use absolete for relative path
- Date: Mon, 4 Apr 2022 19:17:39 +0000 (UTC)
commit a2d82aaeaf6ff463672245711da6bb1a60f84513
Author: Christian Hergert <chergert redhat com>
Date: Mon Apr 4 12:16:18 2022 -0700
libide/io: do not use absolete for relative path
This will break when calling g_file_get_child() and so we need to handle
it specifically before generating a relative path.
Fixes #1648
src/libide/io/ide-gfile.c | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
---
diff --git a/src/libide/io/ide-gfile.c b/src/libide/io/ide-gfile.c
index 63b63ac68..a7cca987d 100644
--- a/src/libide/io/ide-gfile.c
+++ b/src/libide/io/ide-gfile.c
@@ -940,14 +940,19 @@ _ide_g_file_readlink (GFile *file)
if (is_symlink (iter, &target))
{
- g_autoptr(GFile) parent = g_file_get_parent (iter);
- g_autoptr(GFile) base = g_file_get_child (parent, target);
- g_autofree gchar *relative = g_file_get_relative_path (iter, file);
-
- if (relative == NULL)
- return g_steal_pointer (&base);
- else
- return g_file_get_child (base, relative);
+ if (!g_path_is_absolute (target))
+ {
+ g_autoptr(GFile) parent = g_file_get_parent (iter);
+ g_autoptr(GFile) base = g_file_get_child (parent, target);
+ g_autofree gchar *relative = g_file_get_relative_path (iter, file);
+
+ if (relative == NULL)
+ return g_steal_pointer (&base);
+ else
+ return g_file_get_child (base, relative);
+ }
+
+ return g_file_new_for_path (target);
}
}
while (iter_parents (&iter));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]