summaryrefslogtreecommitdiff
path: root/config.c
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2021-06-07 21:01:34 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2021-06-07 21:01:34 -0400
commit35bad5b5b40be429cc4643b22e786b221ca0d133 (patch)
treef41c377879da326c75bd7f207e8ddf634c98c73b /config.c
parent6255f054b7b3304042db4880c1b7d3cb20df0e0e (diff)
Fixed a bug with offsets being handled improperly in
`set_config_opt()`.
Diffstat (limited to 'config.c')
-rw-r--r--config.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/config.c b/config.c
index 5435eb9..7111bc4 100644
--- a/config.c
+++ b/config.c
@@ -88,11 +88,12 @@ config_val parse_option_value(const config_opt *opt, char *value) {
}
void set_config_opt(config *conf, config_type type, size_t offset, config_val val) {
+ char *cfg = (char *)conf;
switch (type) {
- case TYPE_INT : *(int *)(conf+offset) = val.i; break;
- case TYPE_STRING: *(char **)(conf+offset) = val.str; break;
- case TYPE_FLOAT : *(float *)(conf+offset) = val.f; break;
- case TYPE_BOOL : *(int *)(conf+offset) = val.b; break;
+ case TYPE_INT : *(int *)(cfg+offset) = val.i; break;
+ case TYPE_STRING: *(char **)(cfg+offset) = val.str; break;
+ case TYPE_FLOAT : *(float *)(cfg+offset) = val.f; break;
+ case TYPE_BOOL : *(int *)(cfg+offset) = val.b; break;
default : break;
}
}