Added snprintf/vsnprintf helpers to ISourceMod, finally (bug 3530, r=pred).
This commit is contained in:
parent
0cf5f4ae2a
commit
2b97461f54
@ -670,6 +670,26 @@ void SourceModBase::ProcessGameFrameHooks(bool simulating)
|
||||
}
|
||||
}
|
||||
|
||||
size_t SourceModBase::Format(char *buffer, size_t maxlength, const char *fmt, ...)
|
||||
{
|
||||
size_t len;
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, fmt);
|
||||
len = FormatArgs(buffer, maxlength, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
size_t SourceModBase::FormatArgs(char *buffer,
|
||||
size_t maxlength,
|
||||
const char *fmt,
|
||||
va_list ap)
|
||||
{
|
||||
return UTIL_FormatArgs(buffer, maxlength, fmt, ap);
|
||||
}
|
||||
|
||||
SMGlobalClass *SMGlobalClass::head = NULL;
|
||||
|
||||
SMGlobalClass::SMGlobalClass()
|
||||
|
@ -129,6 +129,8 @@ public: // ISourceMod
|
||||
void AddGameFrameHook(GAME_FRAME_HOOK hook);
|
||||
void RemoveGameFrameHook(GAME_FRAME_HOOK hook);
|
||||
void ProcessGameFrameHooks(bool simulating);
|
||||
size_t Format(char *buffer, size_t maxlength, const char *fmt, ...);
|
||||
size_t FormatArgs(char *buffer, size_t maxlength, const char *fmt, va_list ap);
|
||||
private:
|
||||
CStack<CDataPack *> m_freepacks;
|
||||
char m_SMBaseDir[PLATFORM_MAX_PATH];
|
||||
|
@ -43,7 +43,7 @@
|
||||
#include <time.h>
|
||||
|
||||
#define SMINTERFACE_SOURCEMOD_NAME "ISourceMod"
|
||||
#define SMINTERFACE_SOURCEMOD_VERSION 7
|
||||
#define SMINTERFACE_SOURCEMOD_VERSION 8
|
||||
|
||||
/**
|
||||
* @brief Forward declaration of the KeyValues class.
|
||||
@ -248,6 +248,28 @@ namespace SourceMod
|
||||
* @param hook Hook function.
|
||||
*/
|
||||
virtual void RemoveGameFrameHook(GAME_FRAME_HOOK hook) =0;
|
||||
|
||||
/**
|
||||
* @brief Platform-safe wrapper around snprintf().
|
||||
*
|
||||
* @param buffer String buffer.
|
||||
* @param maxlength Maximum length of buffer.
|
||||
* @param fmt Format specifier string.
|
||||
* @param ... Format arguments.
|
||||
* @return Number of bytes (not including null terminator) written.
|
||||
*/
|
||||
virtual size_t Format(char *buffer, size_t maxlength, const char *fmt, ...) = 0;
|
||||
|
||||
/**
|
||||
* @brief Platform-safe wrapper around vsnprintf().
|
||||
*
|
||||
* @param buffer String buffer.
|
||||
* @param maxlength Maximum length of buffer.
|
||||
* @param fmt Format specifier string.
|
||||
* @param ap Format arguments.
|
||||
* @return Number of bytes (not including null terminator) written.
|
||||
*/
|
||||
virtual size_t FormatArgs(char *buffer, size_t maxlength, const char *fmt, va_list ap) = 0;
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user