summaryrefslogtreecommitdiff
path: root/config.c
diff options
context:
space:
mode:
Diffstat (limited to 'config.c')
-rw-r--r--config.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/config.c b/config.c
index 148ad7d..3a6b54b 100644
--- a/config.c
+++ b/config.c
@@ -73,6 +73,20 @@ char *get_line(char **str) {
return s;
}
+config_val parse_option_value(const config_opt *opt, char *value) {
+ config_val val = {0};
+
+ switch (opt->type) {
+ case TYPE_INT : (long)val.i = strtol(value, NULL, 0); break;
+ case TYPE_STRING: val.str = value; break;
+ case TYPE_FLOAT : val.f = strtof(value, NULL); break;
+ case TYPE_BOOL : (long)val.b = strtol(value, NULL, 0); break;
+ default : break;
+ }
+
+ return val;
+}
+
config *parse_config(const char *filename) {
/* Size of the file, in bytes. */
long filesize = 0;