aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-04-20 23:16:16 -0400
committerJesse Luehrs <doy@tozt.net>2014-04-20 23:16:45 -0400
commit2c610490fbeb67974c34c84c3d355dab95cf61a6 (patch)
treeb8abd51332d4618b8cc6a4975d94d0f2c72aae2c
parente1a9ad048f6ffcf0f475294c51f491d4d6e07e3e (diff)
downloadrunes-2c610490fbeb67974c34c84c3d355dab95cf61a6.tar.gz
runes-2c610490fbeb67974c34c84c3d355dab95cf61a6.zip
also allow command line arguments
-rw-r--r--src/config.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/config.c b/src/config.c
index a7f9163..1b63923 100644
--- a/src/config.c
+++ b/src/config.c
@@ -7,6 +7,7 @@
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_process_args(RunesTerm *t, int argc, char *argv[]);
static void runes_config_set(RunesTerm *t, char *key, char *value);
static char runes_config_parse_bool(char *val);
static int runes_config_parse_uint(char *val);
@@ -15,13 +16,11 @@ static cairo_pattern_t *runes_config_parse_color(char *val);
void runes_config_init(RunesTerm *t, int argc, char *argv[])
{
- UNUSED(argc);
- UNUSED(argv);
-
memset((void *)t, 0, sizeof(*t));
runes_config_set_defaults(t);
runes_config_process_config_file(t, runes_config_get_config_file());
+ runes_config_process_args(t, argc, argv);
}
static void runes_config_set_defaults(RunesTerm *t)
@@ -144,6 +143,27 @@ static void runes_config_process_config_file(RunesTerm *t, FILE *config_file)
}
}
+static void runes_config_process_args(RunesTerm *t, int argc, char *argv[])
+{
+ int i;
+
+ for (i = 1; i < argc; ++i) {
+ if (!strncmp(argv[i], "--", 2)) {
+ if (i + 1 < argc) {
+ runes_config_set(t, &argv[i][2], argv[i + 1]);
+ i++;
+ }
+ else {
+ fprintf(
+ stderr, "option found with no argument: '%s'\n", argv[i]);
+ }
+ }
+ else {
+ fprintf(stderr, "unknown argument: '%s'\n", argv[i]);
+ }
+ }
+}
+
static void runes_config_set(RunesTerm *t, char *key, char *val)
{
if (!strcmp(key, "font")) {