Removing all occurences of sprint() in the kernel source (port). This relates to a problem I had when compiling Ronald G. Minnich's 9vx repository on 64 bit Linux, which got me an error in some old version of sprint(). I decided, that it would be best, to remove this deprecated function in the main kernel source, on which the 9vx kernel source is directly based. Further to this patch, I'm creating patches for all the folders in /sys/src/9. Reference: /n/sources/patch/saved/remove-sprint-port Date: Fri Feb 25 21:56:22 CET 2011 Signed-off-by: 20h@r-36.net --- /sys/src/9/port/devcap.c Fri Feb 25 21:53:58 2011 +++ /sys/src/9/port/devcap.c Fri Feb 25 21:53:55 2011 @@ -112,7 +112,7 @@ int i; for(i = 0; i < Hashlen; i++) - sprint(buf+2*i, "%2.2ux", hash[i]); + snprint(buf+2*i, sizeof(buf)-2*i, "%2.2ux", hash[i]); buf[2*Hashlen] = 0; return buf; } --- /sys/src/9/port/devdraw.c Fri Feb 25 21:54:06 2011 +++ /sys/src/9/port/devdraw.c Fri Feb 25 21:54:01 2011 @@ -230,7 +230,7 @@ if(cl == nil) strcpy(up->genbuf, "??"); else - sprint(up->genbuf, "%d", cl->clientid); + snprint(up->genbuf, sizeof(up->genbuf), "%d", cl->clientid); mkqid(&q, Q2nd, 0, QTDIR); devdir(c, q, up->genbuf, 0, eve, 0500, dp); break; @@ -272,7 +272,7 @@ cl = sdraw.client[s-1]; if(cl == 0) return 0; - sprint(up->genbuf, "%d", cl->clientid); + snprint(up->genbuf, sizeof(up->genbuf), "%d", cl->clientid); mkqid(&q, (s<genbuf, 0, eve, 0555, dp); return 1; @@ -1186,7 +1186,7 @@ error(Enodrawimage); i = di->image; } - n = sprint(a, "%11d %11d %11s %11d %11d %11d %11d %11d %11d %11d %11d %11d ", + n = snprint(a, n, "%11d %11d %11s %11d %11d %11d %11d %11d %11d %11d %11d %11d ", cl->clientid, cl->infoid, chantostr(buf, i->chan), (i->flags&Frepl)==Frepl, i->r.min.x, i->r.min.y, i->r.max.x, i->r.max.y, i->clipr.min.x, i->clipr.min.y, i->clipr.max.x, i->clipr.max.y); @@ -1201,7 +1201,7 @@ m = 0; for(index = 0; index < 256; index++){ getcolor(index, &red, &green, &blue); - m += sprint((char*)p+m, "%11d %11lud %11lud %11lud\n", index, red>>24, green>>24, blue>>24); + m += snprint((char*)p+m, 4*12*256+1-m, "%11d %11lud %11lud %11lud\n", index, red>>24, green>>24, blue>>24); } n = readstr(offset, a, n, (char*)p); free(p); @@ -1370,7 +1370,7 @@ { char buf[256]; char *p, *q; - int s; + int s, l, pb; if(1|| plsprnt==0){ SET(s,q,p); @@ -1378,37 +1378,40 @@ return; } q = buf; + l = sizeof(buf); *q++ = *a++; for(p=fmt; *p; p++){ switch(*p){ case 'l': - q += sprint(q, " %ld", (long)BGLONG(a)); + pb = snprint(q, l, " %ld", (long)BGLONG(a)); a += 4; break; case 'L': - q += sprint(q, " %.8lux", (ulong)BGLONG(a)); + pb = snprint(q, l, " %.8lux", (ulong)BGLONG(a)); a += 4; break; case 'R': - q += sprint(q, " [%d %d %d %d]", BGLONG(a), BGLONG(a+4), BGLONG(a+8), BGLONG(a+12)); + pb = snprint(q, l, " [%d %d %d %d]", BGLONG(a), BGLONG(a+4), BGLONG(a+8), BGLONG(a+12)); a += 16; break; case 'P': - q += sprint(q, " [%d %d]", BGLONG(a), BGLONG(a+4)); + pb = snprint(q, l, " [%d %d]", BGLONG(a), BGLONG(a+4)); a += 8; break; case 'b': - q += sprint(q, " %d", *a++); + pb = snprint(q, l, " %d", *a++); break; case 's': - q += sprint(q, " %d", BGSHORT(a)); + pb = snprint(q, l, " %d", BGSHORT(a)); a += 2; break; case 'S': - q += sprint(q, " %.4ux", BGSHORT(a)); + pb = snprint(q, l, " %.4ux", BGSHORT(a)); a += 2; break; } + l -= pb; + q += pb; } *q++ = '\n'; *q = 0; --- /sys/src/9/port/devdup.c Fri Feb 25 21:54:10 2011 +++ /sys/src/9/port/devdup.c Fri Feb 25 21:54:08 2011 @@ -29,10 +29,10 @@ return 0; if(s & 1){ p = 0400; - sprint(up->genbuf, "%dctl", s/2); + snprint(up->genbuf, sizeof(up->genbuf), "%dctl", s/2); }else{ p = perm[f->mode&3]; - sprint(up->genbuf, "%d", s/2); + snprint(up->genbuf, sizeof(up->genbuf), "%d", s/2); } mkqid(&q, s+1, 0, QTFILE); devdir(c, q, up->genbuf, 0, eve, p, dp); --- /sys/src/9/port/devflash.c Fri Feb 25 21:54:15 2011 +++ /sys/src/9/port/devflash.c Fri Feb 25 21:54:12 2011 @@ -88,7 +88,7 @@ mkqid(&q, QID(0, Qtopdir), 0, QTDIR); n = "#F"; if(c->dev != 0){ - sprint(up->genbuf, "#F%ld", c->dev); + snprint(up->genbuf, sizeof(up->genbuf), "#F%ld", c->dev); n = up->genbuf; } devdir(c, q, n, 0, eve, 0555, dp); @@ -101,7 +101,7 @@ mkqid(&q, QID(0, Qflashdir), 0, QTDIR); n = "flash"; if(c->dev != 0){ - sprint(up->genbuf, "flash%ld", c->dev); + snprint(up->genbuf, sizeof(up->genbuf), "flash%ld", c->dev); n = up->genbuf; } devdir(c, q, n, 0, eve, 0555, dp); --- /sys/src/9/port/devmouse.c Fri Feb 25 21:54:20 2011 +++ /sys/src/9/port/devmouse.c Fri Feb 25 21:54:17 2011 @@ -314,7 +314,7 @@ b = 16; else if (b == 16) b = 8; - sprint(buf, "m%11d %11d %11d %11lud ", + snprint(buf, sizeof(buf), "m%11d %11d %11d %11lud ", m.xy.x, m.xy.y, b, m.msec); --- /sys/src/9/port/devpnp.c Fri Feb 25 21:54:25 2011 +++ /sys/src/9/port/devpnp.c Fri Feb 25 21:54:22 2011 @@ -305,7 +305,7 @@ if(isa.port < 0x203 || isa.port > 0x3ff) return; for(csn = 1; csn < 256; csn++) { - sprint(buf, "pnp%d", csn); + snprint(buf, sizeof(buf), "pnp%d", csn); s = getconf(buf); if(s == 0) continue; @@ -342,12 +342,12 @@ switch(t) { case Qcsnctl: q = (Qid){QID(csn, Qcsnctl), 0, 0}; - sprint(up->genbuf, "csn%dctl", csn); + snprint(up->genbuf, sizeof(up->genbuf), "csn%dctl", csn); devdir(c, q, up->genbuf, 0, eve, 0664, dp); return 1; case Qcsnraw: q = (Qid){QID(csn, Qcsnraw), 0, 0}; - sprint(up->genbuf, "csn%draw", csn); + snprint(up->genbuf, sizeof(up->genbuf), "csn%draw", csn); devdir(c, q, up->genbuf, cp->ncfg, eve, 0444, dp); return 1; } @@ -362,11 +362,11 @@ q = (Qid){BUSBDF(tbdf)|t, 0, 0}; switch(t) { case Qpcictl: - sprint(up->genbuf, "%d.%d.%dctl", BUSBNO(tbdf), BUSDNO(tbdf), BUSFNO(tbdf)); + snprint(up->genbuf, sizeof(up->genbuf), "%d.%d.%dctl", BUSBNO(tbdf), BUSDNO(tbdf), BUSFNO(tbdf)); devdir(c, q, up->genbuf, 0, eve, 0444, dp); return 1; case Qpciraw: - sprint(up->genbuf, "%d.%d.%draw", BUSBNO(tbdf), BUSDNO(tbdf), BUSFNO(tbdf)); + snprint(up->genbuf, sizeof(up->genbuf), "%d.%d.%draw", BUSBNO(tbdf), BUSDNO(tbdf), BUSFNO(tbdf)); devdir(c, q, up->genbuf, 128, eve, 0660, dp); return 1; } @@ -385,7 +385,7 @@ case Qtopdir: if(s == DEVDOTDOT){ q = (Qid){QID(0, Qtopdir), 0, QTDIR}; - sprint(up->genbuf, "#%C", pnpdevtab.dc); + snprint(up->genbuf, sizeof(up->genbuf), "#%C", pnpdevtab.dc); devdir(c, q, up->genbuf, 0, eve, 0555, dp); return 1; } @@ -393,7 +393,7 @@ case Qpnpdir: if(s == DEVDOTDOT){ q = (Qid){QID(0, Qtopdir), 0, QTDIR}; - sprint(up->genbuf, "#%C", pnpdevtab.dc); + snprint(up->genbuf, sizeof(up->genbuf), "#%C", pnpdevtab.dc); devdir(c, q, up->genbuf, 0, eve, 0555, dp); return 1; } @@ -422,7 +422,7 @@ case Qpcidir: if(s == DEVDOTDOT){ q = (Qid){QID(0, Qtopdir), 0, QTDIR}; - sprint(up->genbuf, "#%C", pnpdevtab.dc); + snprint(up->genbuf, sizeof(up->genbuf), "#%C", pnpdevtab.dc); devdir(c, q, up->genbuf, 0, eve, 0555, dp); return 1; } @@ -498,9 +498,9 @@ return devdirread(c, a, n, (Dirtab *)0, 0L, pnpgen); case Qpnpctl: if(pnp.rddata > 0) - sprint(up->genbuf, "enabled %#x\n", pnp.rddata); + snprint(up->genbuf, sizeof(up->genbuf), "enabled %#x\n", pnp.rddata); else - sprint(up->genbuf, "disabled\n"); + snprint(up->genbuf, sizeof(up->genbuf), "disabled\n"); return readstr(offset, a, n, up->genbuf); case Qcsnraw: csn = CSN(c->qid); @@ -525,7 +525,7 @@ cp = findcsn(csn, 0, 1); if(cp == nil) error(Egreg); - sprint(up->genbuf, "%s\n", serial(cp->id1, cp->id2)); + snprint(up->genbuf, sizeof(up->genbuf), "%s\n", serial(cp->id1, cp->id2)); return readstr(offset, a, n, up->genbuf); case Qpcictl: tbdf = MKBUS(BusPCI, 0, 0, 0)|BUSBDF((ulong)c->qid.path); --- /sys/src/9/port/devproc.c Fri Feb 25 21:54:31 2011 +++ /sys/src/9/port/devproc.c Fri Feb 25 21:54:27 2011 @@ -215,7 +215,7 @@ pid = p->pid; if(pid == 0) return 0; - sprint(up->genbuf, "%lud", pid); + snprint(up->genbuf, sizeof(up->genbuf), "%lud", pid); /* * String comparison is done in devwalk so name must match its formatted pid */ @@ -527,7 +527,7 @@ { char buf[32]; - return sprint(buf, "%lud", c->qid.vers); + return snprint(buf, sizeof(buf), "%lud", c->qid.vers); } int @@ -874,7 +874,7 @@ sg = p->seg[i]; if(sg == 0) continue; - j += sprint(statbuf+j, "%-6s %c%c %.8lux %.8lux %4ld\n", + j += snprint(statbuf+j, sizeof(statbuf)-j, "%-6s %c%c %.8lux %.8lux %4ld\n", sname[sg->type&SG_TYPE], sg->type&SG_RONLY ? 'R' : ' ', sg->profile ? 'P' : ' ', --- /sys/src/9/port/devsd.c Fri Feb 25 21:54:38 2011 +++ /sys/src/9/port/devsd.c Fri Feb 25 21:54:34 2011 @@ -472,7 +472,7 @@ case Qtopdir: if(s == DEVDOTDOT){ mkqid(&q, QID(0, 0, 0, Qtopdir), 0, QTDIR); - sprint(up->genbuf, "#%C", sddevtab.dc); + snprint(up->genbuf, sizeof(up->genbuf), "#%C", sddevtab.dc); devdir(c, q, up->genbuf, 0, eve, 0555, dp); return 1; } @@ -520,7 +520,7 @@ case Qunitdir: if(s == DEVDOTDOT){ mkqid(&q, QID(0, 0, 0, Qtopdir), 0, QTDIR); - sprint(up->genbuf, "#%C", sddevtab.dc); + snprint(up->genbuf, sizeof(up->genbuf), "#%C", sddevtab.dc); devdir(c, q, up->genbuf, 0, eve, 0555, dp); return 1; } --- /sys/src/9/port/devsdp.c Fri Feb 25 21:54:46 2011 +++ /sys/src/9/port/devsdp.c Fri Feb 25 21:54:41 2011 @@ -557,7 +557,7 @@ qunlock(c); return n; case Qctl: - sprint(buf, "%lud", CONV(ch->qid)); + snprint(buf, sizeof(buf), "%lud", CONV(ch->qid)); return readstr(off, a, n, buf); case Qcontrol: b = readcontrol(sdp->conv[CONV(ch->qid)], n); --- /sys/src/9/port/devsegment.c Fri Feb 25 21:54:51 2011 +++ /sys/src/9/port/devsegment.c Fri Feb 25 21:54:48 2011 @@ -327,7 +327,7 @@ g = c->aux; if(g->s == nil) error("segment not yet allocated"); - sprint(buf, "va %#lux %#lux\n", g->s->base, g->s->top-g->s->base); + snprint(buf, sizeof(buf), "va %#lux %#lux\n", g->s->base, g->s->top-g->s->base); return readstr(voff, a, n, buf); case Qdata: g = c->aux; --- /sys/src/9/port/devssl.c Fri Feb 25 21:54:58 2011 +++ /sys/src/9/port/devssl.c Fri Feb 25 21:54:54 2011 @@ -168,7 +168,7 @@ else nm = eve; if(dsname[s] == nil){ - sprint(name, "%d", s); + snprint(name, sizeof(name), "%d", s); kstrdup(&dsname[s], name); } devdir(c, q, dsname[s], 0, nm, 0555, dp); @@ -671,7 +671,7 @@ error(Ebadusefd); case Qctl: ft = CONV(c->qid); - sprint(buf, "%d", ft); + snprint(buf, sizeof(buf), "%d", ft); return readstr(offset, a, n, buf); case Qdata: b = sslbread(c, n, offset); --- /sys/src/9/port/devtls.c Fri Feb 25 21:55:06 2011 +++ /sys/src/9/port/devtls.c Fri Feb 25 21:55:01 2011 @@ -322,7 +322,7 @@ nm = eve; if((name = trnames[s]) == nil){ name = trnames[s] = smalloc(16); - sprint(name, "%d", s); + snprint(name, 16, "%d", s); } devdir(c, q, name, 0, nm, 0555, dp); unlock(&tdlock); --- /sys/src/9/port/devuart.c Fri Feb 25 21:55:11 2011 +++ /sys/src/9/port/devuart.c Fri Feb 25 21:55:08 2011 @@ -201,15 +201,15 @@ p = uartlist; for(i = 0; i < uartnuart; i++){ /* 3 directory entries per port */ - sprint(dp->name, "eia%d", i); + snprint(dp->name, sizeof(dp->name), "eia%d", i); dp->qid.path = NETQID(i, Ndataqid); dp->perm = 0660; dp++; - sprint(dp->name, "eia%dctl", i); + snprint(dp->name, sizeof(dp->name), "eia%dctl", i); dp->qid.path = NETQID(i, Nctlqid); dp->perm = 0660; dp++; - sprint(dp->name, "eia%dstatus", i); + snprint(dp->name, sizeof(dp->name), "eia%dstatus", i); dp->qid.path = NETQID(i, Nstatqid); dp->perm = 0444; dp++; --- /sys/src/9/port/edf.c Fri Feb 25 21:55:16 2011 +++ /sys/src/9/port/edf.c Fri Feb 25 21:55:13 2011 @@ -72,13 +72,13 @@ sign = ""; if (t > Onesecond){ t += OneRound; - sprint(buf, "%s%d.%.3ds", sign, (int)(t / Onesecond), + snprint(buf, sizeof(buf), "%s%d.%.3ds", sign, (int)(t / Onesecond), (int)(t % Onesecond)/Onemillisecond); }else if (t > Onemillisecond) - sprint(buf, "%s%d.%.3dms", sign, (int)(t / Onemillisecond), + snprint(buf, sizeof(buf), "%s%d.%.3dms", sign, (int)(t / Onemillisecond), (int)(t % Onemillisecond)); else - sprint(buf, "%s%dµs", sign, (int)t); + snprint(buf, sizeof(buf), "%s%dµs", sign, (int)t); return fmtstrcpy(f, buf); } --- /sys/src/9/port/netif.c Fri Feb 25 21:55:21 2011 +++ /sys/src/9/port/netif.c Fri Feb 25 21:55:18 2011 @@ -97,7 +97,7 @@ return 0; q.type = QTDIR; q.path = NETQID(i, N3rdqid); - sprint(up->genbuf, "%d", i); + snprint(up->genbuf, sizeof(up->genbuf), "%d", i); devdir(c, q, up->genbuf, 0, eve, DMDIR|0555, dp); break; } --- /sys/src/9/port/proc.c Fri Feb 25 21:55:28 2011 +++ /sys/src/9/port/proc.c Fri Feb 25 21:55:24 2011 @@ -1456,7 +1456,7 @@ { char buf[ERRMAX]; - sprint(buf, "no free %s", resource); + snprint(buf, sizeof(buf), "no free %s", resource); iprint("%s\n", buf); error(buf); }