tag.c
changeset 609 dcbbfabc8ecc
parent 594 f7dcd3ac8d6f
child 611 c7f84f23ec5a
equal deleted inserted replaced
608:ecfc43176b2d 609:dcbbfabc8ecc
    53 	len = sizeof rule / sizeof rule[0];
    53 	len = sizeof rule / sizeof rule[0];
    54 	rreg = emallocz(len * sizeof(RReg));
    54 	rreg = emallocz(len * sizeof(RReg));
    55 	for(i = 0; i < len; i++) {
    55 	for(i = 0; i < len; i++) {
    56 		if(rule[i].clpattern) {
    56 		if(rule[i].clpattern) {
    57 			reg = emallocz(sizeof(regex_t));
    57 			reg = emallocz(sizeof(regex_t));
    58 			if(regcomp(reg, rule[i].clpattern, 0))
    58 			if(regcomp(reg, rule[i].clpattern, REG_EXTENDED))
    59 				free(reg);
    59 				free(reg);
    60 			else
    60 			else
    61 				rreg[i].clregex = reg;
    61 				rreg[i].clregex = reg;
    62 		}
    62 		}
    63 		if(rule[i].tpattern) {
    63 		if(rule[i].tpattern) {
    64 			reg = emallocz(sizeof(regex_t));
    64 			reg = emallocz(sizeof(regex_t));
    65 			if(regcomp(reg, rule[i].tpattern, 0))
    65 			if(regcomp(reg, rule[i].tpattern, REG_EXTENDED))
    66 				free(reg);
    66 				free(reg);
    67 			else
    67 			else
    68 				rreg[i].tregex = reg;
    68 				rreg[i].tregex = reg;
    69 		}
    69 		}
    70 	}
    70 	}
    84 	}
    84 	}
    85 	else if(XGetClassHint(dpy, c->win, &ch)) {
    85 	else if(XGetClassHint(dpy, c->win, &ch)) {
    86 		snprintf(prop, sizeof prop, "%s:%s:%s",
    86 		snprintf(prop, sizeof prop, "%s:%s:%s",
    87 				ch.res_class ? ch.res_class : "",
    87 				ch.res_class ? ch.res_class : "",
    88 				ch.res_name ? ch.res_name : "", c->name);
    88 				ch.res_name ? ch.res_name : "", c->name);
    89 		for(i = 0; !matched && i < len; i++)
    89 		for(i = 0; i < len; i++)
    90 			if(rreg[i].clregex && !regexec(rreg[i].clregex, prop, 1, &tmp, 0)) {
    90 			if(rreg[i].clregex && !regexec(rreg[i].clregex, prop, 1, &tmp, 0)) {
    91 				c->isfloat = rule[i].isfloat;
    91 				c->isfloat = rule[i].isfloat;
    92 				for(j = 0; rreg[i].tregex && j < ntags; j++) {
    92 				for(j = 0; rreg[i].tregex && j < ntags; j++) {
    93 					if(!regexec(rreg[i].tregex, tags[j], 1, &tmp, 0)) {
    93 					if(!regexec(rreg[i].tregex, tags[j], 1, &tmp, 0)) {
    94 						matched = True;
    94 						matched = True;