mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-12 00:18:37 +00:00
svn -> git Migration
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include "utility.h"
|
||||
|
||||
#if (_MSC_VER < 1500)
|
||||
#define vsnprintf _vsnprintf
|
||||
#endif
|
||||
|
||||
#define safe_delete(d) if(d) { delete d; d=0; }
|
||||
#define safe_delete_array(d) if(d) { delete[] d; d=0; }
|
||||
|
||||
int MakeAnyLenString(char** ret, const char* format, ...) {
|
||||
int buf_len = 128;
|
||||
int chars = -1;
|
||||
va_list argptr;
|
||||
va_start(argptr, format);
|
||||
while (chars == -1 || chars >= buf_len) {
|
||||
safe_delete_array(*ret);
|
||||
if (chars == -1)
|
||||
buf_len *= 2;
|
||||
else
|
||||
buf_len = chars + 1;
|
||||
*ret = new char[buf_len];
|
||||
chars = vsnprintf(*ret, buf_len, format, argptr);
|
||||
}
|
||||
va_end(argptr);
|
||||
return chars;
|
||||
}
|
||||
Reference in New Issue
Block a user