summaryrefslogtreecommitdiff
path: root/indra/llcommon/llformat.cpp
diff options
context:
space:
mode:
authorLoren Shih <seraph@lindenlab.com>2010-07-23 10:13:11 -0400
committerLoren Shih <seraph@lindenlab.com>2010-07-23 10:13:11 -0400
commit056685d9d4ac82aad45e46ae5d5226690d416513 (patch)
tree7f20ea566ee324303582b83c62530b6fa7d7bf98 /indra/llcommon/llformat.cpp
parent75cfa9a0c3c15e3a472a4c4fd2462402a3a766a0 (diff)
parent77911533dc68731f50f40b18cd44e287df28f476 (diff)
automated merge
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;
}