+void
+initrregs()
+{
+ unsigned int i;
+ regex_t *reg;
+
+ if(rreg)
+ return;
+ len = sizeof(rule) / sizeof(rule[0]);
+ rreg = emallocz(len * sizeof(RReg));
+
+ for(i = 0; i < len; i++) {
+ if(rule[i].clpattern) {
+ reg = emallocz(sizeof(regex_t));
+ if(regcomp(reg, rule[i].clpattern, 0))
+ free(reg);
+ else
+ rreg[i].clregex = reg;
+ }
+ if(rule[i].tpattern) {
+ reg = emallocz(sizeof(regex_t));
+ if(regcomp(reg, rule[i].tpattern, 0))
+ free(reg);
+ else
+ rreg[i].tregex = reg;
+ }
+ }
+}
+
+Bool
+isvisible(Client *c)
+{
+ unsigned int i;
+
+ for(i = 0; i < ntags; i++)
+ if(c->tags[i] && seltag[i])
+ return True;
+ return False;
+}
+