/** * @brief Safe (null terminating) vsnprintf implementation */ int Q_vsnprintf (char *str, size_t size, const char *format, va_list ap) { int len; #if defined(_WIN32) len = _vsnprintf(str, size, format, ap); str[size-1] = '\0'; #ifdef DEBUG if (len == -1) Com_Printf("Q_vsnprintf: string was truncated - target buffer too small\n"); #endif #else len = vsnprintf(str, size, format, ap); #ifdef DEBUG if ((size_t)len >= size) Com_Printf("Q_vsnprintf: string was truncated - target buffer too small\n"); #endif #endif return len; }