aboutsummaryrefslogtreecommitdiffstats
path: root/config.c
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-04-20 21:42:10 -0400
committerJesse Luehrs <doy@tozt.net>2014-04-20 21:42:10 -0400
commitfa6264019f315d1e7d6cb330acd136f50261e0ab (patch)
tree67d49dc1314fafb926227414c23d6f2799f27afb /config.c
parent555797e76f787fbc04466a3281d5bafb840fe6a7 (diff)
downloadrunes-fa6264019f315d1e7d6cb330acd136f50261e0ab.tar.gz
runes-fa6264019f315d1e7d6cb330acd136f50261e0ab.zip
allow configuring the interpretation of bold
Diffstat (limited to 'config.c')
-rw-r--r--config.c33
1 files changed, 31 insertions, 2 deletions
diff --git a/config.c b/config.c
index 1664e4b..c266682 100644
--- a/config.c
+++ b/config.c
@@ -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);
+}