[gnome-builder] context: add helper to get path in project
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] context: add helper to get path in project
- Date: Wed, 24 Jan 2018 04:28:57 +0000 (UTC)
commit 85003b37f3afc3e163ae4754bb55d435f86d3c26
Author: Christian Hergert <chergert redhat com>
Date: Tue Jan 23 20:07:43 2018 -0800
context: add helper to get path in project
This is a helper that will let us reduce how much we have to get the
workdir from a vcs.
src/libide/ide-context.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
src/libide/ide-context.h | 4 ++++
2 files changed, 50 insertions(+)
---
diff --git a/src/libide/ide-context.c b/src/libide/ide-context.c
index 58838c458..ba780aaa8 100644
--- a/src/libide/ide-context.c
+++ b/src/libide/ide-context.c
@@ -2737,3 +2737,49 @@ ide_context_get_monitor (IdeContext *self)
return self->monitor;
}
+
+/**
+ * ide_context_build_filename:
+ * @self: a #IdeContext
+ * @first_part: first path part
+ *
+ * Creates a new path that starts from the working directory of the
+ * loaded project.
+ *
+ * Returns: (transfer full): a string containing the new path
+ *
+ * Since: 3.28
+ */
+gchar *
+ide_context_build_filename (IdeContext *self,
+ const gchar *first_part,
+ ...)
+{
+ g_autoptr(GPtrArray) ar = NULL;
+ g_autofree gchar *base = NULL;
+ const gchar *part = first_part;
+ GFile *workdir;
+ va_list args;
+
+ g_return_val_if_fail (IDE_IS_CONTEXT (self), NULL);
+ g_return_val_if_fail (first_part != NULL, NULL);
+
+ workdir = ide_vcs_get_working_directory (self->vcs);
+ base = g_file_get_path (workdir);
+
+ ar = g_ptr_array_new ();
+ g_ptr_array_add (ar, base);
+
+ va_start (args, first_part);
+ do
+ {
+ g_ptr_array_add (ar, (gchar *)part);
+ part = va_arg (args, const gchar *);
+ }
+ while (part != NULL);
+ va_end (args);
+
+ g_ptr_array_add (ar, NULL);
+
+ return g_build_filenamev ((gchar **)ar->pdata);
+}
diff --git a/src/libide/ide-context.h b/src/libide/ide-context.h
index 9386a361c..ad0d318df 100644
--- a/src/libide/ide-context.h
+++ b/src/libide/ide-context.h
@@ -128,6 +128,10 @@ void ide_context_emit_log (IdeContext
const gchar *message,
gssize message_len);
IDE_AVAILABLE_IN_3_28
+gchar *ide_context_build_filename (IdeContext *self,
+ const gchar *first_part,
+ ...) G_GNUC_NULL_TERMINATED;
+IDE_AVAILABLE_IN_3_28
GFile *ide_context_cache_file (IdeContext *self,
const gchar *first_part,
...) G_GNUC_NULL_TERMINATED;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]