Rofl hit the nail on the head with that one spike

these days i mostly use CB for setting up dependencies and tell it to spit out a makefile ready to go. And the stuff i cannot easily do that with i just use my preconfigured site script to get over the nasties that sometimes pop up when using Msys/MinGW 90% of the time i dont need to do jack to make it compile, the last 10% i can usually handle cause i picked up some tricks over the years. Ccache was one of the flunkies i needed to get nasty with but i must have done a proper job as even today its still the only windows version i know of that works 100%.
Ok a small trick in C i remember is checking for zero termination in a string with if (string[0] == '\0') instead of
if (strlen(string) == 0) safes us calling a runtime function for a simple check and just checks the first char for termination
The above actually made me wonder since i had a discussion with one of ID's devs about zero terminating an array of const strings his version ended with a cast that like this const ((void *)NULL) while i just used '\0' both ways worked even though he ment it was incorrect so i read up from bjarne stroustrup (the man who created C++) the funny thing was that according to him my method was perfectly valid as '\0' is a const integer 0 and in C++ NULL is 0 and not a pointer like in some C compilers.
Both methods work and are valid but i think mine looks a little less scary

Productivity is a state of mind.