static void reload_project() { gchar *dir; gchar *proj; GeanyDocument *doc; debug("%s\n", __FUNCTION__); doc = document_get_current(); if (doc == NULL || doc->file_name == NULL) return; dir = g_path_get_dirname(doc->file_name); proj = find_file_path(dir, ".geanyprj"); if (!proj) { if (g_current_project) xproject_close(TRUE); return; } if (!g_current_project) { xproject_open(proj); } else if (strcmp(proj, g_current_project->path) != 0) { xproject_close(TRUE); xproject_open(proj); } if (proj) g_free(proj); }
static void on_doc_save(G_GNUC_UNUSED GObject *obj, GeanyDocument *doc, G_GNUC_UNUSED gpointer user_data) { gchar *name; g_return_if_fail(doc != NULL && doc->file_name != NULL); name = g_path_get_basename(doc->file_name); if (g_current_project && strcmp(name, ".geanyprj") == 0) { xproject_close(FALSE); } reload_project(); xproject_update_tag(doc->file_name); }