tall: fix or silence various gcc warnings - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit fafa622a5bdf71adfbb4334541c3b65f29c89ca9
 (DIR) parent fa325e9b42b0bdfb48857d1958d9fb7ceac55151
 (HTM) Author: Russ Cox <rsc@golang.org>
       Date:   Sun, 12 Jan 2020 15:05:40 -0500
       
       all: fix or silence various gcc warnings
       
       As usual, gcc finds some real problems but also reports a ton
       of noise. Fix the problems and quiet the noise.
       
       Diffstat:
         M bin/9c                              |       4 ++++
         M src/cmd/auth/factotum/p9cr.c        |       2 ++
         M src/cmd/draw/tweak.c                |       2 +-
         M src/cmd/eqn/text.c                  |       2 +-
         M src/cmd/grap/coord.c                |       2 +-
         M src/cmd/mk/archive.c                |       2 +-
         M src/cmd/paint/eenter.c              |       1 +
         M src/cmd/pic/input.c                 |       2 +-
         M src/cmd/pic/pic.h                   |       2 +-
         M src/cmd/rio/showevent/ShowEvent.c   |       2 +-
         M src/cmd/svgpic/input.c              |       2 +-
         M src/cmd/svgpic/pic.h                |       2 +-
         M src/cmd/tpic/input.c                |       2 +-
         M src/cmd/tpic/pic.h                  |       2 +-
         M src/cmd/troff/t6.c                  |       6 +++---
         M src/lib9/_p9dialparse.c             |       2 +-
         M src/lib9/lrand.c                    |      12 +++++-------
       
       17 files changed, 27 insertions(+), 22 deletions(-)
       ---
 (DIR) diff --git a/bin/9c b/bin/9c
       t@@ -14,6 +14,10 @@ usegcc()
                        -Wno-comment \
                        -Wno-sign-compare \
                        -Wno-unknown-pragmas \
       +                -Wno-misleading-indentation \
       +                -Wno-stringop-truncation \
       +                -Wno-stringop-overflow \
       +                -Wno-format-truncation \
                        -fno-omit-frame-pointer \
                        -fsigned-char \
                "
 (DIR) diff --git a/src/cmd/auth/factotum/p9cr.c b/src/cmd/auth/factotum/p9cr.c
       t@@ -290,6 +290,8 @@ p9crresp(ServerState *s, uchar *resp, int resplen)
                Ticket t;
                Ticketreq tr;
        
       +        memset(&tr, 0, sizeof tr);        // TODO: what should tr be initialized to?
       +
                if(xiowrite(s->asfd, resp, resplen) != resplen)
                        return -1;
        
 (DIR) diff --git a/src/cmd/draw/tweak.c b/src/cmd/draw/tweak.c
       t@@ -1142,7 +1142,7 @@ textedit(Thing *t, char *tag)
                        fc = f->info;
                        for(i=0; i<=w && i<=f->n; i++)
                                nfc[i] = fc[i];
       -                if(w+1 < i)
       +                if(i < w+1)
                                memset(nfc+i, 0, ((w+1)-i)*sizeof(Fontchar));
                        x = fc[f->n].x;
                        for(; i<=w; i++)
 (DIR) diff --git a/src/cmd/eqn/text.c b/src/cmd/eqn/text.c
       t@@ -257,7 +257,7 @@ trans(int c, char *p1)
        
        char *pad(int n)        /* return the padding as a string */
        {
       -        static char buf[20];
       +        static char buf[30];
        
                buf[0] = 0;
                if (n < 0) {
 (DIR) diff --git a/src/cmd/grap/coord.c b/src/cmd/grap/coord.c
       t@@ -35,7 +35,7 @@ void coordlog(int n)        /* remember log scaling */
        
        void coord(Obj *p)        /* set coord range */
        {
       -        static char buf[10];
       +        static char buf[20];
        
                ncoord++;
                if (ncoord > 1 && strcmp(p->name, dflt_coord) == 0) {
 (DIR) diff --git a/src/cmd/mk/archive.c b/src/cmd/mk/archive.c
       t@@ -202,7 +202,7 @@ atimes(char *ar)
                                name[namelen] = 0;
                                namelen = 0;
                        }else{
       -                        strncpy(name, h.name, sizeof(h.name));
       +                        memmove(name, h.name, sizeof(h.name));
                                for(i = sizeof(h.name)-1; i > 0 && name[i] == ' '; i--)
                                        ;
                                if(name[i] == '/')                /* system V bug */
 (DIR) diff --git a/src/cmd/paint/eenter.c b/src/cmd/paint/eenter.c
       t@@ -78,6 +78,7 @@ eenter(char *ask, char *buf, int len, Mouse *m)
                b = screen;
                sc = b->clipr;
                replclipr(b, 0, b->r);
       +        t = ZP;
        
                while(!done){
                        p = stringsize(font, buf ? buf : "");
 (DIR) diff --git a/src/cmd/pic/input.c b/src/cmd/pic/input.c
       t@@ -435,7 +435,7 @@ double errcheck(double x, char  *s)
                return x;
        }
        
       -char        errbuf[200];
       +char        errbuf[1000];
        
        void        eprint(void);
        
 (DIR) diff --git a/src/cmd/pic/pic.h b/src/cmd/pic/pic.h
       t@@ -9,7 +9,7 @@
        
        extern        void        yyerror(char *);
        
       -extern        char        errbuf[200];
       +extern        char        errbuf[1000];
        
        #undef        sprintf        /* Snow Leopard */
        
 (DIR) diff --git a/src/cmd/rio/showevent/ShowEvent.c b/src/cmd/rio/showevent/ShowEvent.c
       t@@ -68,7 +68,7 @@ Time time;
                unsigned long min;
                unsigned long hr;
                unsigned long day;
       -        static char buffer[32];
       +        static char buffer[50];
        
                msec = time % 1000;
                time /= 1000;
 (DIR) diff --git a/src/cmd/svgpic/input.c b/src/cmd/svgpic/input.c
       t@@ -435,7 +435,7 @@ double errcheck(double x, char  *s)
                return x;
        }
        
       -char        errbuf[200];
       +char        errbuf[1000];
        
        void        eprint(void);
        
 (DIR) diff --git a/src/cmd/svgpic/pic.h b/src/cmd/svgpic/pic.h
       t@@ -9,7 +9,7 @@
        
        extern        void        yyerror(char *);
        
       -extern        char        errbuf[200];
       +extern        char        errbuf[1000];
        
        #undef        sprintf        /* Snow Leopard */
        
 (DIR) diff --git a/src/cmd/tpic/input.c b/src/cmd/tpic/input.c
       t@@ -438,7 +438,7 @@ errcheck(double x, char *s)
                return x;
        }
        
       -char        errbuf[200];
       +char        errbuf[1000];
        
        void
        yyerror(char *s)
 (DIR) diff --git a/src/cmd/tpic/pic.h b/src/cmd/tpic/pic.h
       t@@ -11,7 +11,7 @@
        
        #define        dprintf        if(dbg)printf
        
       -extern        char        errbuf[200];
       +extern        char        errbuf[1000];
        
        #undef        sprintf        /* Snow Leopard */
        
 (DIR) diff --git a/src/cmd/troff/t6.c b/src/cmd/troff/t6.c
       t@@ -723,15 +723,15 @@ setfp(int pos, int f, char *truename, int print)        /* mount font f at position pos
                else
                        strcpy(shortname, (char *) unpair(f));
                if (truename && strrchr(truename, '/')) {        /* .fp 1 R dir/file: use verbatim */
       -                sprintf(pathname, "%s", truename);
       +                snprintf(pathname, NS, "%s", truename);
                        if (fonts[pos].truename)
                                free(fonts[pos].truename);
                        fonts[pos].truename = strdupl(truename);
                } else if (truename) {                        /* synonym: .fp 1 R Avant */
       -                sprintf(pathname, "%s/dev%s/%s", fontdir, devname, truename);
       +                snprintf(pathname, NS, "%s/dev%s/%s", fontdir, devname, truename);
                        truename = 0;        /* so doesn't get repeated by ptfpcmd */
                } else                                        /* vanilla: .fp 5 XX */
       -                sprintf(pathname, "%s/dev%s/%s", fontdir, devname, shortname);
       +                snprintf(pathname, NS, "%s/dev%s/%s", fontdir, devname, shortname);
                if (truename == 0 && fonts[pos].truename != 0) {
                        free(fonts[pos].truename);
                        fonts[pos].truename = 0;
 (DIR) diff --git a/src/lib9/_p9dialparse.c b/src/lib9/_p9dialparse.c
       t@@ -72,7 +72,7 @@ p9dialparse(char *addr, char **pnet, char **punix, void *phost, int *pport)
                if((port = strchr(host, '!')) == nil){
                        if(strcmp(net, "unix")==0 || strcmp(net, "net")==0){
                        Unix:
       -                        if(strlen(host)+1 > sizeof ((struct sockaddr_un*)&ss)->sun_path){
       +                        if(strlen(host)+1 > sizeof ((struct sockaddr_un*)ss)->sun_path){
                                        werrstr("unix socket name too long");
                                        return -1;
                                }
 (DIR) diff --git a/src/lib9/lrand.c b/src/lib9/lrand.c
       t@@ -63,17 +63,15 @@ p9lrand(void)
        
                lock(&lk);
        
       -        rng_tap--;
       -        if(rng_tap < rng_vec) {
       -                if(rng_feed == 0) {
       +        if(rng_tap <= rng_vec) {
       +                if(rng_feed == 0)
                                isrand(1);
       -                        rng_tap--;
       -                }
                        rng_tap += LEN;
                }
       -        rng_feed--;
       -        if(rng_feed < rng_vec)
       +        rng_tap--;
       +        if(rng_feed <= rng_vec)
                        rng_feed += LEN;
       +        rng_feed--;
                x = (*rng_feed + *rng_tap) & MASK;
                *rng_feed = x;