about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--client.c2
-rw-r--r--config.arg.h4
-rw-r--r--config.default.h4
-rw-r--r--draw.c8
-rw-r--r--dwm.h7
-rw-r--r--tag.c10
6 files changed, 18 insertions, 17 deletions
diff --git a/client.c b/client.c
index b6bda92..f4ed1a0 100644
--- a/client.c
+++ b/client.c
@@ -18,7 +18,7 @@ resizetitle(Client *c)
 	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;
diff --git a/config.arg.h b/config.arg.h
index 593e4ea..a3d312c 100644
--- a/config.arg.h
+++ b/config.arg.h
@@ -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 @@ static Key key[] = { \
 #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}, \
diff --git a/config.default.h b/config.default.h
index 3b6eb16..ec1804f 100644
--- a/config.default.h
+++ b/config.default.h
@@ -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 @@ static Key key[] = { \
 #define RULES \
 static Rule rule[] = { \
 	/* class:instance	tags				isfloat */ \
-	{ "Firefox.*",		{ [Tnet] = "net" },		False }, \
+	{ "Firefox.*",		{ [Tnet] = True },		False }, \
 	{ "Gimp.*",		{ 0 },				True}, \
 };
diff --git a/draw.c b/draw.c
index 4ba5cd6..506a862 100644
--- a/draw.c
+++ b/draw.c
@@ -30,7 +30,7 @@ drawborder(void)
 }
 
 static unsigned int
-textnw(char *text, unsigned int len)
+textnw(const char *text, unsigned int len)
 {
 	XRectangle r;
 
@@ -156,8 +156,8 @@ drawtitle(Client *c)
 	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 @@ setfont(const char *fontstr)
 }
 
 unsigned int
-textw(char *text)
+textw(const char *text)
 {
 	return textnw(text, strlen(text)) + dc.font.height;
 }
diff --git a/dwm.h b/dwm.h
index 68b307d..c44da29 100644
--- a/dwm.h
+++ b/dwm.h
@@ -51,7 +51,6 @@ struct DC { /* draw context */
 
 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 @@ struct Client {
 	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 drawstatus();
 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();
diff --git a/tag.c b/tag.c
index f4ddfd9..448ed2a 100644
--- a/tag.c
+++ b/tag.c
@@ -13,7 +13,7 @@
 
 typedef struct {
 	const char *pattern;
-	char *tags[TLast];
+	Bool tags[TLast];
 	Bool isfloat;
 } Rule;
 
@@ -30,7 +30,7 @@ appendtag(Arg *arg)
 	if(!sel)
 		return;
 
-	sel->tags[arg->i] = tags[arg->i];
+	sel->tags[arg->i] = True;
 	arrange(NULL);
 }
 
@@ -146,7 +146,7 @@ replacetag(Arg *arg)
 		return;
 
 	for(i = 0; i < TLast; i++)
-		sel->tags[i] = NULL;
+		sel->tags[i] = False;
 	appendtag(arg);
 }
 
@@ -171,7 +171,7 @@ settags(Client *c)
 					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 @@ settags(Client *c)
 			XFree(ch.res_name);
 	}
 	if(!matched)
-		c->tags[tsel] = tags[tsel];
+		c->tags[tsel] = True;
 }
 
 void
v>
1ead3562 ^
dd660682 ^

d52406cc ^
98f7918b ^
57699011 ^
98f7918b ^
051c4738 ^
1ead3562 ^
dd660682 ^
0487a30e ^



1ead3562 ^
dd660682 ^
0487a30e ^


051c4738 ^
1ead3562 ^
dd660682 ^
0487a30e ^


1848b18f ^

98f7918b ^
795f5244 ^
e236973b ^
4e49b29e ^
6c96a437 ^
4e49b29e ^
9dcbec39 ^
4e49b29e ^


bff0fa45 ^
2b250717 ^
bff0fa45 ^


9dcbec39 ^
bff0fa45 ^

4e49b29e ^

98f7918b ^

0487a30e ^
6c96a437 ^
23d3a022 ^
0487a30e ^
827898fc ^
98f7918b ^


88be3dbc ^
1ead3562 ^
dd660682 ^

d52406cc ^
98f7918b ^
57699011 ^
d7e11237 ^
051c4738 ^
1ead3562 ^
dd660682 ^
0487a30e ^



1ead3562 ^
dd660682 ^
0487a30e ^


051c4738 ^
1ead3562 ^
dd660682 ^
0487a30e ^


1848b18f ^

d7e11237 ^
795f5244 ^
e236973b ^
4e49b29e ^
67a180e3 ^
2b250717 ^
4e49b29e ^

6c96a437 ^
23d3a022 ^

4e49b29e ^


6c96a437 ^
bff0fa45 ^

9dcbec39 ^
bff0fa45 ^


4e49b29e ^

d7e11237 ^

e4630643 ^
6c96a437 ^
23d3a022 ^
0487a30e ^
d7e11237 ^


88be3dbc ^
1ead3562 ^
dd660682 ^
d52406cc ^
d7e11237 ^
57699011 ^
0487a30e ^

1ead3562 ^
dd660682 ^
0487a30e ^



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172