20 #include <t3config/config_api.h>
21 #include <t3config/config_errors.h>
52 #define T3_CONFIG_VERSION 0
88 FILE *(*open)(
const char *name,
void *data);
97 #define T3_CONFIG_VERBOSE_ERROR (1<<0)
101 #define T3_CONFIG_INCLUDE_DFLT (1<<1)
105 #define T3_CONFIG_INCLUDE_USER (1<<2)
107 #define T3_CONFIG_ERROR_FILE_NAME (1<<3)
125 #define T3_ERR_OUT_OF_RANGE (-80)
127 #define T3_ERR_PARSE_ERROR (-79)
129 #define T3_ERR_DUPLICATE_KEY (-78)
132 #define T3_ERR_INVALID_CONSTRAINT (-77)
134 #define T3_ERR_INVALID_KEY_TYPE (-76)
136 #define T3_ERR_INVALID_KEY (-75)
138 #define T3_ERR_CONSTRAINT_VIOLATION (-74)
140 #define T3_ERR_RECURSIVE_TYPE (-73)
142 #define T3_ERR_RECURSIVE_INCLUDE (-72)
145 #if INT_MAX < 2147483647
146 typedef long t3_config_int_t;
147 #define T3_CONFIG_INT_MAX LONG_MAX
148 #define T3_CONFIG_INT_MIN LONG_MIN
149 #define T3_CONFIG_INT_PRI "l"
151 typedef int t3_config_int_t;
152 #define T3_CONFIG_INT_MAX INT_MAX
153 #define T3_CONFIG_INT_MIN INT_MIN
154 #define T3_CONFIG_INT_PRI ""
406 #define T3_CONFIG_SPLIT_PATH (1<<0)
412 #define T3_CONFIG_CLEAN_NAME (1<<1)
436 T3_CONFIG_XDG_CONFIG_HOME,
437 T3_CONFIG_XDG_DATA_HOME,
438 T3_CONFIG_XDG_CACHE_HOME,
439 T3_CONFIG_XDG_RUNTIME_DIR
492 const char *file_name);