minor change in settings.

This commit is contained in:
Naim A 2012-12-18 19:28:45 +02:00
parent fdfc36f736
commit 3d88d5ea3e
2 changed files with 36 additions and 13 deletions

View file

@ -24,7 +24,6 @@
#include <string.h>
#include <ctype.h>
static
SettingClass* settings_get_class (Settings *s, char *classname)
{
if (s == NULL || classname == NULL)
@ -264,18 +263,7 @@ char* settings_get (Settings *s, char *class, char *name)
return NULL;
SettingClass *c = settings_get_class (s, class);
if (c == NULL)
return NULL;
KeyValue *kv;
int i;
for (i = 0;i < c->entry_count;i++)
{
kv = &c->entries[i];
if (strcmp(kv->key, name) == 0)
return kv->values;
}
return NULL;
return settingclass_get (c, name);
}
int settings_set (Settings *s, char *class, char *name, char *value)
@ -284,6 +272,7 @@ int settings_set (Settings *s, char *class, char *name, char *value)
return 1;
SettingClass *c = settings_get_class (s, class);
if (c == NULL)
{
if (s->class_count + 1 >= s->class_size)
@ -305,6 +294,28 @@ int settings_set (Settings *s, char *class, char *name, char *value)
}
return settingclass_set (c, name, value);
}
char* settingclass_get (SettingClass *c, char *name)
{
if (c == NULL)
return NULL;
KeyValue *kv;
int i;
for (i = 0;i < c->entry_count;i++)
{
kv = &c->entries[i];
if (strcmp(kv->key, name) == 0)
return kv->values;
}
return NULL;
}
int settingclass_set (SettingClass *c, char *name, char *value)
{
int i;
for (i = 0;i < c->entry_count;i++)
{

View file

@ -69,6 +69,18 @@ int settings_save (Settings *s);
*/
void settings_destroy (Settings *s);
/**
* Gets the requested SettingClass.
* @param s Settings Object.
* @param classname The name of the class to find (case sensitive).
* @return a pointer to the found class, or NULL if not found.
*/
SettingClass* settings_get_class (Settings *s, char *classname);
char* settingclass_get (SettingClass *s, char *name);
int settingclass_set (SettingClass *s, char *name, char *value);
/**
* Gets a setting from a Settings type.
* @param s Pointer to a setting type.