applied Jukka's sizeof K&R compliance patch, applied Manuels' last-line printage proposal for stdin reading. - dwm - dynamic window manager
 (HTM) git clone https://git.parazyd.org/dwm
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 61a1910f91fe6aba428193087d6c3ff21374ee5e
 (DIR) parent 27ef73507b69608c63bd7d1684b7d9987fbcce53
 (HTM) Author: arg@mig29 <unknown>
       Date:   Sun, 26 Nov 2006 14:26:53 +0100
       
       applied Jukka's sizeof K&R compliance patch, applied Manuels' last-line printage proposal for stdin reading.
       Diffstat:
         M client.c                            |       4 ++--
         M draw.c                              |       4 ++--
         M event.c                             |       4 ++--
         M main.c                              |      14 ++++++++------
         M tag.c                               |       4 ++--
       
       5 files changed, 16 insertions(+), 14 deletions(-)
       ---
 (DIR) diff --git a/client.c b/client.c
       @@ -361,12 +361,12 @@ updatetitle(Client *c) {
                if(!name.nitems)
                        return;
                if(name.encoding == XA_STRING)
       -                strncpy(c->name, (char *)name.value, sizeof(c->name));
       +                strncpy(c->name, (char *)name.value, sizeof c->name);
                else {
                        if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success
                                        && n > 0 && *list)
                        {
       -                        strncpy(c->name, *list, sizeof(c->name));
       +                        strncpy(c->name, *list, sizeof c->name);
                                XFreeStringList(list);
                        }
                }
 (DIR) diff --git a/draw.c b/draw.c
       @@ -43,8 +43,8 @@ drawtext(const char *text, unsigned long col[ColLast], Bool ldot, Bool rdot) {
                        return;
                w = 0;
                olen = len = strlen(text);
       -        if(len >= sizeof(buf))
       -                len = sizeof(buf) - 1;
       +        if(len >= sizeof buf)
       +                len = sizeof buf - 1;
                memcpy(buf, text, len);
                buf[len] = 0;
                h = dc.font.ascent + dc.font.descent;
 (DIR) diff --git a/event.c b/event.c
       @@ -244,7 +244,7 @@ expose(XEvent *e) {
        
        static void
        keypress(XEvent *e) {
       -        static unsigned int len = sizeof(key) / sizeof(key[0]);
       +        static unsigned int len = sizeof key / sizeof key[0];
                unsigned int i;
                KeySym keysym;
                XKeyEvent *ev = &e->xkey;
       @@ -355,7 +355,7 @@ void (*handler[LASTEvent]) (XEvent *) = {
        
        void
        grabkeys(void) {
       -        static unsigned int len = sizeof(key) / sizeof(key[0]);
       +        static unsigned int len = sizeof key / sizeof key[0];
                unsigned int i;
                KeyCode code;
        
 (DIR) diff --git a/main.c b/main.c
       @@ -227,6 +227,7 @@ xerror(Display *dpy, XErrorEvent *ee) {
        
        int
        main(int argc, char *argv[]) {
       +        char *p;
                int r, xfd;
                fd_set rd;
        
       @@ -270,22 +271,23 @@ main(int argc, char *argv[]) {
                        if(select(xfd + 1, &rd, NULL, NULL, NULL) == -1) {
                                if(errno == EINTR)
                                        continue;
       -                        else
       -                                eprint("select failed\n");
       +                        eprint("select failed\n");
                        }
                        if(FD_ISSET(STDIN_FILENO, &rd)) {
       -                        switch(r = read(STDIN_FILENO, stext, sizeof(stext) - 1)) {
       +                        switch(r = read(STDIN_FILENO, stext, sizeof stext - 1)) {
                                case -1:
       -                                strncpy(stext, strerror(errno), sizeof(stext));
       -                                stext[sizeof(stext) - 1] = '\0';
       +                                strncpy(stext, strerror(errno), sizeof stext - 1);
                                        readin = False;
                                        break;
                                case 0:
       -                                strncpy(stext, "EOF", sizeof(stext));
       +                                strncpy(stext, "EOF", sizeof stext);
                                        readin = False;
                                        break;
                                default:
                                        stext[r - (stext[r - 1] == '\n' ? 1 : 0)] = '\0';
       +                                for(p = stext + strlen(stext) - 1; p > stext && *p != '\n'; --p);
       +                                if(p > stext)
       +                                        strncpy(stext, p + 1, sizeof stext);
                                }
                                drawstatus();
                        }
 (DIR) diff --git a/tag.c b/tag.c
       @@ -50,7 +50,7 @@ initrregs(void) {
        
                if(rreg)
                        return;
       -        len = sizeof(rule) / sizeof(rule[0]);
       +        len = sizeof rule / sizeof rule[0];
                rreg = emallocz(len * sizeof(RReg));
                for(i = 0; i < len; i++) {
                        if(rule[i].clpattern) {
       @@ -83,7 +83,7 @@ settags(Client *c, Client *trans) {
                                c->tags[i] = trans->tags[i];
                }
                else if(XGetClassHint(dpy, c->win, &ch)) {
       -                snprintf(prop, sizeof(prop), "%s:%s:%s",
       +                snprintf(prop, sizeof prop, "%s:%s:%s",
                                        ch.res_class ? ch.res_class : "",
                                        ch.res_name ? ch.res_name : "", c->name);
                        for(i = 0; !matched && i < len; i++)