From 4cb16fd438e1a8c32820ade0312574065ecf9fa9 Mon Sep 17 00:00:00 2001
From: Yevgen Muntyan <17531749+muntyan@users.noreply.github.com>
Date: Sat, 22 Apr 2006 11:32:36 -0500
Subject: [PATCH] Updated to changes in MooConfig
---
moo.kdevelop | 27 +-
.../plugins/activestrings/as-plugin-prefs.c | 325 +++++-------------
moo/mooedit/plugins/activestrings/as-plugin.c | 148 +++++---
moo/mooedit/plugins/activestrings/as-plugin.h | 14 +-
moo/mooedit/plugins/completion/completion.c | 11 +-
5 files changed, 213 insertions(+), 312 deletions(-)
diff --git a/moo.kdevelop b/moo.kdevelop
index c4f53bce..482824a0 100644
--- a/moo.kdevelop
+++ b/moo.kdevelop
@@ -20,11 +20,14 @@
kdevopenwith
kdevregexptest
kdevscripting
+ kdevsecurity
+ kdevastyle
kdevtexttools
+ kdevtools
.
false
-
+
C
@@ -218,15 +221,15 @@
-
+
--g-fatal-warnings
true
false
true
-
-
-
-
+
+
+
+
true
@@ -288,16 +291,16 @@
-
+
A new empty GAP source file
-
+
A new empty C++ file.
-
+
A new empty header file for C/C++.
-
+
A new empty C file.
@@ -324,7 +327,7 @@
-
+
set
m_,_
theValue
@@ -334,7 +337,7 @@
false
3
-
+
diff --git a/moo/mooedit/plugins/activestrings/as-plugin-prefs.c b/moo/mooedit/plugins/activestrings/as-plugin-prefs.c
index a9a5243a..9754c139 100644
--- a/moo/mooedit/plugins/activestrings/as-plugin-prefs.c
+++ b/moo/mooedit/plugins/activestrings/as-plugin-prefs.c
@@ -21,15 +21,6 @@
#include
-enum {
- COLUMN_PATTERN,
- COLUMN_SCRIPT,
- COLUMN_LANG,
- COLUMN_ENABLED,
- N_COLUMNS
-};
-
-
static void prefs_page_apply (MooGladeXML *xml);
static void prefs_page_init (MooGladeXML *xml);
static void prefs_page_destroy (MooGladeXML *xml);
@@ -93,7 +84,6 @@ _as_plugin_prefs_page (MooPlugin *plugin)
GtkTreeSelection *selection;
GtkTreeView *treeview;
GtkTreeViewColumn *column;
- GtkListStore *store;
GtkCellRenderer *cell;
xml = moo_glade_xml_new_empty ();
@@ -111,17 +101,11 @@ _as_plugin_prefs_page (MooPlugin *plugin)
setup_script_view (moo_glade_xml_get_widget (xml, "script"));
- store = gtk_list_store_new (N_COLUMNS,
- G_TYPE_STRING, G_TYPE_STRING,
- G_TYPE_STRING, G_TYPE_BOOLEAN);
treeview = moo_glade_xml_get_widget (xml, "treeview");
selection = gtk_tree_view_get_selection (treeview);
g_signal_connect (selection, "changed",
G_CALLBACK (selection_changed), xml);
- gtk_tree_view_set_model (treeview, GTK_TREE_MODEL (store));
- g_object_unref (store);
-
column = gtk_tree_view_column_new ();
gtk_tree_view_append_column (treeview, column);
@@ -156,18 +140,19 @@ pattern_data_func (G_GNUC_UNUSED GtkTreeViewColumn *column,
GtkTreeIter *iter)
{
gboolean enabled;
- char *pattern;
+ const char *pattern;
+ MooConfigItem *item = NULL;
- gtk_tree_model_get (model, iter,
- COLUMN_ENABLED, &enabled,
- COLUMN_PATTERN, &pattern, -1);
+ gtk_tree_model_get (model, iter, 0, &item, -1);
+ g_return_if_fail (item != NULL);
+
+ pattern = moo_config_item_get_value (item, AS_KEY_PATTERN);
+ enabled = moo_config_item_get_bool (item, AS_KEY_ENABLED, TRUE);
g_object_set (cell, "text", pattern,
"foreground", enabled ? NULL : "grey",
"style", enabled ? PANGO_STYLE_NORMAL : PANGO_STYLE_ITALIC,
NULL);
-
- g_free (pattern);
}
@@ -190,87 +175,6 @@ is_empty_string (const char *string)
}
-static void
-set_changed (GtkTreeModel *model,
- gboolean changed)
-{
- g_object_set_data (G_OBJECT (model), "as-plugin-model-changed",
- GINT_TO_POINTER (changed));
-}
-
-static gboolean
-get_changed (GtkTreeModel *model)
-{
- return g_object_get_data (G_OBJECT (model), "as-plugin-model-changed") ?
- TRUE : FALSE;
-}
-
-
-static MooConfig *
-make_config (GtkTreeModel *model)
-{
- GtkTreeIter iter;
- MooConfig *config = NULL;
-
- if (!gtk_tree_model_get_iter_first (model, &iter))
- return NULL;
-
- config = moo_config_new (AS_KEY_PATTERN);
-
- do
- {
- MooConfigItem *item;
- char *pattern, *lang, *script;
- gboolean enabled;
-
- gtk_tree_model_get (model, &iter,
- COLUMN_PATTERN, &pattern,
- COLUMN_LANG, &lang,
- COLUMN_SCRIPT, &script,
- COLUMN_ENABLED, &enabled,
- -1);
-
- if (is_empty_string (script))
- {
- g_free (script);
- script = NULL;
- }
-
- if (is_empty_string (lang))
- {
- g_free (lang);
- lang = NULL;
- }
-
- if (is_empty_string (pattern))
- {
- g_free (pattern);
- pattern = NULL;
- }
-
- if (pattern)
- {
- item = moo_config_new_item (config, pattern, FALSE);
-
- if (script)
- moo_config_set_item_content (config, item, script, FALSE);
-
- if (lang)
- moo_config_set_value (config, item, AS_KEY_LANG, lang, FALSE);
- if (!enabled)
- moo_config_set_value (config, item, AS_KEY_ENABLED, "no", FALSE);
- }
-
- g_free (pattern);
- g_free (lang);
- g_free (script);
- }
- while (gtk_tree_model_iter_next (model, &iter));
-
- return config;
-}
-
-
static void
prefs_page_apply (MooGladeXML *xml)
{
@@ -278,9 +182,7 @@ prefs_page_apply (MooGladeXML *xml)
GtkTreeModel *model;
GtkTreeSelection *selection;
MooConfig *config;
- char *cfg_string = NULL;
GError *error = NULL;
- const char *file;
selection = gtk_tree_view_get_selection (moo_glade_xml_get_widget (xml, "treeview"));
@@ -291,22 +193,12 @@ prefs_page_apply (MooGladeXML *xml)
gtk_tree_path_free (path);
}
- if (!get_changed (model))
+ config = MOO_CONFIG (model);
+
+ if (!moo_config_get_modified (config))
return;
- config = make_config (model);
-
- if (config)
- cfg_string = moo_config_format (config);
- else
- cfg_string = g_strdup ("");
-
- file = moo_prefs_get_filename (AS_FILE_PREFS_KEY);
-
- if (file)
- moo_save_file_utf8 (file, cfg_string, -1, &error);
- else
- moo_save_user_data_file (AS_FILE, cfg_string, -1, &error);
+ _as_plugin_save_config (config, &error);
if (error)
{
@@ -315,49 +207,25 @@ prefs_page_apply (MooGladeXML *xml)
g_error_free (error);
}
- set_changed (model, FALSE);
_as_plugin_reload (get_plugin (xml));
-
- if (config)
- g_object_unref (config);
-}
-
-
-static void
-insert_item (const char *pattern,
- const char *script,
- const char *lang,
- gboolean enabled,
- GtkListStore *store)
-{
- GtkTreeIter iter;
- gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter,
- COLUMN_PATTERN, pattern,
- COLUMN_LANG, lang,
- COLUMN_SCRIPT, script,
- COLUMN_ENABLED, enabled,
- -1);
}
static void
prefs_page_init (MooGladeXML *xml)
{
- GtkTreeIter iter;
- GtkListStore *store;
- GtkTreeModel *model;
+ MooConfig *config;
- model = gtk_tree_view_get_model (moo_glade_xml_get_widget (xml, "treeview"));
- store = GTK_LIST_STORE (model);
+ config = _as_plugin_load_config ();
- if (gtk_tree_model_get_iter_first (model, &iter))
- while (gtk_list_store_remove (store, &iter))
- ;
+ if (!config)
+ config = moo_config_new ();
- _as_plugin_load (get_plugin (xml), (ASLoadFunc) insert_item, model);
+ gtk_tree_view_set_model (moo_glade_xml_get_widget (xml, "treeview"),
+ GTK_TREE_MODEL (config));
- set_from_model (xml, model, NULL);
+ set_from_model (xml, GTK_TREE_MODEL (config), NULL);
+ g_object_unref (config);
}
@@ -394,6 +262,7 @@ set_from_widgets (MooGladeXML *xml,
const char *pattern, *lang;
char *script;
gboolean enabled;
+ MooConfigItem *item = NULL;
gtk_tree_model_get_iter (model, &iter, path);
@@ -406,44 +275,24 @@ set_from_widgets (MooGladeXML *xml,
gtk_text_buffer_get_bounds (buffer, &start, &end);
script = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
- if (!get_changed (model))
- {
- char *old_pattern, *old_script, *old_lang;
- gboolean old_enabled;
+ gtk_tree_model_get (model, &iter, 0, &item, -1);
+ g_return_if_fail (item != NULL);
- gtk_tree_model_get (model, &iter,
- COLUMN_PATTERN, &old_pattern,
- COLUMN_SCRIPT, &old_script,
- COLUMN_LANG, &old_lang,
- COLUMN_ENABLED, &old_enabled,
- -1);
+ moo_config_set_value (MOO_CONFIG (model), item,
+ AS_KEY_PATTERN, pattern, TRUE);
+ moo_config_set_value (MOO_CONFIG (model), item,
+ AS_KEY_LANG, lang, TRUE);
- if (strings_equal (old_pattern, pattern) &&
- strings_equal (old_script, script) &&
- strings_equal (old_lang, lang) &&
- enabled == old_enabled)
- {
- g_free (old_pattern);
- g_free (old_script);
- g_free (old_lang);
- goto out;
- }
+ if (!enabled)
+ moo_config_set_bool (MOO_CONFIG (model), item,
+ AS_KEY_ENABLED, enabled, TRUE);
+ else
+ moo_config_set_value (MOO_CONFIG (model), item,
+ AS_KEY_ENABLED, NULL, TRUE);
- set_changed (model, TRUE);
+ moo_config_set_item_content (MOO_CONFIG (model), item,
+ script, TRUE);
- g_free (old_pattern);
- g_free (old_script);
- g_free (old_lang);
- }
-
- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
- COLUMN_PATTERN, pattern,
- COLUMN_SCRIPT, script,
- COLUMN_LANG, lang,
- COLUMN_ENABLED, enabled,
- -1);
-
-out:
g_free (script);
}
@@ -471,6 +320,14 @@ set_from_model (MooGladeXML *xml,
GtkEntry *entry_pattern, *entry_lang;
GtkTextView *script_view;
GtkTextBuffer *buffer;
+ MooConfigItem *item = NULL;
+
+ if (path)
+ {
+ gtk_tree_model_get_iter (model, &iter, path);
+ gtk_tree_model_get (model, &iter, 0, &item, -1);
+ g_return_if_fail (item != NULL);
+ }
g_signal_handlers_block_by_func (moo_glade_xml_get_widget (xml, "pattern"),
(gpointer) pattern_changed, xml);
@@ -488,10 +345,7 @@ set_from_model (MooGladeXML *xml,
script_view = moo_glade_xml_get_widget (xml, "script");
buffer = gtk_text_view_get_buffer (script_view);
- if (path)
- gtk_tree_model_get_iter (model, &iter, path);
-
- if (!path)
+ if (!item)
{
gtk_widget_set_sensitive (button_delete, FALSE);
gtk_widget_set_sensitive (button_up, FALSE);
@@ -505,16 +359,14 @@ set_from_model (MooGladeXML *xml,
}
else
{
- char *pattern, *lang, *script;
+ const char *pattern, *lang, *script;
gboolean enabled;
int *indices;
- gtk_tree_model_get (model, &iter,
- COLUMN_PATTERN, &pattern,
- COLUMN_LANG, &lang,
- COLUMN_SCRIPT, &script,
- COLUMN_ENABLED, &enabled,
- -1);
+ pattern = moo_config_item_get_value (item, AS_KEY_PATTERN);
+ lang = moo_config_item_get_value (item, AS_KEY_LANG);
+ script = moo_config_item_get_content (item);
+ enabled = moo_config_item_get_bool (item, AS_KEY_ENABLED, TRUE);
gtk_widget_set_sensitive (button_delete, TRUE);
gtk_widget_set_sensitive (GTK_WIDGET (button_enabled), TRUE);
@@ -597,27 +449,47 @@ selection_changed (GtkTreeSelection *selection,
}
+static int
+iter_get_index (GtkTreeModel *model,
+ GtkTreeIter *iter)
+{
+ int index;
+ GtkTreePath *path;
+
+ path = gtk_tree_model_get_path (model, iter);
+
+ if (!path)
+ return -1;
+
+ index = gtk_tree_path_get_indices(path)[0] + 1;
+
+ gtk_tree_path_free (path);
+ return index;
+}
+
+
static void
button_new (MooGladeXML *xml)
{
GtkTreeModel *model;
- GtkTreeIter iter, after;
+ GtkTreeIter iter;
GtkTreeSelection *selection;
GtkTreeView *treeview;
+ MooConfigItem *item;
+ int index;
treeview = moo_glade_xml_get_widget (xml, "treeview");
- if (!get_selected (xml, &model, &after))
- gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+ if (!get_selected (xml, &model, &iter))
+ index = -1;
else
- gtk_list_store_insert_after (GTK_LIST_STORE (model), &iter, &after);
+ index = iter_get_index (model, &iter);
- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
- COLUMN_PATTERN, "?",
- COLUMN_ENABLED, TRUE, -1);
+ item = moo_config_new_item (MOO_CONFIG (model), index, TRUE);
+ moo_config_set_value (MOO_CONFIG (model), item, AS_KEY_PATTERN, "?", TRUE);
- set_changed (model, TRUE);
selection = gtk_tree_view_get_selection (treeview);
+ moo_config_get_item_iter (MOO_CONFIG (model), item, &iter);
gtk_tree_selection_select_iter (selection, &iter);
}
@@ -629,29 +501,20 @@ button_delete (MooGladeXML *xml)
GtkTreeIter iter;
GtkTreeSelection *selection;
GtkTreeView *treeview;
+ int index;
if (!get_selected (xml, &model, &iter))
g_return_if_reached ();
- if (!gtk_list_store_remove (GTK_LIST_STORE (model), &iter))
- {
- int n_children;
+ index = iter_get_index (model, &iter);
+ moo_config_delete_item (MOO_CONFIG (model), index, TRUE);
- n_children = gtk_tree_model_iter_n_children (model, NULL);
-
- if (n_children)
- gtk_tree_model_iter_nth_child (model, &iter, NULL,
- n_children - 1);
- }
-
- if (gtk_tree_model_iter_n_children (model, NULL))
+ if (gtk_tree_model_iter_nth_child (model, &iter, NULL, index))
{
treeview = moo_glade_xml_get_widget (xml, "treeview");
selection = gtk_tree_view_get_selection (treeview);
gtk_tree_selection_select_iter (selection, &iter);
}
-
- set_changed (model, TRUE);
}
@@ -660,7 +523,6 @@ button_up (MooGladeXML *xml)
{
GtkTreeModel *model;
GtkTreeIter iter;
- GtkTreeIter swap_with;
GtkTreePath *path, *new_path;
int *indices;
@@ -673,13 +535,10 @@ button_up (MooGladeXML *xml)
if (!indices[0])
g_return_if_reached ();
+ moo_config_move_item (MOO_CONFIG (model), indices[0], indices[0] - 1, TRUE);
new_path = gtk_tree_path_new_from_indices (indices[0] - 1, -1);
- gtk_tree_model_get_iter (model, &swap_with, new_path);
- gtk_list_store_swap (GTK_LIST_STORE (model), &iter, &swap_with);
set_from_model (xml, model, new_path);
- set_changed (model, TRUE);
-
gtk_tree_path_free (new_path);
gtk_tree_path_free (path);
}
@@ -690,7 +549,6 @@ button_down (MooGladeXML *xml)
{
GtkTreeModel *model;
GtkTreeIter iter;
- GtkTreeIter swap_with;
GtkTreePath *path, *new_path;
int *indices;
int n_children;
@@ -705,13 +563,10 @@ button_down (MooGladeXML *xml)
if (indices[0] == n_children - 1)
g_return_if_reached ();
+ moo_config_move_item (MOO_CONFIG (model), indices[0], indices[0] + 1, TRUE);
new_path = gtk_tree_path_new_from_indices (indices[0] + 1, -1);
- gtk_tree_model_get_iter (model, &swap_with, new_path);
- gtk_list_store_swap (GTK_LIST_STORE (model), &iter, &swap_with);
set_from_model (xml, model, new_path);
- set_changed (model, TRUE);
-
gtk_tree_path_free (new_path);
gtk_tree_path_free (path);
}
@@ -724,15 +579,18 @@ pattern_changed (MooGladeXML *xml)
GtkTreeModel *model;
GtkTreeIter iter;
const char *pattern;
+ MooConfigItem *item = NULL;
if (!get_selected (xml, &model, &iter))
return;
entry = moo_glade_xml_get_widget (xml, "pattern");
pattern = gtk_entry_get_text (entry);
+ gtk_tree_model_get (model, &iter, 0, &item, -1);
+ g_return_if_fail (item != NULL);
- set_changed (model, TRUE);
- gtk_list_store_set (GTK_LIST_STORE (model), &iter, COLUMN_PATTERN, pattern, -1);
+ moo_config_set_value (MOO_CONFIG (model), item,
+ AS_KEY_PATTERN, pattern, TRUE);
}
@@ -742,14 +600,17 @@ enabled_changed (MooGladeXML *xml)
GtkToggleButton *button;
GtkTreeModel *model;
GtkTreeIter iter;
+ MooConfigItem *item = NULL;
if (!get_selected (xml, &model, &iter))
return;
button = moo_glade_xml_get_widget (xml, "enabled");
- set_changed (model, TRUE);
- gtk_list_store_set (GTK_LIST_STORE (model), &iter,
- COLUMN_ENABLED, gtk_toggle_button_get_active (button), -1);
+ gtk_tree_model_get (model, &iter, 0, &item, -1);
+ g_return_if_fail (item != NULL);
+
+ moo_config_set_bool (MOO_CONFIG (model), item, AS_KEY_ENABLED,
+ gtk_toggle_button_get_active (button), TRUE);
}
diff --git a/moo/mooedit/plugins/activestrings/as-plugin.c b/moo/mooedit/plugins/activestrings/as-plugin.c
index 0db3d05c..e54cb581 100644
--- a/moo/mooedit/plugins/activestrings/as-plugin.c
+++ b/moo/mooedit/plugins/activestrings/as-plugin.c
@@ -25,6 +25,7 @@
#include "mooutils/eggregex.h"
#include "mooutils/mooconfig.h"
#include "mooutils/mooutils-misc.h"
+#include "mooutils/mooutils-fs.h"
#include "as-plugin-script.h"
#include "as-plugin.h"
#include "mooscript/mooscript-parser.h"
@@ -709,36 +710,66 @@ as_plugin_load_info (ASPlugin *plugin,
}
-static void
-append_item (const char *pattern,
- const char *script,
- const char *lang,
- gboolean enabled,
- GSList **list)
+static GSList *
+as_plugin_parse_config (MooConfig *config)
{
- ASInfo *info;
+ guint n_items, i;
+ GSList *list = NULL;
- info = as_info_new (pattern, script, lang, enabled);
+ g_return_val_if_fail (config != NULL, NULL);
- if (info)
- *list = g_slist_prepend (*list, info);
+ n_items = moo_config_n_items (config);
+
+ for (i = 0; i < n_items; ++i)
+ {
+ const char *pattern, *lang, *script;
+ gboolean enabled;
+ ASInfo *info;
+ MooConfigItem *item = moo_config_nth_item (config, i);
+
+ pattern = moo_config_item_get_value (item, AS_KEY_PATTERN);
+ lang = moo_config_item_get_value (item, AS_KEY_LANG);
+ enabled = moo_config_item_get_bool (item, AS_KEY_ENABLED, TRUE);
+ script = moo_config_item_get_content (item);
+
+ if (!pattern)
+ {
+ g_warning ("%s: patern missing", G_STRLOC);
+ continue;
+ }
+
+ if (!script || !script[0])
+ script = NULL;
+
+ info = as_info_new (pattern, script, lang, enabled);
+
+ if (info)
+ list = g_slist_prepend (list, info);
+ }
+
+ return g_slist_reverse (list);
}
+
static void
as_plugin_load (ASPlugin *plugin)
{
GSList *info = NULL;
+ MooConfig *config;
- _as_plugin_load (MOO_PLUGIN (plugin),
- (ASLoadFunc) append_item,
- &info);
- info = g_slist_reverse (info);
+ config = _as_plugin_load_config ();
+
+ if (!config)
+ return;
+
+ info = as_plugin_parse_config (config);
if (info)
as_plugin_load_info (plugin, info);
g_slist_foreach (info, (GFunc) as_info_free, NULL);
g_slist_free (info);
+ g_object_unref (config);
}
@@ -1007,24 +1038,46 @@ as_plugin_do_action (ASPlugin *plugin,
}
-void
-_as_plugin_load (G_GNUC_UNUSED MooPlugin *plugin,
- ASLoadFunc func,
- gpointer data)
+static char *
+as_plugin_get_user_file (gboolean *is_default)
{
- MooConfig *config;
char *file;
- guint n_items, i;
moo_prefs_new_key_string (AS_FILE_PREFS_KEY, NULL);
file = g_strdup (moo_prefs_get_filename (AS_FILE_PREFS_KEY));
if (!file)
+ {
+ if (is_default)
+ *is_default = TRUE;
+ file = moo_get_user_data_file (AS_FILE);
+ }
+ else if (is_default)
+ {
+ *is_default = FALSE;
+ }
+
+ return file;
+}
+
+
+MooConfig *
+_as_plugin_load_config (void)
+{
+ MooConfig *config;
+ char *file;
+ GError *error = NULL;
+
+ file = as_plugin_get_user_file (NULL);
+
+ if (!file || !g_file_test (file, G_FILE_TEST_EXISTS))
{
char **files;
guint n_files;
int i;
+ g_free (file);
+ file = NULL;
files = moo_get_data_files (AS_FILE, MOO_DATA_SHARE, &n_files);
for (i = n_files - 1; !file && i >= 0; --i)
@@ -1033,49 +1086,44 @@ _as_plugin_load (G_GNUC_UNUSED MooPlugin *plugin,
g_strfreev (files);
}
- else if (!g_file_test (file, G_FILE_TEST_EXISTS))
- {
- g_free (file);
- file = NULL;
- }
if (!file)
- return;
+ return NULL;
- config = moo_config_new (AS_KEY_PATTERN);
+ config = moo_config_new_from_file (file, FALSE, &error);
- if (!moo_config_parse_file (config, file, FALSE))
+ if (!config)
{
- g_object_unref (config);
- return;
+ g_critical ("%s: %s", G_STRLOC, error->message);
+ g_error_free (error);
}
- n_items = moo_config_n_items (config);
+ g_free (file);
+ return config;
+}
- for (i = 0; i < n_items; ++i)
- {
- const char *pattern, *lang, *script;
- gboolean enabled;
- MooConfigItem *item = moo_config_nth_item (config, i);
- pattern = moo_config_item_get_id (item);
- lang = moo_config_item_get_value (item, AS_KEY_LANG);
- enabled = moo_config_item_get_bool (item, AS_KEY_ENABLED, TRUE);
- script = moo_config_item_get_content (item);
+gboolean
+_as_plugin_save_config (MooConfig *config,
+ GError **error)
+{
+ char *file, *string;
+ gboolean is_default, result;
- if (!pattern)
- {
- g_warning ("%s: patern missing", G_STRLOC);
- continue;
- }
+ g_return_val_if_fail (MOO_IS_CONFIG (config), FALSE);
- if (!script || !script[0])
- script = NULL;
+ file = as_plugin_get_user_file (&is_default);
+ g_return_val_if_fail (file != NULL, FALSE);
- func (pattern, script, lang, enabled, data);
- }
+ string = moo_config_format (config);
- g_object_unref (config);
+ if (is_default)
+ result = moo_save_user_data_file (AS_FILE, string, -1, error);
+ else
+ result = moo_save_file_utf8 (file, string, -1, error);
+
+ g_free (string);
+ return result;
}
diff --git a/moo/mooedit/plugins/activestrings/as-plugin.h b/moo/mooedit/plugins/activestrings/as-plugin.h
index 94a6a403..eb6c582e 100644
--- a/moo/mooedit/plugins/activestrings/as-plugin.h
+++ b/moo/mooedit/plugins/activestrings/as-plugin.h
@@ -13,6 +13,7 @@
*/
#include "mooedit/mooplugin.h"
+#include "mooutils/mooconfig.h"
#ifndef __AS_PLUGIN_H__
#define __AS_PLUGIN_H__
@@ -31,18 +32,11 @@ G_BEGIN_DECLS
#define AS_FILE_PREFS_KEY AS_PREFS_ROOT "/file"
-typedef void (*ASLoadFunc) (const char *pattern,
- const char *script,
- const char *lang,
- gboolean enabled,
- gpointer data);
-
-
GtkWidget *_as_plugin_prefs_page (MooPlugin *plugin);
void _as_plugin_reload (MooPlugin *plugin);
-void _as_plugin_load (MooPlugin *plugin,
- ASLoadFunc func,
- gpointer data);
+MooConfig *_as_plugin_load_config (void);
+gboolean _as_plugin_save_config (MooConfig *config,
+ GError **error);
G_END_DECLS
diff --git a/moo/mooedit/plugins/completion/completion.c b/moo/mooedit/plugins/completion/completion.c
index 3126c2ee..dba76439 100644
--- a/moo/mooedit/plugins/completion/completion.c
+++ b/moo/mooedit/plugins/completion/completion.c
@@ -191,13 +191,8 @@ cmpl_data_read_config_file (CmplData *data)
g_return_if_fail (data->cmpl == NULL);
g_return_if_fail (data->path != NULL);
- config = moo_config_new ("pattern");
-
- if (!moo_config_parse_file (config, data->path, FALSE))
- {
- g_object_unref (config);
- return;
- }
+ config = moo_config_new_from_file (data->path, FALSE, NULL);
+ g_return_if_fail (config != NULL);
n_items = moo_config_n_items (config);
g_return_if_fail (n_items != 0);
@@ -215,7 +210,7 @@ cmpl_data_read_config_file (CmplData *data)
item = moo_config_nth_item (config, i);
- pattern = moo_config_item_get_id (item);
+ pattern = moo_config_item_get_value (item, "pattern");
prefix = moo_config_item_get_value (item, "prefix");
suffix = moo_config_item_get_value (item, "insert-suffix");
script = moo_config_item_get_value (item, "insert-script");