gimp but for windows: a wayland compositor
git clone https://github.com/m-col/wimp
Files | Refs | Readme

Commit 03e7e6ccdf37a78444abb5a508042a6f615df4e0
Parent: 58e796b69bf3f9205404d2cec9210a942c95f336
Author: mcol <mcol@posteo.net>
Date: 2021-01-23 00:24:02 +0000
Committer: mcol <mcol@posteo.net>
Committed: 2021-01-23 00:24:02 +0000

just always load defaults prior to loading config

src/deskwm.c Modified

@@ -87,9 +87,8 @@
     server.current_desk = wl_container_of(server.desks.next, server.current_desk, link);
 
     // configure
-    load_defaults(&server);
     locate_config(&server);
-    load_config(&server, NULL);
+    load_config(&server);
     set_up_outputs(&server);
     set_up_shell(&server);
     set_up_cursor(&server);

src/config.h Modified

@@ -4,8 +4,7 @@
 #include "types.h"
 
 void assign_colour(char *hex, float dest[4]);
-void load_defaults(struct server *server);
-void load_config(struct server *server, FILE *stream);
+void load_config(struct server *server);
 void locate_config(struct server *server);
 
 #endif

src/config.c Modified

@@ -298,24 +298,7 @@
 }
 
 
-void load_defaults(struct server *server) {
-    char *buffer = NULL;
-    size_t size = 0;
-    FILE *stream = open_memstream(&buffer, &size);
-    fprintf(stream, DEFAULT_CONFIG);
-    rewind(stream);
-    load_config(server, stream);
-    free(buffer);
-}
-
-
-void load_config(struct server *server, FILE *stream) {
-    if (stream == NULL) {
-	if (server->config_file == NULL) {
-	    return;
-	}
-	stream = fopen(server->config_file, "r");
-    }
+void parse_config(struct server *server, FILE *stream) {
     char *s;
     char linebuf[1024];
     int line = 0;
@@ -357,8 +340,28 @@
 		server->vt_switching = false;
 	}
     }
+}
+
+
+void load_config(struct server *server) {
+    FILE *stream;
+
+    // load defaults
+    char *buffer = NULL;
+    size_t size = 0;
+    stream = open_memstream(&buffer, &size);
+    fprintf(stream, DEFAULT_CONFIG);
+    rewind(stream);
+    parse_config(server, stream);
+    free(buffer);
     fclose(stream);
 
+    // load custom configuration file
+    if (server->config_file) {
+	stream = fopen(server->config_file, "r");
+	fclose(stream);
+    }
+
     setup_vt_switching(server);
 }
 

src/action.c Modified

@@ -294,6 +294,5 @@
 
 
 void reload_config(struct server *server, void *data) {
-    load_defaults(server);
-    load_config(server, NULL);
+    load_config(server);
 }