/* This extracts the project URI saved in the session so that it could be * loaded sequencially. Returned string must be freed. */ static GFile* extract_project_from_session (const gchar* session_dir) { AnjutaSession *session; GList *node, *files; GFile *project = NULL; session = anjuta_session_new (session_dir); files = anjuta_session_get_string_list (session, "File Loader", "Files"); /* Find project file */ node = files; for (node = files; node != NULL; node = g_list_next (node)) { gchar *uri = node->data; if (uri) { if (anjuta_util_is_project_file (uri)) { if (project != NULL) g_object_unref (project); project = anjuta_session_get_file_from_relative_uri (session, uri, NULL); } g_free (uri); } } g_list_free (files); g_object_unref (session); return project; }
static GList* anjuta_session_get_relative_file_list (AnjutaSession *session, const gchar *section, const gchar *key) { GList *list; GList *item; list = anjuta_session_get_string_list (session, section, key); for (item = g_list_first (list); item != NULL; item = g_list_next (item)) { GFile *file; file = anjuta_session_get_file_from_relative_uri (session, (const gchar *)item->data, NULL); g_free (item->data); item->data = file; } return list; }