FILE *fp;
ply_hashtable_t *groups;
+ ply_key_file_group_t *groupless_group;
};
typedef struct
ply_key_file_free_group,
NULL);
+ if (key_file->groupless_group)
+ ply_key_file_free_group (NULL, key_file->groupless_group, NULL);
ply_hashtable_free (key_file->groups);
free (key_file->filename);
ply_key_file_find_group (ply_key_file_t *key_file,
const char *group_name)
{
+ if (!group_name)
+ return key_file->groupless_group;
+
return ply_hashtable_lookup (key_file->groups, (void *) group_name);
}
&func_data);
}
+bool
+ply_key_file_load_groupless_file (ply_key_file_t *key_file)
+{
+ if (!ply_key_file_open_file (key_file))
+ return false;
+
+ key_file->groupless_group =
+ ply_key_file_load_group (key_file, "NONE");
+
+ ply_key_file_close_file (key_file);
+
+ return key_file->groupless_group != NULL;
+}
+
/* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */
ply_key_file_t *ply_key_file_new (const char *filename);
void ply_key_file_free (ply_key_file_t *key_file);
bool ply_key_file_load (ply_key_file_t *key_file);
+/* For loading key=value pair files, which do not have ini style groups.
+ * When a file is loaded this way, NULL must be passed as group_name
+ * for subsequent ply_key_file_get_* calls.
+ */
+bool ply_key_file_load_groupless_file (ply_key_file_t *key_file);
bool ply_key_file_has_key (ply_key_file_t *key_file,
const char *group_name,
const char *key);