URI: 
       changed Client->tags and Rule->tags to be Bool (I'll also try to remove the TLast enum) - dwm - dynamic window manager
  HTML git clone https://git.parazyd.org/dwm
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 8cc7f3bace087dfb024a23115c211d82b35614ae
   DIR parent 5d3fd3707b262508d1750cf95ac2e2f666be6163
  HTML Author: arg@10ksloc.org <unknown>
       Date:   Thu,  3 Aug 2006 10:55:07 +0200
       
       changed Client->tags and Rule->tags to be Bool (I'll also try to remove the TLast enum)
       
       Diffstat:
         M client.c                            |       2 +-
         M config.arg.h                        |       4 ++--
         M config.default.h                    |       4 ++--
         M draw.c                              |       8 ++++----
         M dwm.h                               |       7 ++++---
         M tag.c                               |      10 +++++-----
       
       6 files changed, 18 insertions(+), 17 deletions(-)
       ---
   DIR diff --git a/client.c b/client.c
       @@ -18,7 +18,7 @@ resizetitle(Client *c)
                c->tw = 0;
                for(i = 0; i < TLast; i++)
                        if(c->tags[i])
       -                        c->tw += textw(c->tags[i]);
       +                        c->tw += textw(tags[i]);
                c->tw += textw(c->name);
                if(c->tw > c->w)
                        c->tw = c->w + 2;
   DIR diff --git a/config.arg.h b/config.arg.h
       @@ -5,7 +5,7 @@
        
        enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
        #define TAGS \
       -char *tags[TLast] = { \
       +const char *tags[TLast] = { \
                [Tfnord] = "fnord", \
                [Tdev] = "dev", \
                [Tnet] = "net", \
       @@ -66,7 +66,7 @@ static Key key[] = { \
        #define RULES \
        static Rule rule[] = { \
                /* class:instance        tags                                isfloat */ \
       -        { "Firefox.*",                { [Tnet] = "net" },                False }, \
       +        { "Firefox.*",                { [Tnet] = True },                False }, \
                { "Gimp.*",                { 0 },                                True}, \
                { "MPlayer.*",                { 0 },                                True}, \
                { "Acroread.*",                { 0 },                                True}, \
   DIR diff --git a/config.default.h b/config.default.h
       @@ -5,7 +5,7 @@
        
        enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };
        #define TAGS \
       -char *tags[TLast] = { \
       +const char *tags[TLast] = { \
                [Tfnord] = "fnord", \
                [Tdev] = "dev", \
                [Tnet] = "net", \
       @@ -57,6 +57,6 @@ static Key key[] = { \
        #define RULES \
        static Rule rule[] = { \
                /* class:instance        tags                                isfloat */ \
       -        { "Firefox.*",                { [Tnet] = "net" },                False }, \
       +        { "Firefox.*",                { [Tnet] = True },                False }, \
                { "Gimp.*",                { 0 },                                True}, \
        };
   DIR diff --git a/draw.c b/draw.c
       @@ -30,7 +30,7 @@ drawborder(void)
        }
        
        static unsigned int
       -textnw(char *text, unsigned int len)
       +textnw(const char *text, unsigned int len)
        {
                XRectangle r;
        
       @@ -156,8 +156,8 @@ drawtitle(Client *c)
                for(i = 0; i < TLast; i++) {
                        if(c->tags[i]) {
                                dc.x += dc.w;
       -                        dc.w = textw(c->tags[i]);
       -                        drawtext(c->tags[i], !istile, True);
       +                        dc.w = textw(tags[i]);
       +                        drawtext(tags[i], !istile, True);
                        }
                }
                dc.x += dc.w;
       @@ -229,7 +229,7 @@ setfont(const char *fontstr)
        }
        
        unsigned int
       -textw(char *text)
       +textw(const char *text)
        {
                return textnw(text, strlen(text)) + dc.font.height;
        }
   DIR diff --git a/dwm.h b/dwm.h
       @@ -51,7 +51,6 @@ struct DC { /* draw context */
        
        struct Client {
                char name[256];
       -        char *tags[TLast];
                int proto;
                int x, y, w, h;
                int tx, ty, tw, th; /* title */
       @@ -61,13 +60,15 @@ struct Client {
                unsigned int border;
                Bool isfloat;
                Bool ismax;
       +        Bool tags[TLast];
                Client *next;
                Client *prev;
                Window win;
                Window title;
        };
        
       -extern char *tags[TLast], stext[1024];
       +extern const char *tags[TLast];
       +extern char stext[1024];
        extern int tsel, screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
        extern void (*handler[LASTEvent])(XEvent *);
        extern void (*arrange)(Arg *);
       @@ -104,7 +105,7 @@ extern void drawstatus();
        extern void drawtitle(Client *c);
        extern unsigned long getcolor(const char *colstr);
        extern void setfont(const char *fontstr);
       -extern unsigned int textw(char *text);
       +extern unsigned int textw(const char *text);
        
        /* event.c */
        extern void grabkeys();
   DIR diff --git a/tag.c b/tag.c
       @@ -13,7 +13,7 @@
        
        typedef struct {
                const char *pattern;
       -        char *tags[TLast];
       +        Bool tags[TLast];
                Bool isfloat;
        } Rule;
        
       @@ -30,7 +30,7 @@ appendtag(Arg *arg)
                if(!sel)
                        return;
        
       -        sel->tags[arg->i] = tags[arg->i];
       +        sel->tags[arg->i] = True;
                arrange(NULL);
        }
        
       @@ -146,7 +146,7 @@ replacetag(Arg *arg)
                        return;
        
                for(i = 0; i < TLast; i++)
       -                sel->tags[i] = NULL;
       +                sel->tags[i] = False;
                appendtag(arg);
        }
        
       @@ -171,7 +171,7 @@ settags(Client *c)
                                                for(j = 0; j < TLast; j++) {
                                                        if(rule[i].tags[j])
                                                                matched = True;
       -                                                c->tags[j] = rule[i].tags[j];
       +                                                c->tags[j] = True;
                                                }
                                                c->isfloat = rule[i].isfloat;
                                        }
       @@ -184,7 +184,7 @@ settags(Client *c)
                                XFree(ch.res_name);
                }
                if(!matched)
       -                c->tags[tsel] = tags[tsel];
       +                c->tags[tsel] = True;
        }
        
        void