tag.c
changeset 336 2a65e8b3d21a
parent 327 96d09fd98e89
child 340 ae0affabdc02
equal deleted inserted replaced
335:aca8281c7415 336:2a65e8b3d21a
    76 }
    76 }
    77 
    77 
    78 void
    78 void
    79 settags(Client *c)
    79 settags(Client *c)
    80 {
    80 {
    81 	char classinst[256];
    81 	char prop[512];
    82 	unsigned int i, j;
    82 	unsigned int i, j;
    83 	regmatch_t tmp;
    83 	regmatch_t tmp;
    84 	Bool matched = False;
    84 	Bool matched = False;
    85 	XClassHint ch;
    85 	XClassHint ch;
    86 
    86 
    87 	if(XGetClassHint(dpy, c->win, &ch)) {
    87 	if(XGetClassHint(dpy, c->win, &ch)) {
    88 		snprintf(classinst, sizeof(classinst), "%s:%s",
    88 		snprintf(prop, sizeof(prop), "%s:%s:%s",
    89 				ch.res_class ? ch.res_class : "",
    89 				ch.res_class ? ch.res_class : "",
    90 				ch.res_name ? ch.res_name : "");
    90 				ch.res_name ? ch.res_name : "", c->name);
    91 		for(i = 0; !matched && i < len; i++)
    91 		for(i = 0; !matched && i < len; i++)
    92 			if(rreg[i].clregex && !regexec(rreg[i].clregex, classinst, 1, &tmp, 0)) {
    92 			if(rreg[i].clregex && !regexec(rreg[i].clregex, prop, 1, &tmp, 0)) {
    93 				c->isfloat = rule[i].isfloat;
    93 				c->isfloat = rule[i].isfloat;
    94 				for(j = 0; rreg[i].tregex && j < ntags; j++) {
    94 				for(j = 0; rreg[i].tregex && j < ntags; j++) {
    95 					if(!regexec(rreg[i].tregex, tags[j], 1, &tmp, 0)) {
    95 					if(!regexec(rreg[i].tregex, tags[j], 1, &tmp, 0)) {
    96 						matched = True;
    96 						matched = True;
    97 						c->tags[j] = True;
    97 						c->tags[j] = True;