tag.c
changeset 532 651f2c868b31
parent 487 be4f90c03582
child 533 a5567a0d3011
equal deleted inserted replaced
531:96563762b4ad 532:651f2c868b31
     1 /*
     1 /* (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
     2  * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
       
     3  * See LICENSE file for license details.
     2  * See LICENSE file for license details.
     4  */
     3  */
     5 #include "dwm.h"
     4 #include "dwm.h"
     6 #include <regex.h>
     5 #include <regex.h>
     7 #include <stdio.h>
     6 #include <stdio.h>
    51 
    50 
    52 	if(rreg)
    51 	if(rreg)
    53 		return;
    52 		return;
    54 	len = sizeof(rule) / sizeof(rule[0]);
    53 	len = sizeof(rule) / sizeof(rule[0]);
    55 	rreg = emallocz(len * sizeof(RReg));
    54 	rreg = emallocz(len * sizeof(RReg));
    56 
       
    57 	for(i = 0; i < len; i++) {
    55 	for(i = 0; i < len; i++) {
    58 		if(rule[i].clpattern) {
    56 		if(rule[i].clpattern) {
    59 			reg = emallocz(sizeof(regex_t));
    57 			reg = emallocz(sizeof(regex_t));
    60 			if(regcomp(reg, rule[i].clpattern, 0))
    58 			if(regcomp(reg, rule[i].clpattern, 0))
    61 				free(reg);
    59 				free(reg);
   113 tag(Arg *arg) {
   111 tag(Arg *arg) {
   114 	unsigned int i;
   112 	unsigned int i;
   115 
   113 
   116 	if(!sel)
   114 	if(!sel)
   117 		return;
   115 		return;
   118 
       
   119 	for(i = 0; i < ntags; i++)
   116 	for(i = 0; i < ntags; i++)
   120 		sel->tags[i] = False;
   117 		sel->tags[i] = False;
   121 	sel->tags[arg->i] = True;
   118 	sel->tags[arg->i] = True;
   122 	sel->weight = arg->i;
   119 	sel->weight = arg->i;
   123 	arrange(NULL);
   120 	arrange(NULL);
   127 toggletag(Arg *arg) {
   124 toggletag(Arg *arg) {
   128 	unsigned int i;
   125 	unsigned int i;
   129 
   126 
   130 	if(!sel)
   127 	if(!sel)
   131 		return;
   128 		return;
   132 
       
   133 	sel->tags[arg->i] = !sel->tags[arg->i];
   129 	sel->tags[arg->i] = !sel->tags[arg->i];
   134 	for(i = 0; i < ntags && !sel->tags[i]; i++);
   130 	for(i = 0; i < ntags && !sel->tags[i]; i++);
   135 	if(i == ntags)
   131 	if(i == ntags)
   136 		sel->tags[arg->i] = True;
   132 		sel->tags[arg->i] = True;
   137 	sel->weight = (i == ntags) ? arg->i : i;
   133 	sel->weight = (i == ntags) ? arg->i : i;