# HG changeset patch # User arg@suckless.org # Date 1193234863 -7200 # Node ID b8408fc315df6464c0fa3cbab4255a8c73920d9e # Parent 5fa681ba70ae6d5cc30371672adc2ef730160c2c some cleanup, removed ntags variable, defined NTAGS macro, simplified tag(), view() and idxoftag(), fixed some NULL comparisions diff -r 5fa681ba70ae -r b8408fc315df dwm.c --- a/dwm.c Tue Oct 23 09:38:47 2007 +0200 +++ b/dwm.c Wed Oct 24 16:07:43 2007 +0200 @@ -232,10 +232,9 @@ /* configuration, allows nested code to access above variables */ #include "config.h" -/* statically define the number of tags. */ -unsigned int ntags = sizeof tags / sizeof tags[0]; -Bool seltags[sizeof tags / sizeof tags[0]] = {[0] = True}; -Bool prevtags[sizeof tags / sizeof tags[0]] = {[0] = True}; +#define NTAGS (sizeof tags / sizeof tags[0]) +Bool seltags[NTAGS] = {[0] = True}; +Bool prevtags[NTAGS] = {[0] = True}; /* function implementations */ void @@ -254,7 +253,7 @@ for(i = 0; i < nrules; i++) if(regs[i].propregex && !regexec(regs[i].propregex, buf, 1, &tmp, 0)) { c->isfloating = rules[i].isfloating; - for(j = 0; regs[i].tagregex && j < ntags; j++) { + for(j = 0; regs[i].tagregex && j < NTAGS; j++) { if(!regexec(regs[i].tagregex, tags[j], 1, &tmp, 0)) { matched = True; c->tags[j] = True; @@ -313,7 +312,7 @@ if(barwin == ev->window) { x = 0; - for(i = 0; i < ntags; i++) { + for(i = 0; i < NTAGS; i++) { x += textw(tags[i]); if(ev->x < x) { if(ev->button == Button1) { @@ -537,7 +536,7 @@ int i, x; dc.x = dc.y = 0; - for(i = 0; i < ntags; i++) { + for(i = 0; i < NTAGS; i++) { dc.w = textw(tags[i]); if(seltags[i]) { drawtext(tags[i], dc.sel); @@ -847,10 +846,8 @@ idxoftag(const char *tag) { unsigned int i; - for(i = 0; i < ntags; i++) - if(tags[i] == tag) - return i; - return 0; + for(i = 0; (i < NTAGS) && (tags[i] != tag); i++); + return (i < NTAGS) ? i : 0; } void @@ -930,7 +927,7 @@ isvisible(Client *c) { unsigned int i; - for(i = 0; i < ntags; i++) + for(i = 0; i < NTAGS; i++) if(c->tags[i] && seltags[i]) return True; return False; @@ -1140,7 +1137,7 @@ default: break; case XA_WM_TRANSIENT_FOR: XGetTransientForHint(dpy, c->win, &trans); - if(!c->isfloating && (c->isfloating = (getclient(trans) != NULL))) + if(!c->isfloating && (c->isfloating = (NULL != getclient(trans)))) arrange(); break; case XA_WM_NORMAL_HINTS: @@ -1542,11 +1539,9 @@ if(!sel) return; - for(i = 0; i < ntags; i++) - sel->tags[i] = arg == NULL; - i = idxoftag(arg); - if(i >= 0 && i < ntags) - sel->tags[i] = True; + for(i = 0; i < NTAGS; i++) + sel->tags[i] = (NULL == arg); + sel->tags[idxoftag(arg)] = True; arrange(); } @@ -1662,9 +1657,9 @@ return; i = idxoftag(arg); sel->tags[i] = !sel->tags[i]; - for(j = 0; j < ntags && !sel->tags[j]; j++); - if(j == ntags) - sel->tags[i] = True; + for(j = 0; j < NTAGS && !sel->tags[j]; j++); + if(j == NTAGS) + sel->tags[i] = True; /* at least one tag must be enabled */ arrange(); } @@ -1674,8 +1669,8 @@ i = idxoftag(arg); seltags[i] = !seltags[i]; - for(j = 0; j < ntags && !seltags[j]; j++); - if(j == ntags) + for(j = 0; j < NTAGS && !seltags[j]; j++); + if(j == NTAGS) seltags[i] = True; /* at least one tag must be viewed */ arrange(); } @@ -1841,11 +1836,9 @@ unsigned int i; memcpy(prevtags, seltags, sizeof seltags); - for(i = 0; i < ntags; i++) + for(i = 0; i < NTAGS; i++) seltags[i] = arg == NULL; - i = idxoftag(arg); - if(i >= 0 && i < ntags) - seltags[i] = True; + seltags[idxoftag(arg)] = True; arrange(); }