[hackers] [dwm] some cleanup, removed ntags variable, defined NTAGS macro, simplified tag(), view() and idxoftag(), fixed some NULL comparisions

From: <arg_AT_suckless.org>
Date: Wed Oct 24 16:09:21 2007

changeset: 1040:b8408fc315df
tag: tip
user: arg_AT_suckless.org
date: Wed Oct 24 16:07:43 2007 +0200
summary: 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 @@ 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 @@ idxoftag(const char *tag) {
 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) {
 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();
 }
 
Received on Wed Oct 24 2007 - 16:09:21 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:58:35 UTC