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