diff options
| -rw-r--r-- | dwm.c | 47 | 
1 files changed, 20 insertions, 27 deletions
@@ -232,10 +232,9 @@ Regs *regs = NULL;  /* configuration, allows nested code to access above variables */  #include "config.h" -/* statically define the number of tags. */ -unsigned int ntags = sizeof tags / sizeof tags[0]; -Bool seltags[sizeof tags / sizeof tags[0]] = {[0] = True}; -Bool prevtags[sizeof tags / sizeof tags[0]] = {[0] = True}; +#define NTAGS (sizeof tags / sizeof tags[0]) +Bool seltags[NTAGS] = {[0] = True}; +Bool prevtags[NTAGS] = {[0] = True};  /* function implementations */  void @@ -254,7 +253,7 @@ applyrules(Client *c) {  	for(i = 0; i < nrules; i++)  		if(regs[i].propregex && !regexec(regs[i].propregex, buf, 1, &tmp, 0)) {  			c->isfloating = rules[i].isfloating; -			for(j = 0; regs[i].tagregex && j < ntags; j++) { +			for(j = 0; regs[i].tagregex && j < NTAGS; j++) {  				if(!regexec(regs[i].tagregex, tags[j], 1, &tmp, 0)) {  					matched = True;  					c->tags[j] = True; @@ -313,7 +312,7 @@ buttonpress(XEvent *e) {  	if(barwin == ev->window) {  		x = 0; -		for(i = 0; i < ntags; i++) { +		for(i = 0; i < NTAGS; i++) {  			x += textw(tags[i]);  			if(ev->x < x) {  				if(ev->button == Button1) { @@ -537,7 +536,7 @@ drawbar(void) {  	int i, x;  	dc.x = dc.y = 0; -	for(i = 0; i < ntags; i++) { +	for(i = 0; i < NTAGS; i++) {  		dc.w = textw(tags[i]);  		if(seltags[i]) {  			drawtext(tags[i], dc.sel); @@ -847,10 +846,8 @@ unsigned int  idxoftag(const char *tag) {  	unsigned int i; -	for(i = 0; i < ntags; i++) -		if(tags[i] == tag) -			return i; -	return 0; +	for(i = 0; (i < NTAGS) && (tags[i] != tag); i++); +	return (i < NTAGS) ? i : 0;  }  void @@ -930,7 +927,7 @@ Bool  isvisible(Client *c) {  	unsigned int i; -	for(i = 0; i < ntags; i++) +	for(i = 0; i < NTAGS; i++)  		if(c->tags[i] && seltags[i])  			return True;  	return False; @@ -1140,7 +1137,7 @@ propertynotify(XEvent *e) {  			default: break;  			case XA_WM_TRANSIENT_FOR:  				XGetTransientForHint(dpy, c->win, &trans); -				if(!c->isfloating && (c->isfloating = (getclient(trans) != NULL))) +				if(!c->isfloating && (c->isfloating = (NULL != getclient(trans))))  					arrange();  				break;  			case XA_WM_NORMAL_HINTS: @@ -1542,11 +1539,9 @@ tag(const char *arg) {  	if(!sel)  		return; -	for(i = 0; i < ntags; i++) -		sel->tags[i] = arg == NULL; -	i = idxoftag(arg); -	if(i >= 0 && i < ntags) -		sel->tags[i] = True; +	for(i = 0; i < NTAGS; i++) +		sel->tags[i] = (NULL == arg); +	sel->tags[idxoftag(arg)] = True;  	arrange();  } @@ -1662,9 +1657,9 @@ toggletag(const char *arg) {  		return;  	i = idxoftag(arg);  	sel->tags[i] = !sel->tags[i]; -	for(j = 0; j < ntags && !sel->tags[j]; j++); -	if(j == ntags) -		sel->tags[i] = True; +	for(j = 0; j < NTAGS && !sel->tags[j]; j++); +	if(j == NTAGS) +		sel->tags[i] = True; /* at least one tag must be enabled */  	arrange();  } @@ -1674,8 +1669,8 @@ toggleview(const char *arg) {  	i = idxoftag(arg);  	seltags[i] = !seltags[i]; -	for(j = 0; j < ntags && !seltags[j]; j++); -	if(j == ntags) +	for(j = 0; j < NTAGS && !seltags[j]; j++); +	if(j == NTAGS)  		seltags[i] = True; /* at least one tag must be viewed */  	arrange();  } @@ -1841,11 +1836,9 @@ view(const char *arg) {  	unsigned int i;  	memcpy(prevtags, seltags, sizeof seltags); -	for(i = 0; i < ntags; i++) +	for(i = 0; i < NTAGS; i++)  		seltags[i] = arg == NULL; -	i = idxoftag(arg); -	if(i >= 0 && i < ntags) -		seltags[i] = True; +	seltags[idxoftag(arg)] = True;  	arrange();  }  | 
