gboolean project_add_document(const gchar* project, const gchar* fname) { gchar* oldcontent; gchar* newcontent; GError* err; if (!g_file_get_contents(project, &oldcontent, NULL, &err)) { slog(L_ERROR, "%s\n", err->message); return FALSE; } // don't add files that are already in the project: if (utils_subinstr((gchar*)fname, oldcontent, TRUE)) return FALSE; newcontent = g_strconcat(oldcontent, "\nfile=", fname, NULL); if (g_file_test(project, G_FILE_TEST_EXISTS)) { utils_set_file_contents(project, newcontent, -1); return TRUE; } g_free(oldcontent); g_free(newcontent); return FALSE; }
gchar* latex_update_workfile(GuLatex* lc, GuEditor* ec) { gchar *text; text = editor_grab_buffer(ec); // bit of a dirty hack, but only write the buffer content when // there is not a recovery in progress, otherwise the workfile // will be overwritten with empty text if (!STR_EQU(text, "")) { utils_set_file_contents(ec->workfile, text, -1); } return text; }
G_MODULE_EXPORT void on_prefs_close_clicked(GtkWidget* widget, void* user) { GtkTextIter start, end; gchar* text = NULL; if (gtk_text_buffer_get_modified(gui->prefsgui->default_buffer)) { gtk_text_buffer_get_start_iter(gui->prefsgui->default_buffer, &start); gtk_text_buffer_get_end_iter(gui->prefsgui->default_buffer, &end); text = gtk_text_buffer_get_text(gui->prefsgui->default_buffer, &start, &end, FALSE); utils_set_file_contents(C_WELCOMETEXT, text, -1); } g_free(text); gtk_widget_hide(GTK_WIDGET(gui->prefsgui->prefwindow)); }
gboolean project_create_new (const gchar* filename) { const gchar* version = g_strdup ("0.6.0"); const gchar* csetter = config_get_value ("typesetter"); const gchar* csteps = config_get_value ("compile_steps"); const gchar* rootfile = g_active_editor->filename; // TODO: do we need to encode this text? const gchar* content = g_strdup_printf("version=%s\n" "typesetter=%s\n" "steps=%s\n" "root=%s\n", version, csetter, csteps, rootfile); if (!STR_EQU (filename + strlen (filename) -6, ".gummi")) { filename = g_strdup_printf ("%s.gummi", filename); } statusbar_set_message (g_strdup_printf("Creating project file: %s", filename)); utils_set_file_contents (filename, content, -1); gummi->project->projfile = g_strdup (filename); return TRUE; }