t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 858251de46c50498b261b312f2df03531dd9923c
   DIR parent d26c28c1e7b01024b0559b4bc7b40c85d96dc701
   URI Author: Anselm R Garbe <garbeam@gmail.com>
       Date:   Sun, 27 Apr 2008 18:00:45 +0100
       
       applied dfenze drawtext simplifications
       Diffstat:
         M dwm.c                               |      15 +++++++--------
       
       1 file changed, 7 insertions(+), 8 deletions(-)
       ---
   DIR diff --git a/dwm.c b/dwm.c
       t@@ -210,7 +210,7 @@ int xerrorstart(Display *dpy, XErrorEvent *ee);
        void zoom(const char *arg);
        
        /* variables */
       -char stext[256], buf[256];
       +char stext[256];
        int screen, sx, sy, sw, sh;
        int (*xerrorxlib)(Display *, XErrorEvent *);
        int bx, by, bw, bh, blw, bgw, mx, my, mw, mh, mox, moy, mow, moh, tx, ty, tw, th, wx, wy, ww, wh;
       t@@ -597,22 +597,23 @@ drawtext(const char *text, unsigned long col[ColLast], Bool invert) {
                int x, y, w, h;
                unsigned int len, olen;
                XRectangle r = { dc.x, dc.y, dc.w, dc.h };
       +        char buf[256];
        
                XSetForeground(dpy, dc.gc, col[invert ? ColFG : ColBG]);
                XFillRectangles(dpy, dc.drawable, dc.gc, &r, 1);
                if(!text)
                        return;
       -        w = 0;
                olen = strlen(text);
       -        len = MIN(olen, sizeof buf - 1);
       +        len = MIN(olen, sizeof buf);
                memcpy(buf, text, len);
       -        buf[len] = 0;
       +        w = 0;
                h = dc.font.ascent + dc.font.descent;
                y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent;
                x = dc.x + (h / 2);
                /* shorten text if necessary */
       -        while(len && (w = textnw(buf, len)) > dc.w - h)
       -                buf[--len] = 0;
       +        for(; len && (w = textnw(buf, len)) > dc.w - h; len--);
       +        if (!len)
       +                return;
                if(len < olen) {
                        if(len > 1)
                                buf[len - 1] = '.';
       t@@ -621,8 +622,6 @@ drawtext(const char *text, unsigned long col[ColLast], Bool invert) {
                        if(len > 3)
                                buf[len - 3] = '.';
                }
       -        if(w > dc.w)
       -                return; /* too long */
                XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
                if(dc.font.set)
                        XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len);