Internationalization -- initial step, make _ return a std::string to prevent memory leaks

This commit is contained in:
Wladimir J. van der Laan
2011-06-13 16:56:37 +02:00
parent e83474f2eb
commit 39cf857db9
6 changed files with 20 additions and 12 deletions

View File

@@ -255,8 +255,7 @@ int my_snprintf(char* buffer, size_t limit, const char* format, ...)
return ret;
}
string strprintf(const char* format, ...)
string strprintf(const std::string &format, ...)
{
char buffer[50000];
char* p = buffer;
@@ -266,7 +265,7 @@ string strprintf(const char* format, ...)
{
va_list arg_ptr;
va_start(arg_ptr, format);
ret = _vsnprintf(p, limit, format, arg_ptr);
ret = _vsnprintf(p, limit, format.c_str(), arg_ptr);
va_end(arg_ptr);
if (ret >= 0 && ret < limit)
break;
@@ -283,14 +282,13 @@ string strprintf(const char* format, ...)
return str;
}
bool error(const char* format, ...)
bool error(const std::string &format, ...)
{
char buffer[50000];
int limit = sizeof(buffer);
va_list arg_ptr;
va_start(arg_ptr, format);
int ret = _vsnprintf(buffer, limit, format, arg_ptr);
int ret = _vsnprintf(buffer, limit, format.c_str(), arg_ptr);
va_end(arg_ptr);
if (ret < 0 || ret >= limit)
{