diff -r cdd1db1c525b config.def.h --- a/config.def.h Fri Oct 19 09:56:51 2007 +0200 +++ b/config.def.h Sat Oct 20 09:59:00 2007 +0200 @@ -53,42 +53,42 @@ Key keys[] = { \ { MODKEY|ShiftMask, XK_space, togglefloating, NULL }, \ { MODKEY|ShiftMask, XK_c, killclient, NULL }, \ { MODKEY, XK_0, view, NULL }, \ - { MODKEY, XK_1, view, tags[0] }, \ - { MODKEY, XK_2, view, tags[1] }, \ - { MODKEY, XK_3, view, tags[2] }, \ - { MODKEY, XK_4, view, tags[3] }, \ - { MODKEY, XK_5, view, tags[4] }, \ - { MODKEY, XK_6, view, tags[5] }, \ - { MODKEY, XK_7, view, tags[6] }, \ - { MODKEY, XK_8, view, tags[7] }, \ - { MODKEY, XK_9, view, tags[8] }, \ - { MODKEY|ControlMask, XK_1, toggleview, tags[0] }, \ - { MODKEY|ControlMask, XK_2, toggleview, tags[1] }, \ - { MODKEY|ControlMask, XK_3, toggleview, tags[2] }, \ - { MODKEY|ControlMask, XK_4, toggleview, tags[3] }, \ - { MODKEY|ControlMask, XK_5, toggleview, tags[4] }, \ - { MODKEY|ControlMask, XK_6, toggleview, tags[5] }, \ - { MODKEY|ControlMask, XK_7, toggleview, tags[6] }, \ - { MODKEY|ControlMask, XK_8, toggleview, tags[7] }, \ - { MODKEY|ControlMask, XK_9, toggleview, tags[8] }, \ + { MODKEY, XK_1, view, index_to_tag(0) }, \ + { MODKEY, XK_2, view, index_to_tag(1) }, \ + { MODKEY, XK_3, view, index_to_tag(2) }, \ + { MODKEY, XK_4, view, index_to_tag(3) }, \ + { MODKEY, XK_5, view, index_to_tag(4) }, \ + { MODKEY, XK_6, view, index_to_tag(5) }, \ + { MODKEY, XK_7, view, index_to_tag(6) }, \ + { MODKEY, XK_8, view, index_to_tag(7) }, \ + { MODKEY, XK_9, view, index_to_tag(8) }, \ + { MODKEY|ControlMask, XK_1, toggleview, index_to_tag(0) }, \ + { MODKEY|ControlMask, XK_2, toggleview, index_to_tag(1) }, \ + { MODKEY|ControlMask, XK_3, toggleview, index_to_tag(2) }, \ + { MODKEY|ControlMask, XK_4, toggleview, index_to_tag(3) }, \ + { MODKEY|ControlMask, XK_5, toggleview, index_to_tag(4) }, \ + { MODKEY|ControlMask, XK_6, toggleview, index_to_tag(5) }, \ + { MODKEY|ControlMask, XK_7, toggleview, index_to_tag(6) }, \ + { MODKEY|ControlMask, XK_8, toggleview, index_to_tag(7) }, \ + { MODKEY|ControlMask, XK_9, toggleview, index_to_tag(8) }, \ { MODKEY|ShiftMask, XK_0, tag, NULL }, \ - { MODKEY|ShiftMask, XK_1, tag, tags[0] }, \ - { MODKEY|ShiftMask, XK_2, tag, tags[1] }, \ - { MODKEY|ShiftMask, XK_3, tag, tags[2] }, \ - { MODKEY|ShiftMask, XK_4, tag, tags[3] }, \ - { MODKEY|ShiftMask, XK_5, tag, tags[4] }, \ - { MODKEY|ShiftMask, XK_6, tag, tags[5] }, \ - { MODKEY|ShiftMask, XK_7, tag, tags[6] }, \ - { MODKEY|ShiftMask, XK_8, tag, tags[7] }, \ - { MODKEY|ShiftMask, XK_9, tag, tags[8] }, \ - { MODKEY|ControlMask|ShiftMask, XK_1, toggletag, tags[0] }, \ - { MODKEY|ControlMask|ShiftMask, XK_2, toggletag, tags[1] }, \ - { MODKEY|ControlMask|ShiftMask, XK_3, toggletag, tags[2] }, \ - { MODKEY|ControlMask|ShiftMask, XK_4, toggletag, tags[3] }, \ - { MODKEY|ControlMask|ShiftMask, XK_5, toggletag, tags[4] }, \ - { MODKEY|ControlMask|ShiftMask, XK_6, toggletag, tags[5] }, \ - { MODKEY|ControlMask|ShiftMask, XK_7, toggletag, tags[6] }, \ - { MODKEY|ControlMask|ShiftMask, XK_8, toggletag, tags[7] }, \ - { MODKEY|ControlMask|ShiftMask, XK_9, toggletag, tags[8] }, \ + { MODKEY|ShiftMask, XK_1, tag, index_to_tag(0) }, \ + { MODKEY|ShiftMask, XK_2, tag, index_to_tag(1) }, \ + { MODKEY|ShiftMask, XK_3, tag, index_to_tag(2) }, \ + { MODKEY|ShiftMask, XK_4, tag, index_to_tag(3) }, \ + { MODKEY|ShiftMask, XK_5, tag, index_to_tag(4) }, \ + { MODKEY|ShiftMask, XK_6, tag, index_to_tag(5) }, \ + { MODKEY|ShiftMask, XK_7, tag, index_to_tag(6) }, \ + { MODKEY|ShiftMask, XK_8, tag, index_to_tag(7) }, \ + { MODKEY|ShiftMask, XK_9, tag, index_to_tag(8) }, \ + { MODKEY|ControlMask|ShiftMask, XK_1, toggletag, index_to_tag(0) }, \ + { MODKEY|ControlMask|ShiftMask, XK_2, toggletag, index_to_tag(1) }, \ + { MODKEY|ControlMask|ShiftMask, XK_3, toggletag, index_to_tag(2) }, \ + { MODKEY|ControlMask|ShiftMask, XK_4, toggletag, index_to_tag(3) }, \ + { MODKEY|ControlMask|ShiftMask, XK_5, toggletag, index_to_tag(4) }, \ + { MODKEY|ControlMask|ShiftMask, XK_6, toggletag, index_to_tag(5) }, \ + { MODKEY|ControlMask|ShiftMask, XK_7, toggletag, index_to_tag(6) }, \ + { MODKEY|ControlMask|ShiftMask, XK_8, toggletag, index_to_tag(7) }, \ + { MODKEY|ControlMask|ShiftMask, XK_9, toggletag, index_to_tag(8) }, \ { MODKEY|ShiftMask, XK_q, quit, NULL }, \ }; diff -r cdd1db1c525b dwm.c --- a/dwm.c Fri Oct 19 09:56:51 2007 +0200 +++ b/dwm.c Sat Oct 20 09:59:00 2007 +0200 @@ -143,7 +143,6 @@ long getstate(Window w); long getstate(Window w); Bool gettextprop(Window w, Atom atom, char *text, unsigned int size); void grabbuttons(Client *c, Bool focused); -unsigned int idxoftag(const char *tag); void initfont(const char *fontstr); Bool isarrange(void (*func)()); Bool isoccupied(unsigned int t); @@ -230,6 +229,8 @@ Regs *regs = NULL; Regs *regs = NULL; /* configuration, allows nested code to access above variables */ +#define index_to_tag(x) ((char const *)(x)) +#define tag_to_index(x) ((unsigned int)(x)) #include "config.h" /* statically define the number of tags. */ @@ -841,16 +842,6 @@ grabbuttons(Client *c, Bool focused) { else XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); -} - -unsigned int -idxoftag(const char *tag) { - unsigned int i; - - for(i = 0; i < ntags; i++) - if(tags[i] == tag) - return i; - return 0; } void @@ -1544,7 +1535,7 @@ tag(const char *arg) { return; for(i = 0; i < ntags; i++) sel->tags[i] = arg == NULL; - i = idxoftag(arg); + i = tag_to_index(arg); if(i >= 0 && i < ntags) sel->tags[i] = True; arrange(); @@ -1660,7 +1651,7 @@ toggletag(const char *arg) { if(!sel) return; - i = idxoftag(arg); + i = tag_to_index(arg); sel->tags[i] = !sel->tags[i]; for(j = 0; j < ntags && !sel->tags[j]; j++); if(j == ntags) @@ -1672,7 +1663,7 @@ toggleview(const char *arg) { toggleview(const char *arg) { unsigned int i, j; - i = idxoftag(arg); + i = tag_to_index(arg); seltags[i] = !seltags[i]; for(j = 0; j < ntags && !seltags[j]; j++); if(j == ntags) @@ -1843,7 +1834,7 @@ view(const char *arg) { memcpy(prevtags, seltags, sizeof seltags); for(i = 0; i < ntags; i++) seltags[i] = arg == NULL; - i = idxoftag(arg); + i = tag_to_index(arg); if(i >= 0 && i < ntags) seltags[i] = True; arrange();