ref: b165d7bb0ccfe03c70e1fc65a0cec5d5d7a27caa
parent: 8ca1692ee9591fdce58c9f501783a4e3bebe53c4
author: qwx <>
date: Sun Dec 23 07:44:03 EST 2018
workaround for console color print va() uses print(2), use that for %r, %zd, etc. not ideal, but it does the job.
--- a/README
+++ b/README
@@ -1,7 +1,7 @@
qk1 - (9) quake
===============
Port of linux/x11 quake and quakeworld to plan9front.
-- Works on amd64 and 386, broken on arm and probably other arches
+- Works on amd64 and 386, broken on zynq
Installation
@@ -53,7 +53,7 @@
Todo/bugs
---------
- don't use #pragma pack and do not read in structs directly
-- fix arm graphics issues
+- fix zynq graphics issues
- cd: buffer reading from actual cdroms
- do away with PR_Str shit
- manpages
@@ -62,7 +62,6 @@
- infinite loop in SV_TouchLinks
- (amd64) entities visible through walls right when emerging from/immerging
into water
-- fix stdio console color print
- resolutions other than 4:3: some vertical and horizontal strips on the edge
of the screen aren't drawn
- #define PARANOID reveals several points of failure that are otherwise ignored
@@ -78,8 +77,7 @@
- text and code seen as useless for plan9 nuked from orbit (cpp defs, etc.)
- arbitrary resolution limit (r_shared.h): 2048x2048 (was 1280x1024), which
inflates e.g. a bunch of arrays in the code
-- removal of stdio stuff probably not really warranted and possibly introduced
- bugs
+- both stdio and print(2) are used due to the way colored strings are handled
Legal
--- a/cl_demo.c
+++ b/cl_demo.c
@@ -134,7 +134,7 @@
s = va("%s/%s%s", fsdir, a, ext(a, ".dem")); dprint("recdemo: writing to file %s\n", s); if(opendm(s, trk) < 0){- Con_Printf("recdemo: %r\n");+ Con_Printf(va("recdemo: %r\n"));return;
}
cls.demorecording = 1;
@@ -160,7 +160,7 @@
s = va("%s%s", a, ext(a, ".dem")); dprint("playdemo: reading file %s\n", s); if(loaddm(s) < 0){- Con_Printf("playdemo: %r\n");+ Con_Printf(va("playdemo: %r\n"));cls.demonum = -1;
return;
}
--- a/cl_parse.c
+++ b/cl_parse.c
@@ -210,7 +210,7 @@
cl.maxclients = MSG_ReadByte ();
if (cl.maxclients < 1 || cl.maxclients > MAX_SCOREBOARD)
{- Con_Printf("Bad maxclients (%ud) from server\n", cl.maxclients);+ Con_Printf("Bad maxclients (%d) from server\n", cl.maxclients);return;
}
cl.scores = Hunk_AllocName(cl.maxclients * sizeof *cl.scores, "scores");
--- a/cmd.c
+++ b/cmd.c
@@ -275,7 +275,7 @@
mark = Hunk_LowMark ();
f = loadhunklmp(Cmd_Argv(1), nil);
if(f == nil){- Con_Printf("exec: %r\n");+ Con_Printf(va("exec: %r\n"));return;
}
Con_Printf ("execing %s\n",Cmd_Argv(1));--- a/fs.c
+++ b/fs.c
@@ -154,7 +154,7 @@
for(pl=pkl; pl!=nil; pl=pl->pl)
if(pl->p)
- Con_Printf("%s (%zd files)\n", pl->p->f, pl->p->e - pl->p->l);+ Con_Printf(va("%s (%zd files)\n", pl->p->f, pl->p->e - pl->p->l));else
Con_Printf("%s\n", pl->f);}
@@ -386,7 +386,7 @@
bf = openlmp(va("maps/%s.pts", sv.name), &n); if(bf == nil){- Con_Printf("loadpoints: %r\n");+ Con_Printf(va("loadpoints: %r\n"));return;
}
nv = 0;
--- a/host.c
+++ b/host.c
@@ -367,7 +367,7 @@
MSG_WriteByte(&buf, svc_disconnect);
count = NET_SendToAll(&buf, 5);
if (count)
- Con_Printf("Host_ShutdownServer: NET_SendToAll failed for %ud clients\n", count);+ Con_Printf("Host_ShutdownServer: NET_SendToAll failed for %d clients\n", count);for (i=0, host_client = svs.clients ; i<svs.maxclients ; i++, host_client++)
if (host_client->active)
--- a/net_dgrm.c
+++ b/net_dgrm.c
@@ -284,9 +284,9 @@
void PrintStats(qsocket_t *s)
{- Con_Printf("canSend = %4ud \n", s->canSend);- Con_Printf("sendSeq = %4ud ", s->sendSequence);- Con_Printf("recvSeq = %4ud \n", s->receiveSequence);+ Con_Printf("canSend = %4d \n", s->canSend);+ Con_Printf("sendSeq = %4d ", s->sendSequence);+ Con_Printf("recvSeq = %4d \n", s->receiveSequence); Con_Printf("\n");}
--- a/net_main.c
+++ b/net_main.c
@@ -167,7 +167,7 @@
if (Cmd_Argc () != 2)
{- Con_Printf ("\"maxplayers\" is \"%ud\"\n", svs.maxclients);+ Con_Printf ("\"maxplayers\" is \"%d\"\n", svs.maxclients);return;
}
@@ -183,7 +183,7 @@
if (n > svs.maxclientslimit)
{n = svs.maxclientslimit;
- Con_Printf ("\"maxplayers\" set to \"%ud\"\n", n);+ Con_Printf ("\"maxplayers\" set to \"%d\"\n", n);}
svs.maxclients = n;
--- a/r_misc.c
+++ b/r_misc.c
@@ -299,8 +299,8 @@
if ((surface_p - surfaces) > r_maxsurfsseen)
r_maxsurfsseen = surface_p - surfaces;
- Con_Printf ("Used %zd of %zd surfs; %d max\n", surface_p - surfaces,- surf_max - surfaces, r_maxsurfsseen);
+ Con_Printf (va("Used %zd of %zd surfs; %d max\n", surface_p - surfaces,+ surf_max - surfaces, r_maxsurfsseen));
}
if (r_numedges.value)
--- a/vid.c
+++ b/vid.c
@@ -196,7 +196,7 @@
flushimage(display, 1);
if(dumpwin){if(writebit() < 0)
- Con_Printf("writebit: %r\n");+ Con_Printf(va("writebit: %r\n"));dumpwin = 0;
}
}
--
⑨