1) Noticed
Requiem engine (by jdhack, I've referred to it as "Spirit's engine", and johhny law as I understand it has put some work into it too) --- uses "force char as unsigned char" option during compilation. Tried that option with Mark V, about 5 fields of code inherited elsewhere had to be changed from char to int.
Any proper C code is going to treat char as both signed and unsigned simultaneously (C specification allows both as valid treatment) but when debugging I don't want to see -40 or -128 or even -1 as a value for a char field. Slows down debugging to have to think ;-)
2) Newlines in Con_Print, etc.
I view newlines and quotes in a printf as a source of fragility and an ease-of-reading nuisance.
And as an example, Google's Android platform debug logging expressly thinks in terms of fully-formed lines and you don't supply the newline.
I used a tool to "robotically" identify and replace Con_Printf to Con_PrintLinef where applicable and then examined what remained.
Most of the Con_Printf without a newline at the end, it was unintentional, as I suspected.
Anyway, in the next version, that behavior has largely been expunged in the entire engine barring obvious circumstances that must persist like QuakeC or messages from the server or the reverse.
Makes code easier to read and more maintainable.
3) Speaking of Con_Printf
...
Con_Printf has always been borderline undesirable, especially with vsync because it causes an immediate rendering of a frame --- but since using vid_vsync will pause engine operations until it is time to render a frame, can be quite undesirable.
In some circumstances you do want immediate feedback. Like "Connecting ..." or a very slow operation like "edicts" or some intermittent feedback for "imagedump" (FitzQuake dump OpenGL textures to folder command).
But most of the time, you simply do not want Con_Printf at all. It the opposite of an optimization.