comparison tag.c @ 336:2a65e8b3d21a

implemented class:inst:title matching
author Anselm R. Garbe <arg@10kloc.org>
date Wed, 23 Aug 2006 12:08:37 +0200
parents 96d09fd98e89
children ae0affabdc02
comparison
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;