--- /dev/null
+/*
+ * Copyright (C) 2007-2008 Thadeu Lima de Souza Cascardo
+ * <cascardo@holoscopio.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+
+#include <atompub/atom.h>
+#include <glib.h>
+
+static gchar *
+gkeyfile_atom_config_get_str (AtomCtx *ctx, gchar *group, gchar * key)
+{
+ GKeyFile *keyfile;
+ gchar *value;
+ GError *error = NULL;
+ keyfile = atom_config_data (atom_config (ctx));
+ value = g_key_file_get_string (keyfile, group, key, &error);
+ if (value == NULL)
+ {
+ AtomError *aerr = atom_error_new ();
+ atom_error_code_set (aerr, 500);
+ atom_error_message_set (aerr, error->message);
+ atom_error_set (ctx, aerr);
+ g_error_free (error);
+ }
+ return value;
+}
+
+AtomConfig *
+gkeyfile_atom_config_init (AtomCtx *ctx, char *name)
+{
+ AtomConfig *config;
+ GKeyFile *keyfile;
+ GError *error = NULL;
+ keyfile = g_key_file_new ();
+ if (!g_key_file_load_from_file (keyfile, name,
+ G_KEY_FILE_NONE, &error))
+ {
+ AtomError *aerr = atom_error_new ();
+ atom_error_code_set (aerr, 500);
+ atom_error_message_set (aerr, error->message);
+ atom_error_set (ctx, aerr);
+ g_error_free (error);
+ return;
+ }
+ config = atom_config_new ();
+ atom_config_get_str_set (config, gkeyfile_atom_config_get_str);
+ atom_config_data_set (config, keyfile);
+}