diff options
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 33 |
1 files changed, 31 insertions, 2 deletions
@@ -8,6 +8,8 @@ static void runes_config_set_defaults(RunesTerm *t); static FILE *runes_config_get_config_file(); static void runes_config_process_config_file(RunesTerm *t, FILE *config_file); static void runes_config_set(RunesTerm *t, char *key, char *value); +static char runes_config_parse_bool(char *val); +static char *runes_config_parse_string(char *val); void runes_config_init(RunesTerm *t, int argc, char *argv[]) { @@ -22,7 +24,9 @@ void runes_config_init(RunesTerm *t, int argc, char *argv[]) static void runes_config_set_defaults(RunesTerm *t) { - t->font_name = "monospace 10"; + t->font_name = "monospace 10"; + t->bold_is_bright = 1; + t->bold_is_bold = 1; } static FILE *runes_config_get_config_file() @@ -112,9 +116,34 @@ static void runes_config_process_config_file(RunesTerm *t, FILE *config_file) static void runes_config_set(RunesTerm *t, char *key, char *val) { if (!strcmp(key, "font")) { - t->font_name = strdup(val); + t->font_name = runes_config_parse_string(val); + } + else if (!strcmp(key, "bold_is_bright")) { + t->bold_is_bright = runes_config_parse_bool(val); + } + else if (!strcmp(key, "bold_is_bold")) { + t->bold_is_bold = runes_config_parse_bool(val); } else { fprintf(stderr, "unknown option: '%s'\n", key); } } + +static char runes_config_parse_bool(char *val) +{ + if (!strcmp(val, "true")) { + return 1; + } + else if (!strcmp(val, "false")) { + return 0; + } + else { + fprintf(stderr, "unknown boolean value: '%s'\n", val); + return 0; + } +} + +static char *runes_config_parse_string(char *val) +{ + return strdup(val); +} |