macros which have been defined in config.h can only be used at function level, however you can nest code into config.h now for implementing a different layout (just for example), eg. #include "supertile.c"
authorAnselm R. Garbe <garbeam@gmail.com>
Sun, 16 Sep 2007 10:23:53 +0200
changeset 994 201550f99b8e
parent 993 eab3406cff0c
child 995 693bda958a30
macros which have been defined in config.h can only be used at function level, however you can nest code into config.h now for implementing a different layout (just for example), eg. #include "supertile.c"
dwm.c
--- a/dwm.c	Sat Sep 15 22:45:18 2007 +0200
+++ b/dwm.c	Sun Sep 16 10:23:53 2007 +0200
@@ -194,20 +194,16 @@
 static int xerrorstart(Display *dsply, XErrorEvent *ee);
 static void zoom(const char *arg);
 
-#include "config.h"
-
 /* variables */
 static char stext[256];
-static double mwfact = MWFACT;
+static double mwfact;
 static int screen, sx, sy, sw, sh, wax, way, waw, wah;
 static int (*xerrorxlib)(Display *, XErrorEvent *);
-static unsigned int bh;
+static unsigned int bh, bpos, ntags;
 static unsigned int blw = 0;
-static unsigned int bpos = BARPOS;
 static unsigned int ltidx = 0; /* default */
 static unsigned int nlayouts = 0;
 static unsigned int nrules = 0;
-static unsigned int ntags;
 static unsigned int numlockmask = 0;
 static void (*handler[LASTEvent]) (XEvent *) = {
 	[ButtonPress] = buttonpress,
@@ -237,6 +233,9 @@
 static Window barwin, root;
 static Regs *regs = NULL;
 
+/* configuration, allows nested code to work on above variables */
+#include "config.h"
+
 static void
 eprint(const char *errstr, ...) {
 	va_list ap;
@@ -1806,6 +1805,11 @@
 		eprint("dwm-"VERSION", © 2006-2007 A. R. Garbe, S. van Dijk, J. Salmi, P. Hruby, S. Nagy\n");
 	else if(argc != 1)
 		eprint("usage: dwm [-v]\n");
+
+	/* macros from config.h can be used beginning within main() */
+	mwfact = MWFACT;
+	bpos = BARPOS;
+
 	setlocale(LC_CTYPE, "");
 	if(!(dpy = XOpenDisplay(0)))
 		eprint("dwm: cannot open display\n");