project_files/frontlib/util/inihelper.h
author Medo <smaxein@googlemail.com>
Sat, 09 Jun 2012 03:28:38 +0200
changeset 7179 f84805e6df03
parent 7177 project_files/frontlib/ini/inihelper.h@bf6cf4dd847a
child 7224 5143861c83bd
permissions -rw-r--r--
Implemented game launching API for the frontlib. It is still buggy though, and not all game settings can be conveniently created/modified yet.

/**
 * Some helper functions for working with the iniparser functions - in particular,
 * for interoperability with the ini format used by the QtSettings class.
 */

#ifndef INIHELPER_H_
#define INIHELPER_H_

#include "../iniparser/iniparser.h"

#include <stdbool.h>

/**
 * Returned buffer must be free()d
 */
char *inihelper_urlencode(const char *inbuf);

/**
 * Returned buffer must be free()d
 */
char *inihelper_urldecode(const char *inbuf);

/**
 * Create a key in the format "sectionName:keyName"
 * Returned buffer must be free()d
 */
char *inihelper_createDictKey(const char *sectionName, const char *keyName);

/**
 * Returns an internal buffer, don't modify or free
 * Sets error to true if something goes wrong, leaves it unchanged otherwise.
 */
char *inihelper_getstring(dictionary *inifile, bool *error, const char *sectionName, const char *keyName);

/**
 * Returned buffer must be free()d
 * Sets error to true if something goes wrong, leaves it unchanged otherwise.
 */
char *inihelper_getstringdup(dictionary *inifile, bool *error, const char *sectionName, const char *keyName);

/**
 * Sets error to true if something goes wrong, leaves it unchanged otherwise.
 */
int inihelper_getint(dictionary *inifile, bool *error, const char *sectionName, const char *keyName);

/**
 * Sets error to true if something goes wrong, leaves it unchanged otherwise.
 */
bool inihelper_getbool(dictionary *inifile, bool *error, const char *sectionName, const char *keyName);

int inihelper_setstr(dictionary *dict, const char *sectionName, const char *keyName, const char *value);
int inihelper_setint(dictionary *dict, const char *sectionName, const char *keyName, int value);
int inihelper_setbool(dictionary *dict, const char *sectionName, const char *keyName, bool value);
#endif /* INIHELPER_H_ */