20#define G_LOG_DOMAIN "libgvm base"
37 if (filename == NULL || group == NULL)
40 gchar *contents = NULL;
42 if (!g_file_get_contents (filename, &contents, NULL, &error))
50 gchar *contents_with_group = g_strjoin (
"\n",
"[Misc]", contents, NULL);
51 settings->
key_file = g_key_file_new ();
53 if (!g_key_file_load_from_data (
54 settings->
key_file, contents_with_group,
55 strlen (contents_with_group),
56 G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, &error))
58 g_warning (
"Failed to load configuration from %s: %s", filename,
61 g_free (contents_with_group);
65 g_free (contents_with_group);
70 settings->
file_name = g_strdup (filename);
85 g_key_file_free (settings->
key_file);
99 const gchar *filename,
const gchar *group)
103 GError *error = NULL;
110 &keys_length, &error);
112 if (iterator->
keys == NULL)
116 g_warning (
"Failed to retrieve keys of group %s from %s: %s", group,
117 filename, error->message);
118 g_error_free (error);
138 g_strfreev (iterator->
keys);
static int settings_init_from_file(settings_t *settings, const gchar *filename, const gchar *group)
Initialise a settings struct from a file.
Definition settings.c:32
gboolean settings_iterator_next(settings_iterator_t *iterator)
Increment an iterator.
Definition settings.c:150
void settings_cleanup(settings_t *settings)
Cleanup a settings structure.
Definition settings.c:81
void cleanup_settings_iterator(settings_iterator_t *iterator)
Cleanup a settings iterator.
Definition settings.c:136
int init_settings_iterator_from_file(settings_iterator_t *iterator, const gchar *filename, const gchar *group)
Initialise a settings iterator from a file.
Definition settings.c:98
gchar * settings_iterator_value(settings_iterator_t *iterator)
Get the value from a settings iterator.
Definition settings.c:179
const gchar * settings_iterator_name(settings_iterator_t *iterator)
Get the name from a settings iterator.
Definition settings.c:166
Protos and data structures for configuration file management.
Struct holding options to iterate over a GKeyFile.
Definition settings.h:36
gchar ** current_key
Definition settings.h:39
settings_t settings
Definition settings.h:38
gchar ** keys
Definition settings.h:37
gchar ** last_key
Definition settings.h:40
Struct holding options for settings taken from a key-value config file.
Definition settings.h:23
GKeyFile * key_file
Definition settings.h:26
gchar * group_name
Definition settings.h:25
gchar * file_name
Definition settings.h:24