some cleanup, removed ntags variable, defined NTAGS macro, simplified tag(), view() and idxoftag(), fixed some NULL comparisions
This commit is contained in:
		
							parent
							
								
									7b65b763bc
								
							
						
					
					
						commit
						29f2b15ddc
					
				
							
								
								
									
										47
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								dwm.c
									
									
									
									
									
								
							@ -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();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user