summaryrefslogtreecommitdiff
path: root/indra/llcommon/llformat.cpp
diff options
context:
space:
mode:
authorMike Antipov <mantipov@productengine.com>2010-07-23 10:34:27 +0300
committerMike Antipov <mantipov@productengine.com>2010-07-23 10:34:27 +0300
commit66bdd0903d1ded7a2e113938ad47ad8d6076416b (patch)
treed3b6ee474758bcc66df86431ff784b6d7c07904e /indra/llcommon/llformat.cpp
parent051f834a4157902216bf54fced4b9ccd5b0ed2d9 (diff)
parent3c4f82b2984c0cf70b2bc61190495cf9cf1a6aad (diff)
merge
--HG-- branch : product-engine
Diffstat (limited to 'indra/llcommon/llformat.cpp')
-rw-r--r--indra/llcommon/llformat.cpp32
1 files changed, 28 insertions, 4 deletions
diff --git a/indra/llcommon/llformat.cpp b/indra/llcommon/llformat.cpp
index cf509bee14..689f649d0a 100644
--- a/indra/llcommon/llformat.cpp
+++ b/indra/llcommon/llformat.cpp
@@ -37,16 +37,40 @@
#include <cstdarg>
-std::string llformat(const char *fmt, ...)
+// common used function with va_list argument
+// wrapper for vsnprintf to be called from llformatXXX functions.
+static void va_format(std::string& out, const char *fmt, va_list va)
{
char tstr[1024]; /* Flawfinder: ignore */
- va_list va;
- va_start(va, fmt);
#if LL_WINDOWS
_vsnprintf(tstr, 1024, fmt, va);
#else
vsnprintf(tstr, 1024, fmt, va); /* Flawfinder: ignore */
#endif
+ out.assign(tstr);
+}
+
+std::string llformat(const char *fmt, ...)
+{
+ std::string res;
+ va_list va;
+ va_start(va, fmt);
+ va_format(res, fmt, va);
va_end(va);
- return std::string(tstr);
+ return res;
+}
+
+std::string llformat_to_utf8(const char *fmt, ...)
+{
+ std::string res;
+ va_list va;
+ va_start(va, fmt);
+ va_format(res, fmt, va);
+ va_end(va);
+
+#if LL_WINDOWS
+ // made converting to utf8. See EXT-8318.
+ res = ll_convert_string_to_utf8_string(res);
+#endif
+ return res;
}