From 508980e3ab930fd1ea16cbb769771126110aa329 Mon Sep 17 00:00:00 2001
From: Luminarys <kizunanohikari@gmail.com>
Date: Mon, 10 Aug 2015 14:22:22 -0500
Subject: 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(-)

(limited to 'sway')

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;
-- 
cgit v1.2.3