diff options
Diffstat (limited to 'include/ini.h')
-rw-r--r-- | include/ini.h | 52 |
1 files changed, 40 insertions, 12 deletions
diff --git a/include/ini.h b/include/ini.h index 7167cad..5c840f5 100644 --- a/include/ini.h +++ b/include/ini.h @@ -14,24 +14,32 @@ #define INI_SEARCH_SUBSTR 2 ///< expanded to preserve runtime state. -#define INIVAL_TYPE_INT 1 ///< Integer -#define INIVAL_TYPE_UINT 2 ///< Unsigned integer -#define INIVAL_TYPE_LONG 3 ///< Long integer -#define INIVAL_TYPE_ULONG 4 ///< Unsigned long integer -#define INIVAL_TYPE_LLONG 5 ///< Long long integer -#define INIVAL_TYPE_ULLONG 6 ///< Unsigned long long integer -#define INIVAL_TYPE_DOUBLE 7 ///< Double precision float -#define INIVAL_TYPE_FLOAT 8 ///< Single precision float -#define INIVAL_TYPE_STR 9 ///< String -#define INIVAL_TYPE_STR_ARRAY 10 ///< String Array -#define INIVAL_TYPE_BOOL 11 ///< Boolean +#define INIVAL_TYPE_CHAR 1 ///< Byte +#define INIVAL_TYPE_UCHAR 2 ///< Unsigned byte +#define INIVAL_TYPE_SHORT 3 ///< Short integer +#define INIVAL_TYPE_USHORT 4 ///< Unsigned short integer +#define INIVAL_TYPE_INT 5 ///< Integer +#define INIVAL_TYPE_UINT 6 ///< Unsigned integer +#define INIVAL_TYPE_LONG 7 ///< Long integer +#define INIVAL_TYPE_ULONG 8 ///< Unsigned long integer +#define INIVAL_TYPE_LLONG 9 ///< Long long integer +#define INIVAL_TYPE_ULLONG 10 ///< Unsigned long long integer +#define INIVAL_TYPE_DOUBLE 11 ///< Double precision float +#define INIVAL_TYPE_FLOAT 12 ///< Single precision float +#define INIVAL_TYPE_STR 13 ///< String +#define INIVAL_TYPE_STR_ARRAY 14 ///< String Array +#define INIVAL_TYPE_BOOL 15 ///< Boolean #define INIVAL_TO_LIST 1 << 1 /*! \union INIVal - * \brief Consolidation possible value types + * \brief Consolidate possible value types */ union INIVal { + char as_char; ///< Byte + unsigned char as_uchar; ///< Unsigned byte + short as_short; ///< Short integer + unsigned short as_ushort; ///< Unsigned short integer int as_int; ///< Integer unsigned as_uint; ///< Unsigned integer long as_long; ///< Long integer @@ -52,6 +60,7 @@ union INIVal { struct INIData { char *key; ///< INI variable name char *value; ///< INI variable value + unsigned type_hint; }; /*! \struct INISection @@ -225,4 +234,23 @@ int ini_write(struct INIFILE *ini, FILE **stream, unsigned mode); * @param ini */ void ini_free(struct INIFILE **ini); + +int ini_getval_int(struct INIFILE *ini, char *section_name, char *key, int *state); +unsigned int ini_getval_uint(struct INIFILE *ini, char *section_name, char *key, int *state); +long ini_getval_long(struct INIFILE *ini, char *section_name, char *key, int *state); +unsigned long ini_getval_ulong(struct INIFILE *ini, char *section_name, char *key, int *state); +long long ini_getval_llong(struct INIFILE *ini, char *section_name, char *key, int *state); +unsigned long long ini_getval_ullong(struct INIFILE *ini, char *section_name, char *key, int *state); +float ini_getval_float(struct INIFILE *ini, char *section_name, char *key, int *state); +double ini_getval_double(struct INIFILE *ini, char *section_name, char *key, int *state); +bool ini_getval_bool(struct INIFILE *ini, char *section_name, char *key, int *state); +short ini_getval_short(struct INIFILE *ini, char *section_name, char *key, int *state); +unsigned short ini_getval_ushort(struct INIFILE *ini, char *section_name, char *key, int *state); +char ini_getval_char(struct INIFILE *ini, char *section_name, char *key, int *state); +unsigned char ini_getval_uchar(struct INIFILE *ini, char *section_name, char *key, int *state); +char *ini_getval_char_p(struct INIFILE *ini, char *section_name, char *key, int *state); +char *ini_getval_str(struct INIFILE *ini, char *section_name, char *key, int *state); +char **ini_getval_char_array_p(struct INIFILE *ini, char *section_name, char *key, int *state); +char **ini_getval_str_array(struct INIFILE *ini, char *section_name, char *key, int *state); +struct StrList *ini_getval_strlist(struct INIFILE *ini, char *section_name, char *key, char *tok, int *state); #endif //STASIS_INI_H |