t* dwm + patches
       
   URI git clone git://git.codevoid.de/dwm-sdk
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit b8985dc7bb8ef309a66edea541f8e4b8bc5d6381
   DIR parent 6f60b2e1cd74c881688617082dc292b5c89da1a1
   URI Author: Anselm R. Garbe <garbeam@gmail.com>
       Date:   Fri,  2 Nov 2007 16:57:52 +0100
       
       replaced low-level stext reading with an fgets call
       Diffstat:
         M dwm.c                               |      22 +++++-----------------
       
       1 file changed, 5 insertions(+), 17 deletions(-)
       ---
   DIR diff --git a/dwm.c b/dwm.c
       t@@ -1280,15 +1280,15 @@ restack(void) {
        
        void
        run(void) {
       -        char *p;
       -        int r, xfd;
                fd_set rd;
       +        int xfd;
                XEvent ev;
        
                /* main event loop, also reads status text from stdin */
                XSync(dpy, False);
                xfd = ConnectionNumber(dpy);
                readin = True;
       +        stext[sizeof stext - 1] = '\0'; /* 0-terminator is never touched */
                while(running) {
                        FD_ZERO(&rd);
                        if(readin)
       t@@ -1300,22 +1300,10 @@ run(void) {
                                eprint("select failed\n");
                        }
                        if(FD_ISSET(STDIN_FILENO, &rd)) {
       -                        switch(r = read(STDIN_FILENO, stext, sizeof stext - 1)) {
       -                        case -1:
       +                        if(stext == fgets(stext, sizeof stext - 1, stdin))
       +                                stext[strlen(stext) - 1] = '\0'; /* remove tailing '\n' */
       +                        else
                                        strncpy(stext, strerror(errno), sizeof stext - 1);
       -                                stext[sizeof stext - 1] = '\0';
       -                                readin = False;
       -                                break;
       -                        case 0:
       -                                strncpy(stext, "EOF", 4);
       -                                readin = False;
       -                                break;
       -                        default:
       -                                for(stext[r] = '\0', p = stext + strlen(stext) - 1; p >= stext && *p == '\n'; *p-- = '\0');
       -                                for(; p >= stext && *p != '\n'; --p);
       -                                if(p > stext)
       -                                        strncpy(stext, p + 1, sizeof stext);
       -                        }
                                drawbar();
                        }
                        while(XPending(dpy)) {