Commit Briefs
reject non-gemini protocols with 53 (tags/1.4)
make FATAL and LOG inline functions
other functions that aren't macros anymore. LOG went under a rename to logs because log is a builtin (the math function), or so gcc says.
inline should be before type, gcc says
clang doesn't seem to care.
macro reordering
and while there replace SAFE_SETENV with an inline function. LOG is more difficult to transform into an inline function, given the string concatenations it does. The other LOG* and FATAL macros are fine as they already are.
switch some macros to inline functions
they expanded multiple times their argument, since inline is standard (and works on GCC 4 too!) why don't use it?
switch to Bjoern Hoehrmann UTF-8 decoder
It's correct, while my hacked valid_multibyte_utf8 would allow things that aren't technically UTF8.
simplify loop
todo was initially there for an optimization: don't loop to MAX_USERS when you know the upper limit is todo.