t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 206eb344e2efcb29922b5b89f7b11f227d701240
   DIR parent 04de5720e6593cbe0ef31be3e78778fe0f46a774
   URI Author: arg@suckless.org <unknown>
       Date:   Wed, 17 Oct 2007 11:19:14 +0200
       
       just making dwm.h saner
       Diffstat:
         M config.mk                           |       4 ++--
         M dwm.c                               |      65 ++-----------------------------
         M dwm.h                               |      59 ++++++++++++++++++++++++++++++-
       
       3 files changed, 63 insertions(+), 65 deletions(-)
       ---
   DIR diff --git a/config.mk b/config.mk
       t@@ -17,8 +17,8 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lX11
        # flags
        CFLAGS = -Os ${INCS} -DVERSION=\"${VERSION}\"
        LDFLAGS = -s ${LIBS}
       -#CFLAGS = -g -std=c99 -pedantic -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
       -#LDFLAGS = -g ${LIBS}
       +CFLAGS = -g -std=c99 -pedantic -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
       +LDFLAGS = -g ${LIBS}
        
        # Solaris
        #CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
   DIR diff --git a/dwm.c b/dwm.c
       t@@ -25,8 +25,6 @@
         *
         * To understand everything else, start reading main().
         */
       -#include "dwm.h"
       -
        #include <errno.h>
        #include <locale.h>
        #include <stdarg.h>
       t@@ -41,73 +39,17 @@
        #include <X11/cursorfont.h>
        #include <X11/keysym.h>
        #include <X11/Xatom.h>
       +#include <X11/Xlib.h>
        #include <X11/Xproto.h>
        #include <X11/Xutil.h>
        
       +#include "dwm.h"
       +
        /* macros */
        #define BUTTONMASK                (ButtonPressMask | ButtonReleaseMask)
        #define CLEANMASK(mask)                (mask & ~(numlockmask | LockMask))
        #define MOUSEMASK                (BUTTONMASK | PointerMotionMask)
        
       -/* local typedefs */
       -typedef struct {
       -        const char *prop;
       -        const char *tags;
       -        Bool isfloating;
       -} Rule;
       -
       -typedef struct {
       -        regex_t *propregex;
       -        regex_t *tagregex;
       -} Regs;
       -
       -/* variables */
       -char stext[256];
       -double mwfact;
       -int screen, sx, sy, sw, sh, wax, way, waw, wah;
       -int (*xerrorxlib)(Display *, XErrorEvent *);
       -unsigned int bh, bpos;
       -unsigned int blw = 0;
       -unsigned int ltidx = 0; /* default */
       -unsigned int nlayouts = 0;
       -unsigned int nrules = 0;
       -unsigned int numlockmask = 0;
       -void (*handler[LASTEvent]) (XEvent *) = {
       -        [ButtonPress] = buttonpress,
       -        [ConfigureRequest] = configurerequest,
       -        [ConfigureNotify] = configurenotify,
       -        [DestroyNotify] = destroynotify,
       -        [EnterNotify] = enternotify,
       -        [LeaveNotify] = leavenotify,
       -        [Expose] = expose,
       -        [KeyPress] = keypress,
       -        [MappingNotify] = mappingnotify,
       -        [MapRequest] = maprequest,
       -        [PropertyNotify] = propertynotify,
       -        [UnmapNotify] = unmapnotify
       -};
       -Atom wmatom[WMLast], netatom[NetLast];
       -Bool otherwm, readin;
       -Bool running = True;
       -Bool selscreen = True;
       -Client *clients = NULL;
       -Client *sel = NULL;
       -Client *stack = NULL;
       -Cursor cursor[CurLast];
       -Display *dpy;
       -DC dc = {0};
       -Window barwin, root;
       -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};
       -
       -/* functions*/
        void
        applyrules(Client *c) {
                static char buf[512];
       t@@ -1032,7 +974,6 @@ quit(const char *arg) {
        
        void
        resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
       -        double dx, dy, max, min, ratio;
                XWindowChanges wc;
        
                if(sizehints) {
   DIR diff --git a/dwm.h b/dwm.h
       t@@ -1,5 +1,4 @@
        /* See LICENSE file for copyright and license details. */
       -#include <X11/Xlib.h>
        
        /* enums */
        enum { BarTop, BarBot, BarOff };                        /* bar position */
       t@@ -53,6 +52,17 @@ typedef struct {
                void (*arrange)(void);
        } Layout;
        
       +typedef struct {
       +        const char *prop;
       +        const char *tags;
       +        Bool isfloating;
       +} Rule;
       +
       +typedef struct {
       +        regex_t *propregex;
       +        regex_t *tagregex;
       +} Regs;
       +
        /* functions */
        void applyrules(Client *c);
        void arrange(void);
       t@@ -132,3 +142,50 @@ int xerror(Display *dpy, XErrorEvent *ee);
        int xerrordummy(Display *dsply, XErrorEvent *ee);
        int xerrorstart(Display *dsply, XErrorEvent *ee);
        void zoom(const char *arg);
       +
       +/* variables */
       +char stext[256];
       +double mwfact;
       +int screen, sx, sy, sw, sh, wax, way, waw, wah;
       +int (*xerrorxlib)(Display *, XErrorEvent *);
       +unsigned int bh, bpos;
       +unsigned int blw = 0;
       +unsigned int ltidx = 0; /* default */
       +unsigned int nlayouts = 0;
       +unsigned int nrules = 0;
       +unsigned int numlockmask = 0;
       +void (*handler[LASTEvent]) (XEvent *) = {
       +        [ButtonPress] = buttonpress,
       +        [ConfigureRequest] = configurerequest,
       +        [ConfigureNotify] = configurenotify,
       +        [DestroyNotify] = destroynotify,
       +        [EnterNotify] = enternotify,
       +        [LeaveNotify] = leavenotify,
       +        [Expose] = expose,
       +        [KeyPress] = keypress,
       +        [MappingNotify] = mappingnotify,
       +        [MapRequest] = maprequest,
       +        [PropertyNotify] = propertynotify,
       +        [UnmapNotify] = unmapnotify
       +};
       +Atom wmatom[WMLast], netatom[NetLast];
       +Bool otherwm, readin;
       +Bool running = True;
       +Bool selscreen = True;
       +Client *clients = NULL;
       +Client *sel = NULL;
       +Client *stack = NULL;
       +Cursor cursor[CurLast];
       +Display *dpy;
       +DC dc = {0};
       +Window barwin, root;
       +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};
       +