48 unsigned int i; |
48 unsigned int i; |
49 regex_t *reg; |
49 regex_t *reg; |
50 |
50 |
51 if(rreg) |
51 if(rreg) |
52 return; |
52 return; |
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, 0)) |
81 if(matched) { |
81 if(matched) { |
82 for(i = 0; i < ntags; i++) |
82 for(i = 0; i < ntags; i++) |
83 c->tags[i] = trans->tags[i]; |
83 c->tags[i] = trans->tags[i]; |
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; !matched && 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; |