#include #include #include #include "platform_util.h" size_t Sp_Format(char *buffer, size_t maxlength, const char *fmt, ...) { size_t len; va_list ap; va_start(ap, fmt); len = Sp_FormatArgs(buffer, maxlength, fmt, ap); va_end(ap); return len; } size_t Sp_FormatArgs(char *buffer, size_t maxlength, const char *fmt, va_list ap) { size_t len; len = vsnprintf(buffer, maxlength, fmt, ap); if (len >= maxlength) { buffer[maxlength - 1] = '\0'; return (maxlength - 1); } else { return len; } } /* Overload a few things to prevent libstdc++ linking */ #if defined __linux__ extern "C" void __cxa_pure_virtual(void) { } void *operator new(size_t size) { return malloc(size); } void *operator new[](size_t size) { return malloc(size); } void operator delete(void *ptr) { free(ptr); } void operator delete[](void * ptr) { free(ptr); } #endif