t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 2952b68db88f38be8d34b80c7a7d2c7eb5b2484d
   DIR parent bb3bd6fec37174e8d4bb9457ca815c00609e5157
   URI Author: Markus Teich <markus.teich@stusta.mhn.de>
       Date:   Sat,  7 Jan 2017 17:21:28 +0100
       
       cleanup
       
       - unify multi-line expression alignment style.
       - unify multi-line function call alignment style.
       - simplify client moving on monitor count decrease.
       - clarify comment for focusin().
       - remove old confusing comment about input focus fix in focusmon(). The
         explanation is already in the old commit message, so no need to keep it in the
         code.
       - remove old comment describing even older state of the code in focus().
       - unify comment style.
       - break up some long lines.
       - fix some typos and grammar.
       
       Diffstat:
         M LICENSE                             |       2 +-
         M config.def.h                        |       2 +-
         M dwm.c                               |      64 +++++++++++++++----------------
       
       3 files changed, 32 insertions(+), 36 deletions(-)
       ---
   DIR diff --git a/LICENSE b/LICENSE
       t@@ -16,7 +16,7 @@ MIT/X Consortium License
        © 2011 Christoph Lohmann <20h@r-36.net>
        © 2015-2016 Quentin Rameau <quinq@fifth.space>
        © 2015-2016 Eric Pruitt <eric.pruitt@gmail.com>
       -© 2016 Markus Teich <markus.teich@stusta.mhn.de>
       +© 2016-2017 Markus Teich <markus.teich@stusta.mhn.de>
        
        Permission is hereby granted, free of charge, to any person obtaining a
        copy of this software and associated documentation files (the "Software"),
   DIR diff --git a/config.def.h b/config.def.h
       t@@ -15,7 +15,7 @@ static const char col_cyan[]        = "#005577";
        static const char *colors[][3]      = {
                /*               fg         bg         border   */
                [SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
       -        [SchemeSel] =  { col_gray4, col_cyan,  col_cyan  },
       +        [SchemeSel]  = { col_gray4, col_cyan,  col_cyan  },
        };
        
        /* tagging */
   DIR diff --git a/dwm.c b/dwm.c
       t@@ -3,7 +3,7 @@
         * dynamic window manager is designed like any other X client as well. It is
         * driven through handling X events. In contrast to other X clients, a window
         * manager selects for SubstructureRedirectMask on the root window, to receive
       - * events about window (dis-)appearance.  Only one X connection at a time is
       + * events about window (dis-)appearance. Only one X connection at a time is
         * allowed to select for this event mask.
         *
         * The event handlers of dwm are organized in an array which is accessed
       t@@ -11,7 +11,7 @@
         * in O(1) time.
         *
         * Each child of the root window is called a client, except windows which have
       - * set the override_redirect flag.  Clients are organized in a linked client
       + * set the override_redirect flag. Clients are organized in a linked client
         * list on each monitor, the focus history is remembered through a stack list
         * on each monitor. Each client contains a bit array to indicate the tags of a
         * client.
       t@@ -517,7 +517,8 @@ clientmessage(XEvent *e)
                if (!c)
                        return;
                if (cme->message_type == netatom[NetWMState]) {
       -                if (cme->data.l[1] == netatom[NetWMFullscreen] || cme->data.l[2] == netatom[NetWMFullscreen])
       +                if (cme->data.l[1] == netatom[NetWMFullscreen]
       +                || cme->data.l[2] == netatom[NetWMFullscreen])
                                setfullscreen(c, (cme->data.l[0] == 1 /* _NET_WM_STATE_ADD    */
                                              || (cme->data.l[0] == 2 /* _NET_WM_STATE_TOGGLE */ && !c->isfullscreen)));
                } else if (cme->message_type == netatom[NetActiveWindow]) {
       t@@ -783,7 +784,6 @@ focus(Client *c)
        {
                if (!c || !ISVISIBLE(c))
                        for (c = selmon->stack; c && !ISVISIBLE(c); c = c->snext);
       -        /* was if (selmon->sel) */
                if (selmon->sel && selmon->sel != c)
                        unfocus(selmon->sel, 0);
                if (c) {
       t@@ -804,7 +804,7 @@ focus(Client *c)
                drawbars();
        }
        
       -/* there are some broken focus acquiring clients */
       +/* there are some broken focus acquiring clients needing extra handling */
        void
        focusin(XEvent *e)
        {
       t@@ -823,8 +823,7 @@ focusmon(const Arg *arg)
                        return;
                if ((m = dirtomon(arg->i)) == selmon)
                        return;
       -        unfocus(selmon->sel, 0); /* s/1/0/ fixes input focus issues
       -                                        in gedit and anjuta */
       +        unfocus(selmon->sel, 0);
                selmon = m;
                focus(NULL);
        }
       t@@ -961,7 +960,7 @@ grabkeys(void)
                                if ((code = XKeysymToKeycode(dpy, keys[i].keysym)))
                                        for (j = 0; j < LENGTH(modifiers); j++)
                                                XGrabKey(dpy, code, keys[i].mod | modifiers[j], root,
       -                                                 True, GrabModeAsync, GrabModeAsync);
       +                                                 True, GrabModeAsync, GrabModeAsync);
                }
        }
        
       t@@ -1151,7 +1150,7 @@ movemouse(const Arg *arg)
                ocx = c->x;
                ocy = c->y;
                if (XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
       -        None, cursor[CurMove]->cursor, CurrentTime) != GrabSuccess)
       +            None, cursor[CurMove]->cursor, CurrentTime) != GrabSuccess)
                        return;
                if (!getrootptr(&x, &y))
                        return;
       t@@ -1434,7 +1433,7 @@ setclientstate(Client *c, long state)
                long data[] = { state, None };
        
                XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32,
       -                        PropModeReplace, (unsigned char *)data, 2);
       +                        PropModeReplace, (unsigned char *)data, 2);
        }
        
        int
       t@@ -1516,7 +1515,7 @@ setlayout(const Arg *arg)
                        drawbar(selmon);
        }
        
       -/* arg > 1.0 will set mfact absolutly */
       +/* arg > 1.0 will set mfact absolutely */
        void
        setmfact(const Arg *arg)
        {
       t@@ -1581,19 +1580,20 @@ setup(void)
                /* supporting window for NetWMCheck */
                wmcheckwin = XCreateSimpleWindow(dpy, root, 0, 0, 1, 1, 0, 0, 0);
                XChangeProperty(dpy, wmcheckwin, netatom[NetWMCheck], XA_WINDOW, 32,
       -                PropModeReplace, (unsigned char *) &wmcheckwin, 1);
       +                        PropModeReplace, (unsigned char *) &wmcheckwin, 1);
                XChangeProperty(dpy, wmcheckwin, netatom[NetWMName], utf8string, 8,
       -                PropModeReplace, (unsigned char *) "dwm", 4);
       +                        PropModeReplace, (unsigned char *) "dwm", 4);
                XChangeProperty(dpy, root, netatom[NetWMCheck], XA_WINDOW, 32,
       -                PropModeReplace, (unsigned char *) &wmcheckwin, 1);
       +                        PropModeReplace, (unsigned char *) &wmcheckwin, 1);
                /* EWMH support per view */
                XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32,
       -                        PropModeReplace, (unsigned char *) netatom, NetLast);
       +                        PropModeReplace, (unsigned char *) netatom, NetLast);
                XDeleteProperty(dpy, root, netatom[NetClientList]);
       -        /* select for events */
       +        /* select events */
                wa.cursor = cursor[CurNormal]->cursor;
       -        wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask|ButtonPressMask|PointerMotionMask
       -                        |EnterWindowMask|LeaveWindowMask|StructureNotifyMask|PropertyChangeMask;
       +        wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask
       +                        |ButtonPressMask|PointerMotionMask|EnterWindowMask
       +                        |LeaveWindowMask|StructureNotifyMask|PropertyChangeMask;
                XChangeWindowAttributes(dpy, root, CWEventMask|CWCursor, &wa);
                XSelectInput(dpy, root, wa.event_mask);
                grabkeys();
       t@@ -1769,12 +1769,11 @@ unmanage(Client *c, int destroyed)
                Monitor *m = c->mon;
                XWindowChanges wc;
        
       -        /* The server grab construct avoids race conditions. */
                detach(c);
                detachstack(c);
                if (!destroyed) {
                        wc.border_width = c->oldbw;
       -                XGrabServer(dpy);
       +                XGrabServer(dpy); /* avoid race conditions */
                        XSetErrorHandler(xerrordummy);
                        XConfigureWindow(dpy, c->win, CWBorderWidth, &wc); /* restore border */
                        XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
       t@@ -1871,8 +1870,8 @@ updategeom(void)
                                        memcpy(&unique[j++], &info[i], sizeof(XineramaScreenInfo));
                        XFree(info);
                        nn = j;
       -                if (n <= nn) {
       -                        for (i = 0; i < (nn - n); i++) { /* new monitors available */
       +                if (n <= nn) { /* new monitors available */
       +                        for (i = 0; i < (nn - n); i++) {
                                        for (m = mons; m && m->next; m = m->next);
                                        if (m)
                                                m->next = createmon();
       t@@ -1881,8 +1880,8 @@ updategeom(void)
                                }
                                for (i = 0, m = mons; i < nn && m; m = m->next, i++)
                                        if (i >= n
       -                                || (unique[i].x_org != m->mx || unique[i].y_org != m->my
       -                                    || unique[i].width != m->mw || unique[i].height != m->mh))
       +                                || unique[i].x_org != m->mx || unique[i].y_org != m->my
       +                                || unique[i].width != m->mw || unique[i].height != m->mh)
                                        {
                                                dirty = 1;
                                                m->num = i;
       t@@ -1892,13 +1891,11 @@ updategeom(void)
                                                m->mh = m->wh = unique[i].height;
                                                updatebarpos(m);
                                        }
       -                } else {
       -                        /* less monitors available nn < n */
       +                } else { /* less monitors available nn < n */
                                for (i = nn; i < n; i++) {
                                        for (m = mons; m && m->next; m = m->next);
       -                                while (m->clients) {
       +                                while ((c = m->clients)) {
                                                dirty = 1;
       -                                        c = m->clients;
                                                m->clients = c->next;
                                                detachstack(c);
                                                c->mon = mons;
       t@@ -1913,8 +1910,7 @@ updategeom(void)
                        free(unique);
                } else
        #endif /* XINERAMA */
       -        /* default monitor setup */
       -        {
       +        { /* default monitor setup */
                        if (!mons)
                                mons = createmon();
                        if (mons->mw != sw || mons->mh != sh) {
       t@@ -1988,7 +1984,7 @@ updatesizehints(Client *c)
                } else
                        c->maxa = c->mina = 0.0;
                c->isfixed = (c->maxw && c->minw && c->maxh && c->minh
       -                     && c->maxw == c->minw && c->maxh == c->minh);
       +                      && c->maxw == c->minw && c->maxh == c->minh);
        }
        
        void
       t@@ -2082,8 +2078,8 @@ wintomon(Window w)
        }
        
        /* There's no way to check accesses to destroyed windows, thus those cases are
       - * ignored (especially on UnmapNotify's).  Other types of errors call Xlibs
       - * default error handler, which may call exit.  */
       + * ignored (especially on UnmapNotify's). Other types of errors call Xlibs
       + * default error handler, which may call exit. */
        int
        xerror(Display *dpy, XErrorEvent *ee)
        {
       t@@ -2098,7 +2094,7 @@ xerror(Display *dpy, XErrorEvent *ee)
                || (ee->request_code == X_CopyArea && ee->error_code == BadDrawable))
                        return 0;
                fprintf(stderr, "dwm: fatal error: request code=%d, error code=%d\n",
       -                        ee->request_code, ee->error_code);
       +                ee->request_code, ee->error_code);
                return xerrorxlib(dpy, ee); /* may call exit */
        }