summaryrefslogtreecommitdiff
path: root/library/MiscUtils.cpp
diff options
context:
space:
mode:
authorAlexander Gavrilov2012-03-17 12:52:22 +0400
committerAlexander Gavrilov2012-03-17 12:52:22 +0400
commit58eb199036db3662ec2f7a2d6d301e7f432d5639 (patch)
treec01d46ab4d403cd900ddbf6e0c31c22946c02a7c /library/MiscUtils.cpp
parent14d6a62e1d212808623f1a71b3c559ac4a8dada3 (diff)
downloaddfhack-58eb199036db3662ec2f7a2d6d301e7f432d5639.tar.gz
dfhack-58eb199036db3662ec2f7a2d6d301e7f432d5639.tar.bz2
dfhack-58eb199036db3662ec2f7a2d6d301e7f432d5639.tar.xz
Add many new template functions for enums & bitfields.
An incompatible change: ENUM_KEY_STR returns std::string now. The old behavior is available via enum_item_key_str function.
Diffstat (limited to 'library/MiscUtils.cpp')
-rw-r--r--library/MiscUtils.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/library/MiscUtils.cpp b/library/MiscUtils.cpp
index dff8af0a..8247cd00 100644
--- a/library/MiscUtils.cpp
+++ b/library/MiscUtils.cpp
@@ -36,6 +36,8 @@ distribution.
#include <ctype.h>
#include <stdarg.h>
+#include <sstream>
+
std::string stl_sprintf(const char *fmt, ...) {
va_list lst;
va_start(lst, fmt);
@@ -82,6 +84,20 @@ bool split_string(std::vector<std::string> *out,
return out->size() > 1;
}
+std::string join_strings(const std::string &separator, const std::vector<std::string> &items)
+{
+ std::stringstream ss;
+
+ for (size_t i = 0; i < items.size(); i++)
+ {
+ if (i)
+ ss << separator;
+ ss << items[i];
+ }
+
+ return ss.str();
+}
+
std::string toUpper(const std::string &str)
{
std::string rv(str.size(),' ');