strncat is not the maximum length of the destination string, but of the SOURCE
string, thus strncat (dest, src, sizeof (dest)) is incorrect. It should be
strncat (dest, src, sizeof (text) - strlen (dest)). Even then, no terminating
nul will be written if src is too long, but at least it won't crash the stack:)
changed all parms references to directly access host_parms to improve readability, and removed unused basedir references. (all remaining fields in quakeparms_t deserve to be there)
And of course the very slight rework of the input system, at least
in_x11 gets shifts right for different keymaps.
Oh, by the way, ALL other input targets are broken in a very 'will not
compile' way.
both support this. The client tells the server it can support compressed
downloads by setting the z flag in the *cap userinfo. If the server detects
that the client supports compression, and the file to be downloaded is
compressed (more accurately, has the .gz extension), the server sends a special
download packet with a size of -2 (-1 indicates error),, percent of 0, followed
by the new name of the file (eg maps/foo.bsp.gz for maps/foo.bsp). The client
WILL NOT accept a new filename that doesn not match the old name for the length
of the old name. The client also will not accept a new name if there are . or
.. path components. If the client rejects the new name, it prints a warning
message and aborts that download.
very different way than did Id Software did later on, it'll be a major
improvement, that's for sure..)
fs_basegame Cvar created, defaults to whatever you selected in config.h,
most likely id1.
win32 requires a call to setmode(), since it doesn't seem to do the mode change in fdopen properly.
also removed some "z" modes, since someone forgot to when removing the Qfile stuffs
little problem of mixed QFile and FILE. Since we're not using ZLib in
this tree, QFile makes no real sense. That didn't fix the real problem
I am having though.