changed Client->tags and Rule->tags to be Bool (I'll also try to remove the TLast enum)
authorarg@10ksloc.org
Thu, 03 Aug 2006 10:55:07 +0200
changeset 173 1db04019684e
parent 172 af781faa40d6
child 174 48c820470858
changed Client->tags and Rule->tags to be Bool (I'll also try to remove the TLast enum)
client.c
config.arg.h
config.default.h
draw.c
dwm.h
tag.c
--- a/client.c	Wed Aug 02 17:49:21 2006 +0200
+++ b/client.c	Thu Aug 03 10:55:07 2006 +0200
@@ -18,7 +18,7 @@
 	c->tw = 0;
 	for(i = 0; i < TLast; i++)
 		if(c->tags[i])
-			c->tw += textw(c->tags[i]);
+			c->tw += textw(tags[i]);
 	c->tw += textw(c->name);
 	if(c->tw > c->w)
 		c->tw = c->w + 2;
--- a/config.arg.h	Wed Aug 02 17:49:21 2006 +0200
+++ b/config.arg.h	Thu Aug 03 10:55:07 2006 +0200
@@ -5,7 +5,7 @@
 
 enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 #define TAGS \
-char *tags[TLast] = { \
+const char *tags[TLast] = { \
 	[Tfnord] = "fnord", \
 	[Tdev] = "dev", \
 	[Tnet] = "net", \
@@ -66,7 +66,7 @@
 #define RULES \
 static Rule rule[] = { \
 	/* class:instance	tags				isfloat */ \
-	{ "Firefox.*",		{ [Tnet] = "net" },		False }, \
+	{ "Firefox.*",		{ [Tnet] = True },		False }, \
 	{ "Gimp.*",		{ 0 },				True}, \
 	{ "MPlayer.*",		{ 0 },				True}, \
 	{ "Acroread.*",		{ 0 },				True}, \
--- a/config.default.h	Wed Aug 02 17:49:21 2006 +0200
+++ b/config.default.h	Thu Aug 03 10:55:07 2006 +0200
@@ -5,7 +5,7 @@
 
 enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
 #define TAGS \
-char *tags[TLast] = { \
+const char *tags[TLast] = { \
 	[Tfnord] = "fnord", \
 	[Tdev] = "dev", \
 	[Tnet] = "net", \
@@ -57,6 +57,6 @@
 #define RULES \
 static Rule rule[] = { \
 	/* class:instance	tags				isfloat */ \
-	{ "Firefox.*",		{ [Tnet] = "net" },		False }, \
+	{ "Firefox.*",		{ [Tnet] = True },		False }, \
 	{ "Gimp.*",		{ 0 },				True}, \
 };
--- a/draw.c	Wed Aug 02 17:49:21 2006 +0200
+++ b/draw.c	Thu Aug 03 10:55:07 2006 +0200
@@ -30,7 +30,7 @@
 }
 
 static unsigned int
-textnw(char *text, unsigned int len)
+textnw(const char *text, unsigned int len)
 {
 	XRectangle r;
 
@@ -156,8 +156,8 @@
 	for(i = 0; i < TLast; i++) {
 		if(c->tags[i]) {
 			dc.x += dc.w;
-			dc.w = textw(c->tags[i]);
-			drawtext(c->tags[i], !istile, True);
+			dc.w = textw(tags[i]);
+			drawtext(tags[i], !istile, True);
 		}
 	}
 	dc.x += dc.w;
@@ -229,7 +229,7 @@
 }
 
 unsigned int
-textw(char *text)
+textw(const char *text)
 {
 	return textnw(text, strlen(text)) + dc.font.height;
 }
--- a/dwm.h	Wed Aug 02 17:49:21 2006 +0200
+++ b/dwm.h	Thu Aug 03 10:55:07 2006 +0200
@@ -51,7 +51,6 @@
 
 struct Client {
 	char name[256];
-	char *tags[TLast];
 	int proto;
 	int x, y, w, h;
 	int tx, ty, tw, th; /* title */
@@ -61,13 +60,15 @@
 	unsigned int border;
 	Bool isfloat;
 	Bool ismax;
+	Bool tags[TLast];
 	Client *next;
 	Client *prev;
 	Window win;
 	Window title;
 };
 
-extern char *tags[TLast], stext[1024];
+extern const char *tags[TLast];
+extern char stext[1024];
 extern int tsel, screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
 extern void (*handler[LASTEvent])(XEvent *);
 extern void (*arrange)(Arg *);
@@ -104,7 +105,7 @@
 extern void drawtitle(Client *c);
 extern unsigned long getcolor(const char *colstr);
 extern void setfont(const char *fontstr);
-extern unsigned int textw(char *text);
+extern unsigned int textw(const char *text);
 
 /* event.c */
 extern void grabkeys();
--- a/tag.c	Wed Aug 02 17:49:21 2006 +0200
+++ b/tag.c	Thu Aug 03 10:55:07 2006 +0200
@@ -13,7 +13,7 @@
 
 typedef struct {
 	const char *pattern;
-	char *tags[TLast];
+	Bool tags[TLast];
 	Bool isfloat;
 } Rule;
 
@@ -30,7 +30,7 @@
 	if(!sel)
 		return;
 
-	sel->tags[arg->i] = tags[arg->i];
+	sel->tags[arg->i] = True;
 	arrange(NULL);
 }
 
@@ -146,7 +146,7 @@
 		return;
 
 	for(i = 0; i < TLast; i++)
-		sel->tags[i] = NULL;
+		sel->tags[i] = False;
 	appendtag(arg);
 }
 
@@ -171,7 +171,7 @@
 					for(j = 0; j < TLast; j++) {
 						if(rule[i].tags[j])
 							matched = True;
-						c->tags[j] = rule[i].tags[j];
+						c->tags[j] = True;
 					}
 					c->isfloat = rule[i].isfloat;
 				}
@@ -184,7 +184,7 @@
 			XFree(ch.res_name);
 	}
 	if(!matched)
-		c->tags[tsel] = tags[tsel];
+		c->tags[tsel] = True;
 }
 
 void