From 29f2b15ddc3a1462780340a10738a98a5e9280eb Mon Sep 17 00:00:00 2001 From: "arg@suckless.org" Date: Wed, 24 Oct 2007 16:07:43 +0200 Subject: [PATCH] some cleanup, removed ntags variable, defined NTAGS macro, simplified tag(), view() and idxoftag(), fixed some NULL comparisions --- dwm.c | 47 ++++++++++++++++++++--------------------------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/dwm.c b/dwm.c index 67fa0a7..b8fc56a 100644 --- a/dwm.c +++ b/dwm.c @@ -232,10 +232,9 @@ Regs *regs = NULL; /* 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 @@ applyrules(Client *c) { 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 @@ buttonpress(XEvent *e) { 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 @@ drawbar(void) { 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 @@ unsigned int 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 @@ Bool 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 @@ propertynotify(XEvent *e) { 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 @@ tag(const char *arg) { 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 @@ toggletag(const char *arg) { 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 @@ toggleview(const char *arg) { 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 @@ view(const char *arg) { 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(); }