|  | @@ -289,31 +289,31 @@ applyrules(Client *c) {
 | 
	
		
			
				|  |  |  	unsigned int i;
 | 
	
		
			
				|  |  |  	const Rule *r;
 | 
	
		
			
				|  |  |  	Monitor *m;
 | 
	
		
			
				|  |  | -	XClassHint ch = { 0 };
 | 
	
		
			
				|  |  | +	XClassHint ch = { NULL, NULL };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	/* rule matching */
 | 
	
		
			
				|  |  |  	c->isfloating = c->tags = 0;
 | 
	
		
			
				|  |  | -	if(XGetClassHint(dpy, c->win, &ch)) {
 | 
	
		
			
				|  |  | -		class = ch.res_class ? ch.res_class : broken;
 | 
	
		
			
				|  |  | -		instance = ch.res_name ? ch.res_name : broken;
 | 
	
		
			
				|  |  | -		for(i = 0; i < LENGTH(rules); i++) {
 | 
	
		
			
				|  |  | -			r = &rules[i];
 | 
	
		
			
				|  |  | -			if((!r->title || strstr(c->name, r->title))
 | 
	
		
			
				|  |  | -			&& (!r->class || strstr(class, r->class))
 | 
	
		
			
				|  |  | -			&& (!r->instance || strstr(instance, r->instance)))
 | 
	
		
			
				|  |  | -			{
 | 
	
		
			
				|  |  | -				c->isfloating = r->isfloating;
 | 
	
		
			
				|  |  | -				c->tags |= r->tags;
 | 
	
		
			
				|  |  | -				for(m = mons; m && m->num != r->monitor; m = m->next);
 | 
	
		
			
				|  |  | -				if(m)
 | 
	
		
			
				|  |  | -					c->mon = m;
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | +	XGetClassHint(dpy, c->win, &ch);
 | 
	
		
			
				|  |  | +	class    = ch.res_class ? ch.res_class : broken;
 | 
	
		
			
				|  |  | +	instance = ch.res_name  ? ch.res_name  : broken;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	for(i = 0; i < LENGTH(rules); i++) {
 | 
	
		
			
				|  |  | +		r = &rules[i];
 | 
	
		
			
				|  |  | +		if((!r->title || strstr(c->name, r->title))
 | 
	
		
			
				|  |  | +		&& (!r->class || strstr(class, r->class))
 | 
	
		
			
				|  |  | +		&& (!r->instance || strstr(instance, r->instance)))
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			c->isfloating = r->isfloating;
 | 
	
		
			
				|  |  | +			c->tags |= r->tags;
 | 
	
		
			
				|  |  | +			for(m = mons; m && m->num != r->monitor; m = m->next);
 | 
	
		
			
				|  |  | +			if(m)
 | 
	
		
			
				|  |  | +				c->mon = m;
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		if(ch.res_class)
 | 
	
		
			
				|  |  | -			XFree(ch.res_class);
 | 
	
		
			
				|  |  | -		if(ch.res_name)
 | 
	
		
			
				|  |  | -			XFree(ch.res_name);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +	if(ch.res_class)
 | 
	
		
			
				|  |  | +		XFree(ch.res_class);
 | 
	
		
			
				|  |  | +	if(ch.res_name)
 | 
	
		
			
				|  |  | +		XFree(ch.res_name);
 | 
	
		
			
				|  |  |  	c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags];
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 |