From 508980e3ab930fd1ea16cbb769771126110aa329 Mon Sep 17 00:00:00 2001 From: Luminarys Date: Mon, 10 Aug 2015 14:22:22 -0500 Subject: [PATCH] Abstracted load_config --- sway/commands.c | 3 +++ sway/config.c | 19 +++++++++++++++++++ sway/config.h | 1 + sway/main.c | 22 +++------------------- 4 files changed, 26 insertions(+), 19 deletions(-) diff --git a/sway/commands.c b/sway/commands.c index af24cc95..98786885 100644 --- a/sway/commands.c +++ b/sway/commands.c @@ -195,6 +195,9 @@ int cmd_reload(struct sway_config *config, int argc, char **argv) { free(temp); config = read_config(f, true); fclose(f); + if (load_config()) { + + } return 0; } diff --git a/sway/config.c b/sway/config.c index 280900ca..3c7badec 100644 --- a/sway/config.c +++ b/sway/config.c @@ -8,6 +8,25 @@ #include "commands.h" #include "config.h" +bool load_config() { + // TODO: Allow use of more config file locations + const char *name = "/.sway/config"; + const char *home = getenv("HOME"); + char *temp = malloc(strlen(home) + strlen(name) + 1); + strcpy(temp, home); + strcat(temp, name); + FILE *f = fopen(temp, "r"); + if (!f) { + fprintf(stderr, "Unable to open %s for reading", temp); + free(temp); + return false; + } + free(temp); + config = read_config(f, false); + fclose(f); + return true; +} + void config_defaults(struct sway_config *config) { config->symbols = create_list(); config->modes = create_list(); diff --git a/sway/config.h b/sway/config.h index 733aaaae..62b65723 100644 --- a/sway/config.h +++ b/sway/config.h @@ -33,6 +33,7 @@ struct sway_config { bool reloading; }; +bool load_config(); struct sway_config *read_config(FILE *file, bool is_active); char *do_var_replacement(struct sway_config *config, char *str); diff --git a/sway/main.c b/sway/main.c index 298e530d..900e6e5d 100644 --- a/sway/main.c +++ b/sway/main.c @@ -9,24 +9,6 @@ struct sway_config *config; -void load_config() { - // TODO: Allow use of more config file locations - const char *name = "/.sway/config"; - const char *home = getenv("HOME"); - char *temp = malloc(strlen(home) + strlen(name) + 1); - strcpy(temp, home); - strcat(temp, name); - FILE *f = fopen(temp, "r"); - if (!f) { - fprintf(stderr, "Unable to open %s for reading", temp); - free(temp); - exit(1); - } - free(temp); - config = read_config(f, false); - fclose(f); -} - int main(int argc, char **argv) { init_log(L_DEBUG); // TODO: Control this with command line arg init_layout(); @@ -61,7 +43,9 @@ int main(int argc, char **argv) { } setenv("DISPLAY", ":1", 1); - load_config(); + if (load_config()) { + exit(1); + } wlc_run(); return 0;