Not sure what was intended with that patch, but you put and
#ifndef/#error block inside an
#ifdef block, so
#error inside
#ifndef will never be seen.
But hey, no problem, the big
#ifdef block is not necessary, I'll just copy the
#ifndef block to the header, that'll do just fine and will work the way you intended.
No need to post to SF.